Creación de un pipeline

Cree un pipeline de Data Science para ejecutar una tarea.

Asegúrese de que ha creado las políticas, la autenticación y la autorización necesarias para pipelines.

Importante

Para el correcto funcionamiento de los pasos del script, asegúrese de haber agregado la siguiente regla a una política de grupo dinámico:

all {resource.type='datasciencepipelinerun', resource.compartment.id='<pipeline-run-compartment-ocid>'}

Antes de empezar:

Puede crear pipelines mediante el SDK de ADS, la consola de OCI o el SDK de OCI.

El uso de ADS para crear pipelines puede facilitar el desarrollo del pipeline, los pasos y las dependencias. ADS soporta la lectura y escritura del pipeline desde y hacia un archivo YAML. Puede utilizar ADS para ver una representación visual del pipeline. Recomendamos que utilice ADS para crear y gestionar pipelines mediante código.

    1. En la página Pipelines, seleccione Crear pipeline. Si necesita ayuda para buscar la lista de pipelines, consulte Listado de pipelines.
    2. (Opcional) Seleccione un compartimento diferente para el pipeline.
    3. (Opcional) Introduzca un nombre y una descripción para el pipeline (límite de 255 caracteres). Si no proporciona un nombre, se genera automáticamente un nombre.

      Por ejemplo, pipeline2022808222435.

    4. Seleccione Agregar pasos de pipeline para empezar a definir el flujo de trabajo para el pipeline.
    5. En el panel Agregar paso de pipeline, seleccione una de las siguientes opciones y, a continuación, finalice la creación del pipeline:
    Desde un trabajo

    Desde un trabajo

    El paso de pipeline utiliza un trabajo existente. Seleccione uno de los trabajos del arrendamiento.

    1. Introduzca un nombre único para el paso. No puede repetir un nombre de paso en un pipeline.
    2. (Opcional) Introduzca una descripción del paso, que puede ayudarle a encontrar dependencias de pasos.
    3. (Opcional) Si este paso depende de otro paso, seleccione uno o más pasos para ejecutar antes de este paso.
    4. Seleccione el trabajo para el paso que desea ejecutar.
    5. (Opcional) Introduzca o seleccione cualquiera de los siguientes valores para controlar este paso de pipeline:
      Valor y clave de variable de entorno personalizados

      Las variables de entorno para este paso de pipeline.

      Valor

      Valor de la clave de variable de entorno personalizada.

      Puede seleccionar Clave de entorno personalizada adicional para especificar más variables.

      Argumentos de la línea de comandos

      Argumentos de la línea de comandos que desea utilizar para ejecutar el paso de pipeline.

      Tiempo de ejecución máximo (en minutos)

      Número máximo de minutos que se puede ejecutar el paso de pipeline. El servicio cancela la ejecución del pipeline si su tiempo de ejecución supera el valor especificado. El tiempo de ejecución máximo es de 30 días (43.200 minutos). Recomendamos que configure un tiempo de ejecución máximo en todas las ejecuciones de pipeline para evitar ejecuciones de pipeline sin control.

    6. Seleccione Guardar para agregar el paso y volver a la página Crear pipeline.
    7. (Opcional) Seleccione +Add pasos de pipeline para agregar más pasos para completar el flujo de trabajo y repita los pasos anteriores.
    8. (Opcional) Cree una configuración de pipeline por defecto que se utilice cuando se ejecute el pipeline introduciendo variables de entorno, argumentos de línea de comandos y opciones de tiempo de ejecución máximo. Consulte el paso 5 para obtener una explicación de estos campos.
    9. (Opcional) Seleccione una unidad de computación seleccionando Seleccionar y siguiendo estos pasos:
      1. Seleccione un tipo de instancia.
      2. Seleccione una serie de formas.
      3. Seleccione una de las unidades de computación soportadas de la serie.
      4. Seleccione la unidad que mejor se adapte a cómo desea utilizar el recurso. Para la unidad AMD, puede utilizar el valor por defecto o definir el número de OCPU y la memoria.

        Para cada OCPU, seleccione hasta 64 GB de memoria y un total máximo de 512 GB. La cantidad mínima de memoria permitida es de 1 GB o un valor que coincida con el número de OCPU, cualquiera que sea mayor.

      5. Seleccione Seleccionar unidad.
    10. En Almacenamiento de bloques, introduzca la cantidad de almacenamiento que desea utilizar entre 50 GB y 10, 240 GB (10 TB). Puede cambiar el valor en incrementos de 1 GB. El valor por defecto es 100 GB.
    11. (Opcional) Para utilizar el registro, seleccione Seleccionar y, a continuación, asegúrese de que se ha seleccionado Activar registro.
      1. Seleccione un grupo de logs en la lista. Puede cambiar a un compartimento diferente para especificar un grupo de logs de un compartimento diferente al del trabajo.
      2. Seleccione una de las siguientes opciones para almacenar todos los mensajes stdout y stderr:
        Activar creación automática de logs

        Data Science crea automáticamente un log cuando se inicia el trabajo.

        Seleccione un log

        Seleccione el log que desea utilizar.

      3. Seleccione Seleccionar para volver a la página de creación de ejecución de trabajo.
    12. (Opcional) Seleccione Mostrar opciones avanzadas para agregar etiquetas al pipeline.
    13. (Opcional) En la sección Etiquetas, agregue una o más etiquetas a resourceType. Si tiene permisos para crear un recurso, también tiene permisos para aplicar etiquetas de formato libre a dicho recurso. Para aplicar una etiqueta definida, debe tener permisos para utilizar el espacio de nombres de la etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si desea aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
    14. Haga clic en Crear.

      Después de que el pipeline esté en estado activo, puede usar ejecuciones de pipeline para ejecutar el pipeline de forma repetida.

    Desde un script

    Desde una secuencia de comandos

    El paso utiliza un script para ejecutarse. Debe cargar el artefacto que contiene todo el código para que se ejecute el paso.

    1. Introduzca un nombre único para el paso. No puede repetir un nombre de paso en un pipeline.
    2. (Opcional) Introduzca una descripción del paso, que puede ayudarle a encontrar dependencias de pasos.
    3. (Opcional) Si este paso depende de otro paso, seleccione uno o más pasos para ejecutar antes de este paso.
    4. Arrastre un archivo de paso de trabajo al cuadro o seleccione seleccionar un archivo para desplazarse hasta él para su selección.
    5. En Punto de entrada, seleccione un archivo para que sea el punto de ejecución de entrada del paso. Esto resulta útil cuando tiene muchos archivos.
    6. (Opcional) Introduzca o seleccione cualquiera de los siguientes valores para controlar este paso de pipeline:
      Valor y clave de variable de entorno personalizados

      Las variables de entorno para este paso de pipeline.

      Valor

      Valor de la clave de variable de entorno personalizada.

      Puede seleccionar Clave de entorno personalizada adicional para especificar más variables.

      Argumentos de la línea de comandos

      Argumentos de la línea de comandos que desea utilizar para ejecutar el paso de pipeline.

      Tiempo de ejecución máximo (en minutos)

      Número máximo de minutos que se puede ejecutar el paso de pipeline. El servicio cancela la ejecución del pipeline si su tiempo de ejecución supera el valor especificado. El tiempo de ejecución máximo es de 30 días (43.200 minutos). Recomendamos que configure un tiempo de ejecución máximo en todas las ejecuciones de pipeline para evitar ejecuciones de pipeline sin control.

    7. (Opcional) Cree una configuración de pipeline por defecto que se utilice cuando se ejecute el pipeline introduciendo variables de entorno, argumentos de línea de comandos y opciones de tiempo de ejecución máximo. Consulte el paso 6 para obtener una explicación de estos campos.
    8. En Almacenamiento de bloques, introduzca la cantidad de almacenamiento que desea utilizar entre 50 GB y 10, 240 GB (10 TB). Puede cambiar el valor en incrementos de 1 GB. El valor por defecto es 100 GB.
    9. Seleccione Guardar para agregar el paso y volver a la página Crear pipeline.
    10. (Opcional) Utilice los pasos del pipeline +Add para agregar más pasos para completar el flujo de trabajo repitiendo los pasos anteriores.
    11. (Opcional) Cree una configuración de pipeline por defecto que se utilice cuando se ejecute el pipeline introduciendo variables de entorno, argumentos de línea de comandos y opciones de tiempo de ejecución máximo. Consulte el paso 6 para obtener una explicación de estos campos.
    12. En Almacenamiento de bloques, introduzca la cantidad de almacenamiento que desea utilizar entre 50 GB y 10, 240 GB (10 TB). Puede cambiar el valor en incrementos de 1 GB. El valor por defecto es 100 GB.
    13. Seleccione una de las siguientes opciones para configurar el tipo de red:
      • Red por defecto: la carga de trabajo se asocia mediante una VNIC secundaria a una VCN y una subred preconfiguradas gestionadas por el servicio. Esta subred proporcionada permite la salida a la red pública de Internet a través de un gateway de NAT y el acceso a otros servicios de Oracle Cloud a través de un gateway de servicio.

        Si solo necesita acceder a los servicios públicos de Internet y OCI, recomendamos utilizar esta opción. No es necesario que cree recursos de red ni escriba políticas para los permisos de red.

      • Red personalizada: seleccione la VCN y la subred que desea utilizar para el recurso (trabajo o sesión de libro de notas).

        Para obtener acceso de salida a la red pública de Internet, utilice una subred privada con una ruta a un gateway de NAT.

        Si no ve la VCN o la subred que desea utilizar, seleccione Cambiar compartimento y, a continuación, seleccione el compartimento que contiene la VCN o la subred.

        Importante

        Las redes personalizadas se deben utilizar para utilizar un montaje de almacenamiento de archivos.

    14. (Opcional) Para utilizar el registro, seleccione Seleccionar y, a continuación, asegúrese de que se ha seleccionado Activar registro.
      1. Seleccione un grupo de logs en la lista. Puede cambiar a un compartimento diferente para especificar un grupo de logs de un compartimento diferente al del trabajo.
      2. Seleccione una de las siguientes opciones para almacenar todos los mensajes stdout y stderr:
        Activar creación automática de logs

        Data Science crea automáticamente un log cuando se inicia el trabajo.

        Seleccione un log

        Seleccione el log que desea utilizar.

      3. Seleccione Seleccionar para volver a la página de creación de ejecución de trabajo.
    15. (Opcional) Seleccione Mostrar opciones avanzadas para agregar etiquetas al pipeline.
    16. (Opcional) En la sección Etiquetas, agregue una o más etiquetas a resourceType. Si tiene permisos para crear un recurso, también tiene permisos para aplicar etiquetas de formato libre a dicho recurso. Para aplicar una etiqueta definida, debe tener permisos para utilizar el espacio de nombres de la etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si desea aplicar etiquetas, omita esta opción o pregunte a un administrador. Puede aplicar etiquetas más tarde.
    17. Haga clic en Crear.

      Después de que el pipeline esté en estado activo, puede usar ejecuciones de pipeline para ejecutar el pipeline de forma repetida.

    De contenedor

    De contenedor

    Opcionalmente, al definir pasos de pipeline, puede seleccionar Traiga su propio contenedor.
    1. Seleccione De contenedor.
    2. En la sección Configuración de contenedor, seleccione Configurar.
    3. En el panel Configurar entorno de contenedor, seleccione un repositorio de la lista. Si el repositorio está en un compartimento diferente, seleccione Cambiar compartimento.
    4. Seleccione una imagen de la lista.
    5. (Opcional) Introduzca un punto de entrada. Para agregar otro parámetro, seleccione +Add.
    6. (Opcional) Introduzca un CMD. Para agregar otro parámetro, seleccione +Add.
      Utiliza CMD como argumentos para ENTRYPOINT o como único comando que ejecutar en ausencia de ENTRYPOINT.
    7. (Opcional) Introduzca un resumen de imagen.
    8. (Opcional) Si utiliza la verificación de firmas, introduzca el OCID de la firma de imagen.
      Por ejemplo, ocid1.containerimagesignature.oc1.iad.aaaaaaaaab....
    9. (Opcional) Cargue el artefacto de paso arrastrándolo al cuadro.
      Nota

      Este paso es opcional solo si BYOC está configurado.
  • Estas variables de entorno controlan la ejecución del pipeline.

    Puede utilizar la CLI de OCI para crear un pipeline como en este ejemplo de Python:

    1. Crear un pipeline:

      Los siguientes parámetros están disponibles para su uso en la carga útil:

      Nombre de parámetro Necesario Descripción
      Pipeline (nivel superior)
      projectId Necesario OCID del proyecto en el que se va a crear el pipeline.
      compartmentId Necesario OCID de compartimento en el que crear el pipeline.
      displayName Opcional Nombre del pipeline.
      infrastructureConfigurationDetails Opcional

      Configuración de infraestructura (cálculo) por defecto que se utilizará para todos los pasos del pipeline. Consulte infrastructureConfigurationDetails para obtener más información sobre los parámetros soportados.

      La configuración de ejecución de pipeline puede sustituirla.

      logConfigurationDetails Opcional

      Log por defecto que se utilizará para todos los pasos del pipeline. Consulte logConfigurationDetails para obtener más información sobre los parámetros soportados.

      La configuración de ejecución de pipeline puede sustituirla.

      configurationDetails Opcional

      Configuración por defecto para la ejecución de pipeline. Consulte configurationDetails para obtener más información sobre los parámetros soportados.

      La configuración de ejecución de pipeline puede sustituirla.

      freeformTags Opcional Etiquetas para agregar al recurso de pipeline.
      stepDetails
      stepName Necesario Nombre del paso. Debe ser único en el pipeline.
      description Opcional Descripción de texto libre para el paso.
      stepType Necesario CUSTOM_SCRIPT o ML_JOB
      jobId Necesario* Para los pasos de ML_JOB, este es el OCID de trabajo que se utilizará para la ejecución del paso.
      stepInfrastructureConfigurationDetails opcional*

      Configuración de infraestructura por defecto (Compute) que se utilizará para este paso. Consulte infrastructureConfigurationDetails para obtener más información sobre los parámetros soportados.

      La configuración de ejecución de pipeline puede sustituirla.

      *Debe definirse en al menos un nivel (la prioridad se basa en la prioridad, siendo 1 la más alta):

      1 ejecución de pipeline y/o

      2 pasos y/o

      3 pipeline

      stepConfigurationDetails opcional*

      Configuración por defecto para la ejecución del paso. Consulte configurationDetails para obtener más información sobre los parámetros soportados.

      La configuración de ejecución de pipeline puede sustituirla.

      *Debe definirse en al menos un nivel (la prioridad se basa en la prioridad, siendo 1 la más alta):

      1 ejecución de pipeline y/o

      2 pasos y/o

      3 pipeline

      dependsOn Opcional Lista de pasos que se deben completar antes de que comience este paso. De esta forma se crea el gráfico de dependencias de flujo de trabajo de pipeline.
      infrastructureConfigurationDetails
      shapeName Necesario Nombre de la unidad de computación que se va a utilizar. Por ejemplo, VM.Standard2.4.
      blockStorageSizeInGBs Necesario Número de GB que se utilizarán como almacenamiento asociado para la VM.
      logConfigurationDetails
      enableLogging Necesario Definición para utilizar el registro.
      logGroupId Necesario OCID de grupo de logs que se utilizará para los logs. El grupo de logs debe crearse y estar disponible cuando se ejecute el pipeline
      logId opcional* OCID de log que se utilizará para los logs cuando no se utilice el parámetro enableAutoLogCreation.
      enableAutoLogCreation Opcional Si se define en True, se crea un log para cada ejecución de pipeline.
      configurationDetails
      type Necesario Solo está soportado DEFAULT.
      maximumRuntimeInMinutes Opcional Límite de tiempo en minutos para que se ejecute el pipeline.
      environmentVariables Opcional

      Variables de entorno que se deben proporcionar para las ejecuciones de pasos de pipeline.

      Por ejemplo:

      "environmentVariables": {
      
       "CONDA_ENV_TYPE": "service"
      
      }

      Revise la lista de variables de entorno admitidas por servicio.

      pipeline_payload = {
          "projectId": "<project_id>",
          "compartmentId": "<compartment_id>",
          "displayName": "<pipeline_name>",
          "pipelineInfrastructureConfigurationDetails": {
              "shapeName": "VM.Standard2.1",
              "blockStorageSizeInGBs": "50"
          },
          "pipelineLogConfigurationDetails": {
              "enableLogging": True,
              "logGroupId": "<log_group_id>",
              "logId": "<log_id>"
          },
          "pipelineDefaultConfigurationDetails": {
              "type": "DEFAULT",
              "maximumRuntimeInMinutes": 30,
              "environmentVariables": {
                  "CONDA_ENV_TYPE": "service",
                  "CONDA_ENV_SLUG": "classic_cpu"
              }
          },
          "stepDetails": [
              {
                  "stepName": "preprocess",
                  "description": "Preprocess step",
                  "stepType": "CUSTOM_SCRIPT",
                  "stepInfrastructureConfigurationDetails": {
                      "shapeName": "VM.Standard2.4",
                      "blockStorageSizeInGBs": "100"
                  },
                  "stepConfigurationDetails": {
                      "type": "DEFAULT",
                      "maximumRuntimeInMinutes": 90
                      "environmentVariables": {
                          "STEP_RUN_ENTRYPOINT": "preprocess.py",
                          "CONDA_ENV_TYPE": "service",
                          "CONDA_ENV_SLUG": "onnx110_p37_cpu_v1"
                  }
              },
              {
                  "stepName": "postprocess",
                  "description": "Postprocess step",
                  "stepType": "CUSTOM_SCRIPT",
                  "stepInfrastructureConfigurationDetails": {
                      "shapeName": "VM.Standard2.1",
                      "blockStorageSizeInGBs": "80"
                  },
                  "stepConfigurationDetails": {
                      "type": "DEFAULT",
                      "maximumRuntimeInMinutes": 60
                  },
                  "dependsOn": ["preprocess"]
              },
          ],
          "freeformTags": {
              "freeTags": "cost center"
          }
      }
      pipeline_res = dsc.create_pipeline(pipeline_payload)
      pipeline_id = pipeline_res.data.id

      Hasta que se carguen todos los artefactos de pasos de pipeline, el pipeline tendrá el estado CREATING.

    2. Cargue un artefacto de paso:

      Después de cargar un artefacto, no se puede cambiar.

      fstream = open(<file_name>, "rb")
       
      dsc.create_step_artifact(pipeline_id, step_name, fstream, content_disposition=f"attachment; filename={<file_name>}")
    3. Actualizar un pipeline:

      Solo puede actualizar un pipeline cuando tiene el estado ACTIVE.

      update_pipeline_details = {
      "displayName": "pipeline-updated"
      }
      self.dsc.update_pipeline(<pipeline_id>, <update_pipeline_details>)
    4. Iniciar ejecución de pipeline:
      pipeline_run_payload = {
      "projectId": project_id,
      "displayName": "pipeline-run",
      "pipelineId": <pipeline_id>,
      "compartmentId": <compartment_id>,
      }
      dsc.create_pipeline_run(pipeline_run_payload)
  • El SDK de ADS también es una biblioteca de Python disponible públicamente que puede instalar con este comando:

    pip install oracle-ads

    Puede utilizar el SDK de ADS para crear y ejecutar pipelines.

Red personalizada

Utilice una red personalizada que ya haya creado en el pipeline para obtener flexibilidad adicional en la red.

Creación de pipelines con redes personalizadas

Puede seleccionar utilizar redes personalizadas al crear un pipeline.

Nota

El cambio de redes personalizadas a redes gestionadas no está soportado después de crear el pipeline.
Consejo

Si ve el banner: The specified subnet is not accessible. Select a different subnet., cree una política de acceso de red como se describe en la sección Políticas de pipeline.

Uso de la consola

Seleccione esta opción para utilizar redes personalizadas en el panel Crear pipeline.

Si selecciona la red predeterminada, el sistema utiliza la red gestionada por servicios existente. Si selecciona la opción de red personalizada, se le pedirá que seleccione una VCN y una subred.

Seleccione la VCN y la subred que desea utilizar para el recurso. Para obtener acceso de salida a la red pública de Internet, utilice una subred privada con una ruta a un gateway de NAT. Si no ve la VCN o la subred que desea utilizar, seleccione Cambiar compartimento y, a continuación, seleccione el compartimento que contiene la VCN o la subred.

Uso de API

Proporcione subnet-id en infrastructure-configuration-details para utilizar una subred personalizada en el nivel de pipeline. Por ejemplo:
"infrastructure-configuration-details": {
      "block-storage-size-in-gbs": 50,
      "shape-config-details": {
        "memory-in-gbs": 16.0,
        "ocpus": 1.0
      },
      "shape-name": "VM.Standard.E4.Flex",
      "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaa5lzzq3fyypo6x5t5egplbfyxf2are6k6boop3vky5t4h7g35xkoa"
}
O en los detalles de configuración de contenedor de pasos para utilizar una subred personalizada para un paso concreto. Por ejemplo:
"step-infrastructure-configuration-details": {
          "block-storage-size-in-gbs": 50,
          "shape-config-details": {
            "memory-in-gbs": 16.0,
            "ocpus": 1.0
          },
          "shape-name": "VM.Standard.E4.Flex",
          "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaa5lzzq3fyypo6x5t5egplbfyxf2are6k6boop3vky5t4h7g35xkoa"
},