Skip to main content

How I can share my Azure Notebook with another person from my team?

The Azure team is offering a service where you can run code and develop Jypyter notebook called Azure Notebooks. Azure Notebooks is allowing us to build our notebooks in multiple languages (e.g. R, Python 2/3, F#) and run them automatically inside our Azure Subscriptions. We don't need anymore to spin up the resources, manage them and think about how we can deploy the notebook from our machine to different environments.

THE PROBLEM
One of the most common questions that I receive is 
How I can share my Notebook with another person from my team?

CONTEXT
In most of the cases, you are not the only one that is working on a notebook, you might have a team of people that would like to work on a collection of notebooks from the same project. In other cases, the client would like to own the notebook project and allow external teams to use the notebooks. 

REALITY
The reality is that at this moment in time, sharing notebooks is limited. Why? Let see below.
A notebook project can be private or public.
  • Public - Anybody can access it using the public URL
    • e.g. https://notebooks.azure.com/vunvulear/projects/rvplayground 
  • Private - The notebook it is not publicly accessible to anybody. The only person that can access the project is the owner of the project.

SHARING
You might be now a little bit confuse because as you can see in the above picture, we have a share button with the ability to share it via email or link. There are two things that you might not be so obvious:
  1. Share button even it is available and works for both Public and Private projects the URL to the notebook project works only for public ones. For private projects, users will receive an error when they want to access it.
  2. There is no mechanism at this moment in time (June 2020) to provide access to another person to a private notebook project.
Another feature that could be used is the ability to upload a GitHub repository to Azure Notebooks.
It means that in theory, we could create a private GitHub repo with our notebooks that could be imported inside Azure Notebooks. The problem is that only public GitHub repos can be imported. For private ones, there is no ability to import them.

At this moment in time, there is no support of a REST API or CLI that would allow us to manage projects and notebooks from a script. Once we have a REST API for management, we could build script that would clone a project automatically, do the merging and other similar things that would enable collaboration. 

CONCLUSION
Azure Notebooks are great to build and play with Jupyter notebooks. The lack of sharing capability for private notebooks makes them almost impossible to be used by organisations. The current sharing ability can be used only for public projects that limit the ability to use them in commercial projects. 
What we are missing at this moment in time? A notebook sharing capability based on AD or integration with private GitHub repos. Why not even support inside Azure DevOps.

Comments

Popular posts from this blog

Windows Docker Containers can make WIN32 API calls, use COM and ASP.NET WebForms

After the last post , I received two interesting questions related to Docker and Windows. People were interested if we do Win32 API calls from a Docker container and if there is support for COM. WIN32 Support To test calls to WIN32 API, let’s try to populate SYSTEM_INFO class. [StructLayout(LayoutKind.Sequential)] public struct SYSTEM_INFO { public uint dwOemId; public uint dwPageSize; public uint lpMinimumApplicationAddress; public uint lpMaximumApplicationAddress; public uint dwActiveProcessorMask; public uint dwNumberOfProcessors; public uint dwProcessorType; public uint dwAllocationGranularity; public uint dwProcessorLevel; public uint dwProcessorRevision; } ... [DllImport("kernel32")] static extern void GetSystemInfo(ref SYSTEM_INFO pSI); ... SYSTEM_INFO pSI = new SYSTEM_INFO(

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine: threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration: TeamCity .NET 4.51 EF 6.0.2 VS2013 It see

Navigating Cloud Strategy after Azure Central US Region Outage

 Looking back, July 19, 2024, was challenging for customers using Microsoft Azure or Windows machines. Two major outages affected customers using CrowdStrike Falcon or Microsoft Azure computation resources in the Central US. These two outages affected many people and put many businesses on pause for a few hours or even days. The overlap of these two issues was a nightmare for travellers. In addition to blue screens in the airport terminals, they could not get additional information from the airport website, airline personnel, or the support line because they were affected by the outage in the Central US region or the CrowdStrike outage.   But what happened in reality? A faulty CrowdStrike update affected Windows computers globally, from airports and healthcare to small businesses, affecting over 8.5m computers. Even if the Falson Sensor software defect was identified and a fix deployed shortly after, the recovery took longer. In parallel with CrowdStrike, Microsoft provided a too