When working with Vertex AI notebooks, I was interested in creating VMs that had persistent python computing environments. With the User-Managed Notebooks, I achieved this with a Docker-image. I am returning to this with the newer Instances. My Docker image doesn't seem to work with the Instances (will post a separate question), and so I resorted to trying to use a post-startup script to perform python module installations on-the-fly during boot.
I was previously successful in implementing a post-startup script following the guidance offered here, using option 2. I am returning to this process with the Vertex AI "Instances", and it is no longer working. Could someone please answer the following?
gcloud notebooks instances create
function can take two post-startup script flags. To my knowledge, the startup-script-url
metadata flag executes asynchronously during the boot process, and is not actually post startup. The separate post-startup-script
flag is, as I understand it, a true post startup script, which executes after the instance has been created and booted. With the newer Instances, created using gcloud workbench instances create
, the post-startup-script
flag has been removed and we have only startup-script-url
to work with. Other than this, I haven't found any documentation mentioning the post-startup options. Is there a replacement for the post-startup-script
argument?startup-script-url
is not actually run post startup, is there a way to run a true post startup script when building an Instance using gcloud workbench instances create
? Here, I am interested in running a script as if I was the end user opening up the Jupyter Lab console. The paired boot-data VMs need to be fully built and accessible (as they would from the console), before running the script.startup-script-url
and following the instructions for option 2 here, is the executing user still jupyter
?startup-script-url
is specifically for GCE
https://cloud.google.com/compute/docs/instances/startup-scripts/linux
Since User Managed Notebooks and Workbench instances are GCE base, both automatically support this.gcloud notebooks instances
(User Managed Notebooks). (Have a specific proto for it)
gcloud workbench instances create
(Workbench Instances)
The replacement is using metadata:
--metadata=[KEY=VALUE,...]
In this case use for metadata key: post-startup-script
and value your location (GCS or HTTPs path). Example: gs://test-bucket/PostStartupScript.sh
Use metadata key: post-startup-script
and value your location (GCS or HTTPs path). Example: gs://test-bucket/PostStartupScript.sh
No, is root.
"the startup script runs as root" https://cloud.google.com/compute/docs/instances/startup-scripts/linux
Vertex post-startup-script
also runs as root.
Documentation here: https://cloud.google.com/vertex-ai/docs/workbench/instances/manage-metadata