Otras formas de ejecutar trabajos

Puede utilizar trabajos de muchas maneras diferentes, como el uso de entornos conda y archivos zip.

Uso de archivos zip o tar comprimidos

Puede utilizar trabajos para ejecutar todo un proyecto de Python que archive en un único archivo.

Los archivos zip o tar comprimidos que se ejecutan como un trabajo pueden utilizar los Entornos conda del servicio de Data Science y los Entornos conda personalizados.

Para la ejecución del trabajo, debe apuntar al archivo de entrada principal mediante la variable de entorno JOB_RUN_ENTRYPOINT. Esta variable solo se utiliza con trabajos que utilizan artefactos de trabajo de tar comprimido o zip.

Uso de un entorno conda de Data Science

Puede utilizar uno de los entornos conda de Data Science que se incluyen en el servicio.

Un entorno conda encapsula todas las dependencias Python de terceros (como Numpy, Dask o XGBoost) que requiere la ejecución del trabajo. Los entornos conda de Data Science se incluyen y se conservan en el servicio. Si no especifica un entorno conda como parte de las configuraciones de trabajo y ejecución de trabajo, no se utilizará un entorno conda porque no hay ningún valor por defecto.

El código de trabajo está embebido en un entorno conda de Data Science:

Muestra cómo se incrusta el código de trabajo en un entorno conda de Data Science, una unidad y una ejecución de trabajo. Y el nombre para URL de entorno conda en la tarjeta de entorno conda.

  1. Busque el conda de Data Science que desea utilizar y, a continuación, seleccione entre:
    • En la consola:

      1. En un proyecto, cree una sesión de bloc de notas.

      2. Abra la sesión de bloc de notas.

      3. Consulte los entornos conda y seleccione el entorno conda de Data Science que desea utilizar.

      4. Copie el nombre para URL del entorno conda de la tarjeta seleccionada.

        Al ejecutar un trabajo con un trabajo conda de Data Science, no es necesario publicarlo en Object Storage. Solo necesita el valor de nombre para URL del entorno conda.

        Consejo

        Puede probar el código en un bloc de notas antes de ejecutarlo como un trabajo.

    • En la lista de entornos conda de Data Science:

      1. Busque el entorno conda que desea utilizar.

      2. En la tabla, copie el nombre para URL.

  2. Cree un trabajo y agregue esta variable de entorno personalizado para especificar el entorno conda de Data Science:
    CONDA_ENV_TYPE => "service"
    CONDA_ENV_SLUG = <service_conda_environment_slug>
  3. Inicie una ejecución de trabajo y, para utilizar un entorno conda diferente para la ejecución del trabajo, utilice las variables de entorno personalizadas para sustituir la configuración del trabajo.

Uso de un entorno conda personalizado

Puede utilizar trabajos de archivos zip y tar comprimido con entornos conda personalizados o con entornos conda de Data Science.

Un entorno conda encapsula todas las dependencias Python de terceros (como Numpy, Dask o XGBoost) que necesita su ejecución de trabajo. Puede crear, publicar y mantener entornos conda personalizados. Si no especifica un entorno conda como parte de las configuraciones de trabajo y ejecución de trabajo, no se utilizará un entorno conda porque no hay ningún valor por defecto

El código de trabajo se incrusta en un entorno conda personalizado como el siguiente:

Muestra cómo se embebe el código de trabajo en un entorno conda personalizado, una unidad y una ejecución de trabajo. Y el nombre para URL de entorno conda en la tarjeta de entorno conda.

  1. Creación de un entorno conda personalizado.
  2. Publíquelo en Object Storage.
  3. Configure políticas que permitan al recurso de ejecución de trabajos acceder a los entornos conda publicados que se almacenan en el cubo de Object Storage de su arrendamiento.
  4. Cree un trabajo y defina estas variables de entorno (la región es opcional si está en la misma región que la ejecución de trabajo):
    CONDA_ENV_TYPE => "published"
    CONDA_ENV_OBJECT_NAME => <full_path_object_storage_name>
    CONDA_ENV_REGION => <object_storage_region>
    CONDA_ENV_NAMESPACE => <object_storage_namespace>
    CONDA_ENV_BUCKET => <object_storage_bucket_name>
    Importante

    El trabajo y la ejecución de trabajo se deben configurar con una subred que tenga un gateway de servicio para acceder al entorno conda publicado en el cubo de Object Storage de su arrendamiento.

  5. Inicie una ejecución de trabajo.

    (Opcional) Para utilizar un entorno conda diferente para ejecuciones de trabajos individuales, defina variables de entorno personalizadas para sustituir la configuración de trabajo.

  6. (Opcional) Si ha utilizado el registro, puede revisarlos para ver los valores de ejecución del trabajo.

Uso de un archivo YAML de tiempo de ejecución

Puede utilizar un archivo YAML de tiempo de ejecución para configurar variables de entorno de trabajo en lugar de utilizar la consola o el SDK.

Antes de empezar:

Descargue, descomprima y revise los archivos de ejemplo jobruntime.yaml y conda_pack_test.py para crear y probar el proyecto de trabajo.

El uso de un archivo jobruntime.yaml facilita la configuración de variables de entorno personalizadas en el proyecto.

  1. Cambie el archivo de ejemplo jobruntime.yaml para especificar los valores.

    Agregue las variables que desee utilizar durante la ejecución del trabajo. Puede agregar variables de entorno específicas de ejecución de trabajos, como CONDA_ENV_TYPE o CONDA_ENV_SLUG, y pares de claves personalizadas.

    Por ejemplo:

    CONDA_ENV_TYPE: service
    CONDA_ENV_SLUG: dataexpl_p37_cpu_v2
    JOB_RUN_ENTRYPOINT: conda_pack_test.py
    KEY1: value1
    KEY2: 123123
    Importante

    Las variables anidadas no están soportadas.

    Observe cómo se incluye JOB_RUN_ENTRYPOINT del proyecto en el archivo YAML de tiempo de ejecución, de modo que no tiene que hacerlo manualmente al ejecutar el trabajo.

  2. Cree un proyecto simple con un único archivo python y el archivo jobruntime.yaml en un directorio raíz de proyecto.
  3. En el archivo python, lea las variables de entorno e imprímalas para probar que son accesibles.

    Por ejemplo:

    print("Executing job artifact")
    print(os.getenv("CONDA_PREFIX"))
    print(os.getenv("CONDA_ENV_SLUG"))
    print(os.getenv("JOB_RUN_ENTRYPOINT"))
    print(os.getenv("KEY1"))
    print(os.getenv("KEY2"))
    print(os.getenv("spec"))
  4. Archive el directorio raíz del proyecto en un archivo tar comprimido o zip.

    Por ejemplo, para comprimir un archivo en un Mac, podría utilizar:

    zip -r zip-runtime-yaml-artifact.zip zip-runtime-yaml-artifact/ -x ".*" -x "__MACOSX"
  5. En la consola, cree un nuevo trabajo y cargue el archivo de almacenamiento de trabajo.
  6. Ejecute el trabajo para probar que funciona.

    Tenga en cuenta que no es necesario proporcionar ninguna variable de entorno en la ejecución de trabajo porque estas están definidas en el archivo .yaml.

  7. Supervise la ejecución de trabajo para una finalización correcta.
  8. (Opcional) Si ha utilizado el registro, puede revisarlos para ver los valores de ejecución del trabajo.

Uso de Vault

Puede integrar el servicio OCI Vault en trabajos de Data Science mediante principales de recursos.

Antes de empezar:

  • Para que la entidad de recurso del trabajo tenga acceso a un almacén, asegúrese de que tiene un grupo dinámico en el compartimento que especifique la instancia o la entidad de recurso. Por ejemplo, puede utilizar la entidad de recurso y un grupo dinámico con esta regla:

    all {resource.type='datasciencejobrun',resource.compartment.id='<compartment_ocid>'}
  • Para que se ejecute el trabajo, debe asegurarse de que puede gestionar al menos secret-family en el grupo dinámico. Por ejemplo:

    Allow dynamic-group <dynamic_group_name> to manage secret-family in compartment <compartment_name>

    La publicación de blog Using the OCI Instance Principals and Vault with Python to retrieve a Secret (Uso de Principales de instancia y Vault de OCI con Python para recuperar un secreto) proporciona detalles útiles.

  • Descargue, descomprima y revise el archivo de ejemplo zipped_python_job.zip que muestra lo siguiente:

    • Inicialización del cliente de almacén en el trabajo mediante el SDK de Python.
    • Lee un secreto mediante el OCID secreto.
    • Decodifica el grupo de secretos y muestra el contenido del secreto real.

    Puesto que los trabajos tienen acceso a la entidad de recurso, puede inicializar todos los clientes de Vault disponibles en el SDK de Python.

  • Cree un almacén que tenga una clave maestra y un secreto, y agregue una sentencia de política a todos los principales de recurso de trabajo en manage secret-family.

  1. En la consola, cree un nuevo trabajo.
  2. Ejecute el trabajo para probar que funciona.
  3. Supervise la ejecución de trabajo para una finalización correcta.
  4. (Opcional) Si ha utilizado el registro, puede revisarlos para ver los valores de ejecución del trabajo.