Migrate from user-managed notebooks to Vertex AI Workbench instances

Vertex AI Workbench user-managed notebooks isdeprecated. On April 14, 2025, support for user-managed notebooks will end and the ability to create user-managed notebooks instances will be removed. Existing instances will continue to function but patches, updates, and upgrades won't be available. To continue using Vertex AI Workbench, complete the steps on this page tomigrate your user-managed notebooks instances to Vertex AI Workbench instances.

This page describes how to migrate froma user-managed notebooks instance to a Vertex AI Workbench instance.You can migrate by using the Vertex AI Workbench migration tool ormigrate your instance's data and files manually.

Overview of the migration tool

Vertex AI Workbench provides a migration tool for migrating froma user-managed notebooks instance to a Vertex AI Workbench instance.

The migration tool creates a Vertex AI Workbench instance with aconfiguration similar to the user-managed notebooks instancethat you want to migrate. For example,the migration tool creates an instance that has the same or similarmachine type, network configuration, idle shutdown settings,and other specifications. Then, the files on youruser-managed notebooks instance's data disk are copied to theVertex AI Workbench instance.

Vertex AI Workbench doesn't delete or change youruser-managed notebooks instance, so after migration youcan continue to use it. If you don't need theuser-managed notebooks instanceanymore,delete it to avoid further charges for that instance.

Billing

If your user-managed notebooks instanceuses Extreme Persistent Disks,then your migration generates charges for I/O operations.See "Extreme provisioned IOPS" in thePersistent Disk and Hyperdisk pricing section ofDisk pricing.

After migration, the user-managed notebooks instance still existsand generates charges as before. If you don't needthe user-managed notebooks instanceanymore,delete it to avoid further charges for that instance.

Default migration tool behaviors

The Vertex AI Workbench migration tool attempts tomigrate your user-managed notebooks instance toa Vertex AI Workbench instance with matching specifications.When a specification in your user-managed notebooks instanceisn't available in Vertex AI Workbench instances, Vertex AI Workbenchuses a default specification when possible. When the migration toolcan't migrate a specification ofyour user-managed notebooks instance,it doesn't migrate the instance.

The following table lists some of the key default migration behaviorsfor the migration tool.

Categoryuser-managed notebooks specificationMigration result
OSAny Ubuntu versionDebian 11
Any Debian versionDebian 11
FrameworkAny CUDA versionCUDA 11.3
Any Python versionPython 3.10
Any PyTorch versionPyTorch 1.13
Any TensorFlow versionTensorFlow 2.11
Any R version Not migrated; seeAdd a conda environment
Any local PySpark version Not migrated; seeAdd a conda environment
Any XGBoost version Not migrated; seeAdd a conda environment
Any Kaggle Python version Not migrated; seeAdd a conda environment
Any Jax version Not migrated; seeAdd a conda environment
Any Apache Beam version Not migrated; seeAdd a conda environment
Machine typeA supported machine typeIdentical machine type
An unsupported machine typee2-standard-4
AcceleratorsSupported acceleratorsIdentical accelerators
Unsupported acceleratorsMigration doesn't include accelerators
SettingIdle shutdownMigrated
Delete to trashMigrated
nbconvertMigrated
File downloadingMigrated
Terminal accessMigrated
OtherIdentity and Access Management permissions Migrated, though new permissions might be required to use the Vertex AI Workbench instance
Access modeMigrated
NetworkMigrated
Post-startup script When using the Google Cloud console, the instance is migrated without the post-startup script; to migrate the instance with the post-startup script, use the Google Cloud CLI or REST API tospecify thePostStartupScriptOption option
Dataproc HubNot migrated; mustmigrate manually

Specifying the post-startup script

User-managed notebooks instances that use a post-startup scriptmust be migrated to an instance with thePostStartupScriptOptionoption specified. Use this option to indicate whether you want toskip or rerun the post-startup script in your newVertex AI Workbench instance.

Specifying thePostStartupScriptOption option isn't supportedin the Google Cloud console. To specify thePostStartupScriptOption option when you migrateyour user-managed notebooks instance, you mustuse the Google Cloud CLI or REST API.

Before you begin

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.create permission.Learn how to grant roles.
    Note: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enable permission.Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.create permission.Learn how to grant roles.
    Note: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enable permission.Learn how to grant roles.

    Enable the API

Required roles

To get the permissions that you need to migrate a user-managed notebooks instance to a Vertex AI Workbench instance, ask your administrator to grant you the Notebooks Runner (roles/notebooks.runner) IAM role on the project. For more information about granting roles, seeManage access to projects, folders, and organizations.

This predefined role contains the permissions required to migrate a user-managed notebooks instance to a Vertex AI Workbench instance. To see the exact permissions that are required, expand theRequired permissions section:

Required permissions

The following permissions are required to migrate a user-managed notebooks instance to a Vertex AI Workbench instance:

  • notebooks.instances.create
  • notebooks.instances.get

You might also be able to get these permissions withcustom roles or otherpredefined roles.

Pre-migration check

Before you migrate, check your user-managed notebooks instance'smigration eligibility by listing your instances and checkingthe output for any migration warnings or errors.

List your instances

To list your user-managed notebooks instances that aren'tmigrated yet, use theprojects.locations.instances.listmethod with the filtermigrated:false. You can list them by using thegcloud CLI or REST API:

gcloud

Before using any of the command data below, make the following replacements:

  • PROJECT_ID: Your project ID
  • LOCATION: The region where your user-managed notebooks instance is located, or use- to list instances from all regions

Execute the following command:

Linux, macOS, or Cloud Shell

Note: Ensure you have initialized the Google Cloud CLI with authentication and a project by running eithergcloud init; orgcloud auth login andgcloud config set project.
gcloudnotebooksinstanceslist--project=PROJECT_ID\--location=LOCATION--filter=migrated:false--format=default

Windows (PowerShell)

Note: Ensure you have initialized the Google Cloud CLI with authentication and a project by running eithergcloud init; orgcloud auth login andgcloud config set project.
gcloudnotebooksinstanceslist--project=PROJECT_ID`--location=LOCATION--filter=migrated:false--format=default

Windows (cmd.exe)

Note: Ensure you have initialized the Google Cloud CLI with authentication and a project by running eithergcloud init; orgcloud auth login andgcloud config set project.
gcloudnotebooksinstanceslist--project=PROJECT_ID^--location=LOCATION--filter=migrated:false--format=default

REST

Before using any of the request data, make the following replacements:

  • PROJECT_ID: Your project ID
  • LOCATION: The region where your user-managed notebooks instance is located, or use- to list instances from all regions

HTTP method and URL:

GET https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?filter=migrated:false

To send your request, choose one of these options:

curl

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Execute the following command:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?filter=migrated:false"

PowerShell

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?filter=migrated:false" | Select-Object -Expand Content

Check the output for warnings or errors

If migration warnings or errors are detected, the output oftheprojects.locations.instances.list method includes this information.

Warnings appear when specific components inyour user-managed notebooks instance's configuration won'tmigrate to the same specification in a Vertex AI Workbench instance.For example, if your user-managed notebooks instance uses anunsupported accelerator, a warning appears in the output. In this case,the instance is migrated without any accelerators. You can attachaccelerators after migration. Review the warnings inthe output, consider themigration tool's default behaviors,and assess whether the migration tool is acceptable for your migration.

One or more errors in the output means that you can't migratethe user-managed notebooks instance by using the migration tool.You mustmigrate the instance manually.

For more information about migration warnings and errors, seewarningsanderrorsin theInstanceMigrationEligibility documentation.

Migrate by using the migration tool

You can migrate your user-managed notebooks instance by usingthe Google Cloud console, the gcloud CLI, or REST API.

Console

  1. In the Google Cloud console, go to theUser-managed notebooks page.

    Go to User-managed notebooks

  2. Click theMigrate button.

  3. On theMigrate user-managed notebooks to instances page,on theReady tab, select the instance that you want to migrate.

  4. ClickMigrate.

  5. After the migration is finished, go to theInstances pageto view your new Vertex AI Workbench instance.

    Go to Instances

gcloud

Before using any of the command data below, make the following replacements:

  • PROJECT_ID: Your project ID
  • LOCATION: The region where your user-managed notebooks instance is located
  • INSTANCE_ID: The ID of the user-managed notebooks instance
  • POST_STARTUP_SCRIPT_OPTION: Optional: One of thepost-startup script options

Execute the following command:

Linux, macOS, or Cloud Shell

Note: Ensure you have initialized the Google Cloud CLI with authentication and a project by running eithergcloud init; orgcloud auth login andgcloud config set project.
gcloudnotebooksinstancesmigrateRUNTIME_ID\--project=PROJECT_ID\--location=LOCATION\--post-startup-script-option=POST_STARTUP_SCRIPT_OPTION

Windows (PowerShell)

Note: Ensure you have initialized the Google Cloud CLI with authentication and a project by running eithergcloud init; orgcloud auth login andgcloud config set project.
gcloudnotebooksinstancesmigrateRUNTIME_ID`--project=PROJECT_ID`--location=LOCATION`--post-startup-script-option=POST_STARTUP_SCRIPT_OPTION

Windows (cmd.exe)

Note: Ensure you have initialized the Google Cloud CLI with authentication and a project by running eithergcloud init; orgcloud auth login andgcloud config set project.
gcloudnotebooksinstancesmigrateRUNTIME_ID^--project=PROJECT_ID^--location=LOCATION^--post-startup-script-option=POST_STARTUP_SCRIPT_OPTION

REST

Before using any of the request data, make the following replacements:

  • PROJECT_ID: Your project ID
  • LOCATION: The region where your user-managed notebooks instance is located
  • INSTANCE_ID: The ID of the user-managed notebooks instance
  • POST_STARTUP_SCRIPT_OPTION: Optional: One of thepost-startup script options

HTTP method and URL:

POST https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:migrate

Request JSON body:

{  "postStartupScriptOption": (POST_STARTUP_SCRIPT_OPTION)}

To send your request, choose one of these options:

curl

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list.

Save the request body in a file namedrequest.json, and execute the following command:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:migrate"

PowerShell

Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list.

Save the request body in a file namedrequest.json, and execute the following command:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:migrate" | Select-Object -Expand Content

Migrate manually

To migrate your instance to a Vertex AI Workbench instance manually,consider using the following methods:

  • Use Cloud Storage and the terminal: Copy your data and filesto Cloud Storage and then to another instance by using the terminal.

  • Use GitHub: Copy your data and files to a GitHub repositoryby using the Git extension for JupyterLab.

This guide describes how to migrate data and files by usingCloud Storage and the terminal.

Requirements

You must have terminal access to youruser-managed notebooks instance.Terminal access is manually set when you create an instance. Theterminal access setting cannot be changed after the instance is created.

Migrate manually by using Cloud Storage and the terminal

To migrate data and files to a new Vertex AI Workbench instanceby using Cloud Storage and the terminal, do the following.

  1. Create a Cloud Storage bucketin the same project where your user-managed notebooks instanceis located.

  2. In that same project,Createa Vertex AI Workbench instance to migrate your data to.When you create this instance:

    • Enable terminal access.
    • Specify the machine type, network,and other characteristics to match what you need.
  3. In your user-managed notebooks instance'sJupyterLab interface, selectFile >New > Terminal to open a terminal window.

  4. Use thegcloud CLI to copy your user datato a Cloud Storage bucket. The following example commandcopies all of the files from your instance's/home/jupyter/ directoryto a directory in a Cloud Storage bucket.

    gcloudstoragecp/home/jupyter/*gs://BUCKET_NAMEPATH--recursive

    Replace the following:

    • BUCKET_NAME: The name of yourCloud Storage bucket
    • PATH: The path to the directorywhere you want to copy your files, for example:/copy/jupyter/
  5. In your new Vertex AI Workbench instance'sJupyterLab interface, selectFile >New > Terminal to open a terminal window.

  6. Use the gcloud CLI to copy your data to the new instance.The following example command copies all ofthe files from a Cloud Storage directory to theyour new instance's/home/jupyter/ directory.

    gcloudstoragecpgs://BUCKET_NAMEPATH*/home/jupyter/--recursive

Confirm the migration

After the migration, the original user-managed notebooks instancecontinues to work as before. Confirm that your migration was a successbefore you delete the original instance.

Delete the user-managed notebooks instance

If you don't need the user-managed notebooks instance thatyou migrated from, delete it to avoid further charges for that instance.

  1. In the Google Cloud console, go to theUser-managed notebooks page.

    Go to User-managed notebooks

  2. Select the instance that you want to delete.

  3. Click Delete.(Depending on the size of your window,theDelete button might be inthe options menu.)

  4. To confirm, clickDelete.

Troubleshoot

To find methods for diagnosing and resolving migration issues, seeTroubleshootingVertex AI Workbench.

What's next

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.