Usar una secuencia de comandos tras el inicio
En esta guía se describe cómo usar una secuencia de comandos posterior al inicio con Colab Enterprise. En esta guía también se describe cómo definir variables de entorno para usarlas con tu secuencia de comandos posterior al inicio.
Información general
Puedes usar una secuencia de comandos posterior al inicio para realizar tareas después del proceso de inicio de tu entorno de ejecución de Colab Enterprise. Por ejemplo, puedes usar una secuencia de comandos posterior al inicio para instalar paquetes específicos o hacer cambios específicos en la máquina virtual de tu tiempo de ejecución.
Para usar una secuencia de comandos posterior al inicio en Colab Enterprise, especifica la secuencia de comandos posterior al inicio al crear una plantilla de tiempo de ejecución. Después, cuando crees un tiempo de ejecución basado en esa plantilla, la secuencia de comandos posterior al inicio se ejecutará al final del proceso de inicio.
Ubicación de la secuencia de comandos tras el inicio
El URI de la secuencia de comandos posterior al inicio puede ser cualquiera de los siguientes:
- Un URI de Cloud Storage: por ejemplo,
gs://BUCKET_NAME/SCRIPT_FILE_NAME
. Si tu secuencia de comandos posterior al inicio se almacena en Cloud Storage, debes usar un tiempo de ejecución con las credenciales de usuario final habilitadas. Esto se debe a que Colab Enterprise usa tus credenciales de usuario para acceder al segmento de Cloud Storage. - Una URL de HTTPS: por ejemplo,
https://example.com/FOLDER_NAME/SCRIPT_FILE_NAME
. No se admite el uso de una URL HTTPS al crear una plantilla de tiempo de ejecución con la consola Google Cloud .
Comportamiento de la secuencia de comandos tras el inicio
Puedes especificar el comportamiento de la secuencia de comandos posterior al inicio. Consulta la siguiente tabla:
Comportamiento | Descripción |
---|---|
Ejecutar una vez (`RUN_ONCE`) |
Predeterminado. Colab Enterprise ejecuta la secuencia de comandos posterior al inicio solo una vez, durante la creación del tiempo de ejecución. |
Ejecutar cada inicio (`RUN_EVERY_START`) |
Después de cada inicio, Colab Enterprise ejecuta la secuencia de comandos posterior al inicio. Por ejemplo, si el apagado por inactividad detiene el tiempo de ejecución, Colab Enterprise vuelve a ejecutar la secuencia de comandos posterior al inicio cuando se reinicia el tiempo de ejecución. |
Descargar y ejecutar cada vez que se inicia (`DOWNLOAD_AND_RUN_EVERY_START`) |
Después de cada inicio, Colab Enterprise vuelve a descargar la secuencia de comandos posterior al inicio desde su fuente y, a continuación, la ejecuta. |
Variables de entorno
Puedes especificar variables de entorno en tu plantilla de tiempo de ejecución y hacer referencia a esas variables en tu secuencia de comandos posterior al inicio.
Por ejemplo, puedes definir el proyecto de cuota mediante una variable de entorno.
Puedes definir el proyecto de cuota en un ID de proyecto específico mediante GOOGLE_CLOUD_QUOTA_PROJECT
, una variable común que se usa en las bibliotecas de cliente de Google Cloud.
Para usar una secuencia de comandos tras el inicio con variables de entorno, consulta Crear una plantilla de tiempo de ejecución con una secuencia de comandos tras el inicio y variables de entorno.
Hacer un seguimiento de los cambios en las secuencias de comandos posteriores al inicio y recuperarlas
Para hacer un seguimiento de los cambios en tu secuencia de comandos tras el inicio y habilitar la recuperación de una versión específica de la secuencia de comandos tras el inicio, almacena la secuencia de comandos tras el inicio en un segmento de Cloud Storage con la gestión de versiones de objetos habilitada. La gestión de versiones de objetos conserva los objetos eliminados como objetos con versiones que no son actuales y que permanecen accesibles en tu segmento hasta que se eliminan de forma explícita.
Para especificar una versión de tu secuencia de comandos posterior al inicio, añade
#GENERATION_NUMBER
al URI de la secuencia de comandos posterior al inicio
cuando crees tu plantilla de tiempo de ejecución. Por ejemplo,
gs://BUCKET_NAME/FOLDER_NAME/FILE_NAME.py#GENERATION_NUMBER
.
Para obtener más información sobre la gestión de versiones de objetos y los números de generación, consulte Gestión de versiones de objetos.
Cuando usas la Google Cloud consola para crear tu plantilla de tiempo de ejecución, no se admite especificar un número de generación para tu secuencia de comandos posterior al inicio.
Antes de empezar
- 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.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Dataform, and Compute Engine APIs.
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. -
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI, Dataform, and Compute Engine APIs.
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. -
En la Google Cloud consola, ve a la página Plantillas de tiempo de ejecución de Colab Enterprise.
-
Haz clic en
Nueva plantilla.Aparecerá el cuadro de diálogo Crear plantilla de tiempo de ejecución.
-
En la sección Aspectos básicos del tiempo de ejecución, introduce un Nombre visible.
-
En el menú Región, selecciona la región en la que quieres que esté tu plantilla de tiempo de ejecución.
-
En la sección Entorno, en el campo Secuencia de comandos posterior al inicio, haga clic en Examinar y, a continuación, vaya a una secuencia de comandos posterior al inicio ubicada en Cloud Storage. Para obtener más información, consulta Ubicación de la secuencia de comandos posterior al inicio.
-
En la URL de la secuencia de comandos tras el inicio, selecciona el comportamiento de la secuencia de comandos tras el inicio. El comportamiento predeterminado es Ejecutar una vez. Para obtener más información, consulta el artículo Comportamiento de las secuencias de comandos posteriores al inicio.
-
En la sección Redes y seguridad, asegúrate de que la opción Habilitar credenciales de usuario final esté seleccionada.
-
Completa el resto del cuadro de diálogo y, a continuación, haz clic en Crear.
La plantilla de tiempo de ejecución aparecerá en la lista de la pestaña Plantillas de tiempo de ejecución.
DISPLAY_NAME
: el nombre visible de tu plantilla de tiempo de ejecución.PROJECT_ID
: tu ID de proyecto.REGION
: la región en la que quieras que esté tu plantilla de tiempo de ejecución.POST_STARTUP_SCRIPT_URI
: el URI de tu secuencia de comandos posterior al inicio. Para obtener más información, consulta Ubicación de la secuencia de comandos posterior al inicio.POST_STARTUP_SCRIPT_BEHAVIOR
: el comportamiento de la secuencia de comandos tras el inicio. Consulta la sección Comportamiento de la secuencia de comandos tras el inicio.REGION
: la región en la que quieras que esté tu plantilla de tiempo de ejecución.PROJECT_ID
: tu ID de proyecto.DISPLAY_NAME
: el nombre visible de tu plantilla de tiempo de ejecución.POST_STARTUP_SCRIPT_URI
: el URI de tu secuencia de comandos posterior al inicio. Para obtener más información, consulta Ubicación de la secuencia de comandos posterior al inicio.POST_STARTUP_SCRIPT_BEHAVIOR
: el comportamiento de la secuencia de comandos tras el inicio. Consulta la sección Comportamiento de la secuencia de comandos tras el inicio.-
En la Google Cloud consola, ve a la página Plantillas de tiempo de ejecución de Colab Enterprise.
-
Haz clic en
Nueva plantilla.Aparecerá el cuadro de diálogo Crear plantilla de tiempo de ejecución.
-
En la sección Aspectos básicos del tiempo de ejecución, introduce un Nombre visible.
-
En el menú Región, selecciona la región en la que quieres que esté tu plantilla de tiempo de ejecución.
-
En la sección Entorno, en el campo Secuencia de comandos posterior al inicio, haga clic en Examinar y, a continuación, vaya a una secuencia de comandos posterior al inicio ubicada en Cloud Storage. Para obtener más información, consulta Ubicación de la secuencia de comandos posterior al inicio.
-
En la URL de la secuencia de comandos tras el inicio, selecciona el comportamiento de la secuencia de comandos tras el inicio. El comportamiento predeterminado es Ejecutar una vez. Para obtener más información, consulta el comportamiento de las secuencias de comandos posteriores al inicio.
-
Para añadir una variable de entorno, haz clic en
Añadir variable de entorno y, a continuación, introduce un par de Clave y Valor. Para añadir más variables de entorno, repite este paso. -
En la sección Redes y seguridad, asegúrate de que la opción Habilitar credenciales de usuario final esté seleccionada.
-
Completa el resto del cuadro de diálogo y, a continuación, haz clic en Crear.
La plantilla de tiempo de ejecución aparecerá en la lista de la pestaña Plantillas de tiempo de ejecución.
DISPLAY_NAME
: el nombre visible de tu plantilla de tiempo de ejecución.PROJECT_ID
: tu ID de proyecto.REGION
: la región en la que quieras que esté tu plantilla de tiempo de ejecución.POST_STARTUP_SCRIPT_URI
: el URI de tu secuencia de comandos posterior al inicio. Para obtener más información, consulta Ubicación de la secuencia de comandos posterior al inicio.POST_STARTUP_SCRIPT_BEHAVIOR
: el comportamiento de la secuencia de comandos tras el inicio. Consulta la sección Comportamiento de la secuencia de comandos tras el inicio.ENV_VARIABLE_NAME
: el nombre de una variable de entorno que se va a definir en tu tiempo de ejecución.ENV_VARIABLE_VALUE
: el valor de la variable de entorno que se va a definir en tu tiempo de ejecución.REGION
: la región en la que quieras que esté tu plantilla de tiempo de ejecución.PROJECT_ID
: tu ID de proyecto.DISPLAY_NAME
: el nombre visible de tu plantilla de tiempo de ejecución.POST_STARTUP_SCRIPT_URI
: el URI de tu secuencia de comandos posterior al inicio. Para obtener más información, consulta Ubicación de la secuencia de comandos posterior al inicio.POST_STARTUP_SCRIPT_BEHAVIOR
: el comportamiento de la secuencia de comandos tras el inicio. Consulta la sección Comportamiento de la secuencia de comandos tras el inicio.ENV_VARIABLE_NAME
: el nombre de una variable de entorno que se va a definir en tu tiempo de ejecución.ENV_VARIABLE_VALUE
: el valor de la variable de entorno que se va a definir en tu tiempo de ejecución.- Para crear un entorno de ejecución basado en una plantilla de entorno de ejecución que incluya una secuencia de comandos posterior al inicio, debes ser el propietario y el creador de esa plantilla.
- No se admite la transmisión de variables de entorno a través de la secuencia de comandos posterior al inicio. Debe especificar las variables de entorno en la configuración del software tal como se describe en esta guía.
- Para usar una secuencia de comandos posterior al inicio ubicada en Cloud Storage, debes usar un tiempo de ejecución con las credenciales de usuario final habilitadas y tus credenciales de usuario deben tener acceso al segmento de Cloud Storage.
- Si usas la Google Cloud consola para crear tu plantilla de tiempo de ejecución, tu secuencia de comandos posterior al inicio debe estar ubicada en Cloud Storage. No se admiten secuencias de comandos posteriores al inicio en otras ubicaciones al crear tu plantilla de tiempo de ejecución con la consola Google Cloud .
- No se puede especificar un número de generación para la secuencia de comandos posterior al inicio cuando se usa la consola para crear la plantilla de tiempo de ejecución. Google Cloud
- Crea un tiempo de ejecución y conéctate a él.
- Para gestionar tu tiempo de ejecución, consulta Gestionar tiempos de ejecución.
- Consulta más información sobre los runtimes y las plantillas de runtime.
Roles obligatorios
Para obtener los permisos que necesitas para crear una plantilla de entorno de ejecución en Colab Enterprise,
pide a tu administrador que te conceda el rol de gestión de identidades y accesos
Administrador de Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin
)
en el proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Crear una plantilla de tiempo de ejecución que use una secuencia de comandos posterior al inicio
Para crear una plantilla de tiempo de ejecución que use una secuencia de comandos posterior al inicio, puedes usar la consola Google Cloud , la CLI de Google Cloud o la API REST.
Consola
Para crear una plantilla de tiempo de ejecución que use una secuencia de comandos posterior al inicio, siga estos pasos:
gcloud
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud colab runtime-templates create --display-name="DISPLAY_NAME" \ --project=PROJECT_ID \ --region=REGION \ --machine-type=e2-standard-4 \ --post-startup-script-url=POST_STARTUP_SCRIPT_URI \ --post-startup-script-behavior=POST_STARTUP_SCRIPT_BEHAVIOR
Windows (PowerShell)
gcloud colab runtime-templates create --display-name="DISPLAY_NAME" ` --project=PROJECT_ID ` --region=REGION ` --machine-type=e2-standard-4 ` --post-startup-script-url=POST_STARTUP_SCRIPT_URI ` --post-startup-script-behavior=POST_STARTUP_SCRIPT_BEHAVIOR
Windows (cmd.exe)
gcloud colab runtime-templates create --display-name="DISPLAY_NAME" ^ --project=PROJECT_ID ^ --region=REGION ^ --machine-type=e2-standard-4 ^ --post-startup-script-url=POST_STARTUP_SCRIPT_URI ^ --post-startup-script-behavior=POST_STARTUP_SCRIPT_BEHAVIOR
Para obtener más información sobre el comando para crear una plantilla de tiempo de ejecución desde la línea de comandos, consulta la documentación de la CLI de gcloud.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", "machineSpec": { "machineType": "e2-standard-4" }, softwareConfig: { postStartupScriptConfig: { postStartupScriptUrl: "POST_STARTUP_SCRIPT_URI", postStartupScriptBehavior: "POST_STARTUP_SCRIPT_BEHAVIOR" }, }, "networkSpec": { "enableInternetAccess": true } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates" | Select-Object -Expand Content
Para obtener más información, consulta la documentación de la API REST notebookRuntimeTemplates.create
.
Crear el entorno de ejecución
Después de crear una plantilla de tiempo de ejecución que use tu secuencia de comandos posterior al inicio, crea un tiempo de ejecución basado en esa plantilla. El tiempo de ejecución se inicia y la secuencia de comandos posterior al inicio se ejecuta según el comportamiento especificado. Consulta Crear un tiempo de ejecución.
Crear una plantilla de tiempo de ejecución con una secuencia de comandos posterior al inicio y variables de entorno
Para crear una plantilla de tiempo de ejecución que use un script posterior al inicio y variables de entorno, puedes usar la Google Cloud consola, la CLI de Google Cloud o la API REST.
Consola
Para crear una plantilla de tiempo de ejecución que use una secuencia de comandos posterior al inicio y variables de entorno, haz lo siguiente:
gcloud
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud colab runtime-templates create --display-name="DISPLAY_NAME" \ --project=PROJECT_ID \ --region=REGION \ --machine-type=e2-standard-4 \ --post-startup-script-url=POST_STARTUP_SCRIPT_URI \ --post-startup-script-behavior=POST_STARTUP_SCRIPT_BEHAVIOR \ --set-env-vars=ENV_VARIABLE_NAME=ENV_VARIABLE_VALUE
Windows (PowerShell)
gcloud colab runtime-templates create --display-name="DISPLAY_NAME" ` --project=PROJECT_ID ` --region=REGION ` --machine-type=e2-standard-4 ` --post-startup-script-url=POST_STARTUP_SCRIPT_URI ` --post-startup-script-behavior=POST_STARTUP_SCRIPT_BEHAVIOR ` --set-env-vars=ENV_VARIABLE_NAME=ENV_VARIABLE_VALUE
Windows (cmd.exe)
gcloud colab runtime-templates create --display-name="DISPLAY_NAME" ^ --project=PROJECT_ID ^ --region=REGION ^ --machine-type=e2-standard-4 ^ --post-startup-script-url=POST_STARTUP_SCRIPT_URI ^ --post-startup-script-behavior=POST_STARTUP_SCRIPT_BEHAVIOR ^ --set-env-vars=ENV_VARIABLE_NAME=ENV_VARIABLE_VALUE
Para obtener más información sobre el comando para crear una plantilla de tiempo de ejecución desde la línea de comandos, consulta la documentación de la CLI de gcloud.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", "machineSpec": { "machineType": "e2-standard-4" }, softwareConfig: { postStartupScriptConfig: { postStartupScriptUrl: "POST_STARTUP_SCRIPT_URI", postStartupScriptBehavior: "POST_STARTUP_SCRIPT_BEHAVIOR" }, "env": [ { "name": "ENV_VARIABLE_NAME", "value": "ENV_VARIABLE_VALUE" } ] }, "networkSpec": { "enableInternetAccess": true } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/notebookRuntimeTemplates" | Select-Object -Expand Content
Para obtener más información, consulta la documentación de la API REST notebookRuntimeTemplates.create
.
Crear el entorno de ejecución
Después de crear una plantilla de tiempo de ejecución que use tu secuencia de comandos posterior al inicio, crea un tiempo de ejecución basado en esa plantilla. El tiempo de ejecución se inicia y la secuencia de comandos posterior al inicio se ejecuta según el comportamiento especificado. Consulta Crear un tiempo de ejecución.
Limitaciones
Ten en cuenta las siguientes limitaciones al usar secuencias de comandos posteriores al inicio con Colab Enterprise: