Usa una secuencia de comandos posterior al 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 configurar variables de entorno para usarlas con tu secuencia de comandos posterior al inicio.

Descripción general

Puedes usar una secuencia de comandos posterior al inicio para realizar tareas después del proceso de inicio del entorno de ejecución de Colab Enterprise. Por ejemplo, puedes usar una secuencia de comandos posterior al inicio para instalar paquetes específicos o realizar cambios específicos en la VM de tu entorno de ejecución.

Para usar una secuencia de comandos posterior al inicio en Colab Enterprise, debes especificarla cuando crees una plantilla de entorno de ejecución. Luego, cuando creas un entorno de ejecución basado en esa plantilla, la secuencia de comandos posterior al inicio se ejecuta al final del proceso de inicio.

Ubicación de la secuencia de comandos posterior al 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 está almacenada en Cloud Storage, debes usar un entorno de ejecución con credenciales de usuario final habilitadas. Esto se debe a que Colab Enterprise usa tus credenciales de usuario para acceder al bucket de Cloud Storage.
  • Una URL HTTPS: Por ejemplo, https://example.com/FOLDER_NAME/SCRIPT_FILE_NAME. No se admite el uso de una URL HTTPS cuando creas tu plantilla de entorno de ejecución con la consola de Google Cloud .

Comportamiento de secuencia de comandos posterior al 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 entorno de ejecución.

Ejecutar en 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 inactivo detiene el entorno de ejecución, Colab Enterprise vuelve a ejecutar la secuencia de comandos posterior al inicio cuando se reinicia el entorno de ejecución.

Descargar y ejecutar en cada inicio (<code>DOWNLOAD_AND_RUN_EVERY_START</code>)

Después de cada inicio, Colab Enterprise vuelve a descargar la secuencia de comandos posterior al inicio desde su fuente y, luego, 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 configurar el proyecto de cuota con una variable de entorno. Puedes configurar tu proyecto de cuota en un ID del proyecto específico con GOOGLE_CLOUD_QUOTA_PROJECT, una variable común que se usa en las bibliotecas cliente de Google Cloud.

Para usar una secuencia de comandos posterior al inicio con variables de entorno, consulta Crea una plantilla de tiempo de ejecución con una secuencia de comandos posterior al inicio y variables de entorno.

Cómo 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 posterior al inicio y habilitar la recuperación de una versión específica de la secuencia de comandos posterior al inicio, almacena tu secuencia de comandos posterior al inicio en un bucket de Cloud Storage con el control de versiones de objetos habilitado. El control de versiones de objetos conserva los objetos borrados como objetos no actuales con versiones a los que se puede acceder en el bucket hasta que se quitan de forma explícita.

Para especificar una versión de tu secuencia de comandos posterior al inicio, agrega #GENERATION_NUMBER al URI de la secuencia de comandos posterior al inicio cuando crees tu plantilla de entorno de ejecución, por ejemplo, gs://BUCKET_NAME/FOLDER_NAME/FILE_NAME.py#GENERATION_NUMBER. Para obtener más información sobre el control de versiones de objetos y los números de generación, consulta Control de versiones de objetos.

Cuando usas la consola de Google Cloud para crear tu plantilla de entorno de ejecución, no se admite especificar un número de generación para tu secuencia de comandos posterior al inicio.

Antes de comenzar

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  3. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. Roles requeridos

    Para obtener los permisos que necesitas para crear una plantilla del entorno de ejecución en Colab Enterprise, pídele a tu administrador que te otorgue el rol de IAM de administrador de Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

    Crea una plantilla de entorno de ejecución que use una secuencia de comandos posterior al inicio

    Para crear una plantilla de ejecución que use una secuencia de comandos posterior al inicio, puedes usar la Google Cloud consola, Google Cloud CLI o la API de REST.

    Console

    Para crear una plantilla de entorno de ejecución que use una secuencia de comandos posterior al inicio, haz lo siguiente:

    1. En la consola de Google Cloud , ve a la página Plantillas de entorno de ejecución de Colab Enterprise.

      Ir a Plantillas de entorno de ejecución

    2. Haz clic en Plantilla nueva.

      Aparecerá el cuadro de diálogo Crear nueva plantilla de entorno de ejecución.

    3. En la sección Conceptos básicos del entorno de ejecución, ingresa un Nombre visible.

    4. En el menú Región, selecciona la región en la que deseas que se ejecute el entorno de ejecución.

    5. En la sección Environment, en el campo Post-startup script, haz clic en Browse y, luego, navega 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.

    6. En la URL de la secuencia de comandos posterior al inicio, selecciona el comportamiento de la secuencia de comandos posterior al inicio. El comportamiento predeterminado es Ejecutar una vez. Para obtener más información, consulta Comportamiento de la secuencia de comandos posterior al inicio.

    7. En la sección Herramientas de redes y seguridad, asegúrate de que esté seleccionada la opción Habilitar credenciales de usuario final.

    8. Completa el resto del cuadro de diálogo y haz clic en Crear.

      Tu plantilla de entorno de ejecución aparece en la lista en la pestaña Plantillas de entorno de ejecución.

    gcloud

    Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

    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

    Si deseas obtener más información sobre el comando para crear una plantilla de ejecución desde la línea de comandos, consulta la documentación de gcloud CLI.

    REST

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    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
    Si se ejecuta correctamente, el cuerpo de la respuesta contiene una instancia de operación.

    Para obtener más información, consulta la documentación de la API de REST de notebookRuntimeTemplates.create.

    Crea el entorno de ejecución

    Después de crear una plantilla de entorno de ejecución que use tu secuencia de comandos posterior al inicio, crea un entorno de ejecución basado en esa plantilla. Se inicia el entorno de ejecución y se ejecuta la secuencia de comandos posterior al inicio según el comportamiento especificado. Consulta Crea un tiempo de ejecución.

    Crea una plantilla de entorno 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 consola de Google Cloud , Google Cloud CLI o la API de REST.

    Console

    Para crear una plantilla de entorno de ejecución que use una secuencia de comandos posterior al inicio y variables de entorno, haz lo siguiente:

    1. En la consola de Google Cloud , ve a la página Plantillas de entorno de ejecución de Colab Enterprise.

      Ir a Plantillas de entorno de ejecución

    2. Haz clic en Plantilla nueva.

      Aparecerá el cuadro de diálogo Crear nueva plantilla de entorno de ejecución.

    3. En la sección Conceptos básicos del entorno de ejecución, ingresa un Nombre visible.

    4. En el menú Región, selecciona la región en la que deseas que se ejecute el entorno de ejecución.

    5. En la sección Environment, en el campo Post-startup script, haz clic en Browse y, luego, navega 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.

    6. En la URL de la secuencia de comandos posterior al inicio, selecciona el comportamiento de la secuencia de comandos posterior al inicio. El comportamiento predeterminado es Ejecutar una vez. Para obtener más información, consulta Comportamiento de la secuencia de comandos posterior al inicio.

    7. Para agregar una variable de entorno, haz clic en  Agregar variable de entorno, y, luego, ingresa un par de Clave y Valor. Para agregar más variables de entorno, repite este paso.

    8. En la sección Herramientas de redes y seguridad, asegúrate de que esté seleccionada la opción Habilitar credenciales de usuario final.

    9. Completa el resto del cuadro de diálogo y, luego, haz clic en Crear.

      Tu plantilla de entorno de ejecución aparece en la lista en la pestaña Plantillas de entorno de ejecución.

    gcloud

    Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

    • DISPLAY_NAME: Es el nombre visible de tu plantilla de tiempo de ejecución.
    • PROJECT_ID: el ID de tu proyecto
    • REGION: Es la región en la que deseas que se encuentre tu plantilla de ejecución.
    • POST_STARTUP_SCRIPT_URI: Es 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: Es el comportamiento de la secuencia de comandos posterior al inicio. Consulta Comportamiento de secuencia de comandos posterior al inicio.
    • ENV_VARIABLE_NAME: Es el nombre de una variable de entorno que se configurará para tu entorno de ejecución.
    • ENV_VARIABLE_VALUE: Es el valor de la variable de entorno que se establecerá para tu entorno de ejecución.

    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

    Si deseas obtener más información sobre el comando para crear una plantilla de ejecución desde la línea de comandos, consulta la documentación de gcloud CLI.

    REST

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • REGION: Es la región en la que deseas que se encuentre tu plantilla de ejecución.
    • PROJECT_ID: el ID de tu proyecto
    • DISPLAY_NAME: Es el nombre visible de tu plantilla de tiempo de ejecución.
    • POST_STARTUP_SCRIPT_URI: Es 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: Es el comportamiento de la secuencia de comandos posterior al inicio. Consulta Comportamiento de secuencia de comandos posterior al inicio.
    • ENV_VARIABLE_NAME: Es el nombre de una variable de entorno que se configurará para tu entorno de ejecución.
    • ENV_VARIABLE_VALUE: Es el valor de la variable de entorno que se establecerá para tu entorno de ejecución.

    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
    Si se ejecuta correctamente, el cuerpo de la respuesta contiene una instancia de operación.

    Para obtener más información, consulta la documentación de la API de REST de notebookRuntimeTemplates.create.

    Crea el entorno de ejecución

    Después de crear una plantilla de entorno de ejecución que use tu secuencia de comandos posterior al inicio, crea un entorno de ejecución basado en esa plantilla. Se inicia el entorno de ejecución y se ejecuta la secuencia de comandos posterior al inicio según el comportamiento especificado. Consulta Crea un tiempo de ejecución.

    Limitaciones

    Ten en cuenta las siguientes limitaciones cuando uses secuencias de comandos posteriores al inicio con Colab Enterprise:

    • 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 de entorno de ejecución.
    • No se admite el paso de variables de entorno a través de la secuencia de comandos posterior al inicio. Debes especificar las variables de entorno en la configuración del software como se describe en esta guía.
    • Para usar una secuencia de comandos posterior al inicio ubicada en Cloud Storage, debes usar un entorno de ejecución con credenciales de usuario final habilitadas, y tus credenciales de usuario deben tener acceso al bucket de Cloud Storage.
    • Si usas la consola de Google Cloud para crear tu plantilla de entorno de ejecución, tu secuencia de comandos posterior al inicio debe estar ubicada en Cloud Storage. No se admiten las secuencias de comandos posteriores al inicio en otras ubicaciones cuando creas tu plantilla de tiempo de ejecución con la consola de Google Cloud .
    • No se admite especificar un número de generación para tu secuencia de comandos posterior al inicio cuando usas la consola de Google Cloud para crear tu plantilla de entorno de ejecución.

    ¿Qué sigue?