Criando um Pipeline

Criar um pipeline do serviço Data Science para executar uma tarefa.

Certifique-se de ter criado as políticas, autenticação e autorização necessárias para pipelines.

Importante

Para uma operação adequada das etapas de script, certifique-se de ter adicionado a seguinte regra a uma política de grupo dinâmico:

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

Antes de começar:

Você pode criar pipelines usando o ADS SDK, a Console do OCI ou o OCI SDK.

O uso do ADS para criar pipelines pode facilitar o desenvolvimento do pipeline, das etapas e das dependências. O ADS suporta a leitura e gravação do pipeline de/para um arquivo YAML. Você pode usar o ADS para exibir uma representação visual do pipeline. Recomendamos que você use o ADS para criar e gerenciar pipeline usando código.

    1. Na página pipelines, selecione Criar pipeline. Se precisar de ajuda para encontrar a lista de pipelines, consulte Listando Pipelines.
    2. (Opcional) Selecione outro compartimento para o pipeline.
    3. (Opcional) Digite um nome e uma descrição para o pipeline (limite de 255 caracteres). Se você não fornecer um nome, um nome será gerado automaticamente.

      Por exemplo, pipeline2022808222435.

    4. Selecione Adicionar etapas do pipeline para começar a definir o workflow para o pipeline.
    5. No painel Adicionar etapa de pipeline, selecione uma das seguintes opções e finalize a criação do pipeline:
    De um Job

    De um Cargo

    A etapa do pipeline usa um job existente. Selecione um dos jobs na tenancy.

    1. Informe um nome exclusivo para a etapa. Não é possível repetir um nome de etapa em um pipeline.
    2. (Opcional) Informe uma descrição de etapa, que pode ajudá-lo a localizar dependências de etapa.
    3. (Opcional) Se essa etapa depender de outra etapa, selecione uma ou mais etapas a serem executadas antes dessa etapa.
    4. Selecione o job da etapa a ser executada.
    5. (Opcional) Informe ou selecione qualquer um dos seguintes valores para controlar esta etapa do pipeline:
      Valor e chave de variável de ambiente personalizados

      As variáveis de ambiente desta etapa do pipeline.

      Valor

      O valor da chave de variável de ambiente personalizada.

      Você pode selecionar Chave de ambiente personalizada adicional para especificar mais variáveis.

      Argumentos de linha de comando

      Os argumentos de linha de comando que deseja usar para executar a etapa do pipeline.

      Runtime máximo (em minutos)

      O número máximo de minutos que a etapa do pipeline tem permissão para executar. O serviço cancelará a execução do pipeline se o runtime exceder o valor especificado. O runtime máximo é de 30 dias (43.200 minutos). Recomendamos que você configure um runtime máximo em todas as execuções de pipeline para evitar execuções de pipeline descontroladas.

    6. Selecione Salvar para adicionar a etapa e retornar à página Criar pipeline.
    7. (Opcional) Selecione +Add etapas do pipeline para adicionar mais etapas para concluir seu workflow e repetir as etapas anteriores.
    8. (Opcional) Crie uma configuração de pipeline padrão que seja usada quando o pipeline for executado informando variável de ambiente, argumentos de linha de comando e opções máximas de runtime. Consulte a etapa 5 para obter uma explicação desses campos.
    9. (Opcional) Selecione uma forma de Computação selecionando Selecionar e seguindo estas etapas:
      1. Selecione um tipo de instância.
      2. Selecione uma série de formas.
      3. Selecione uma das formas de Computação suportadas na série.
      4. Selecione a forma mais adequada à maneira como deseja usar o recurso. Para a forma AMD, você pode usar o padrão ou definir o número de OCPUs e a memória.

        Para cada OCPU, selecione até 64 GB de memória e um total máximo de 512 GB. A quantidade mínima de memória permitida é 1 GB ou um valor correspondente ao número de OCPUs, o que for maior.

      5. Selecione Selecionar forma.
    10. Para Armazenamento em Blocos, digite a quantidade de armazenamento que você deseja usar entre 50 GB e 10. 240 GB (10 TB). Você pode alterar o valor em incrementos de 1 GB. O valor padrão é 100 GB.
    11. (Opcional) Para usar o registro em log, selecione Selecionar e verifique se a opção Ativar registro em log está selecionada.
      1. Selecione um grupo de logs na lista. Você pode mudar para outro compartimento para especificar um grupo de logs em outro compartimento do job.
      2. Selecione uma das seguintes opções para armazenar todas as mensagens stdout e stderr:
        Ativar criação automática de log

        O Data Science cria automaticamente um log quando o job é iniciado.

        Selecionar um log

        Selecione um log a ser usado.

      3. Selecione Selecionar para retornar à página de criação da execução de job.
    12. (Opcional) Selecione Mostrar opções avançadas para adicionar tags ao pipeline.
    13. (Opcional) Na seção Tags, adicione uma ou mais tags ao resourceType. Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recursos. Se você não tiver certeza se deseja aplicar tags, ignore essa opção ou pergunte a um administrador. Você pode aplicar tags posteriormente.
    14. Selecione Criar.

      Depois que o pipeline estiver em um estado ativo, você poderá usar execuções de pipeline para executar repetidamente o pipeline.

    De um Script

    De um script

    A etapa usa um script para execução. Você precisa fazer upload do artefato contendo todo o código da etapa a ser executada.

    1. Informe um nome exclusivo para a etapa. Não é possível repetir um nome de etapa em um pipeline.
    2. (Opcional) Informe uma descrição de etapa, que pode ajudá-lo a localizar dependências de etapa.
    3. (Opcional) Se essa etapa depender de outra etapa, selecione uma ou mais etapas a serem executadas antes dessa etapa.
    4. Arraste um arquivo de etapa do job para a caixa ou selecione selecionar um arquivo para navegar até ele para seleção.
    5. Em Ponto de entrada, selecione um arquivo para ser o ponto de execução de entrada da etapa. Isso é útil quando você tem muitos arquivos.
    6. (Opcional) Informe ou selecione qualquer um dos seguintes valores para controlar esta etapa do pipeline:
      Valor e chave de variável de ambiente personalizados

      As variáveis de ambiente desta etapa do pipeline.

      Valor

      O valor da chave de variável de ambiente personalizada.

      Você pode selecionar Chave de ambiente personalizada adicional para especificar mais variáveis.

      Argumentos de linha de comando

      Os argumentos de linha de comando que deseja usar para executar a etapa do pipeline.

      Runtime máximo (em minutos)

      O número máximo de minutos que a etapa do pipeline tem permissão para executar. O serviço cancelará a execução do pipeline se o runtime exceder o valor especificado. O runtime máximo é de 30 dias (43.200 minutos). Recomendamos que você configure um runtime máximo em todas as execuções de pipeline para evitar execuções de pipeline descontroladas.

    7. (Opcional) Crie uma configuração de pipeline padrão que seja usada quando o pipeline for executado informando variável de ambiente, argumentos de linha de comando e opções máximas de runtime. Consulte a etapa 6 para obter uma explicação desses campos.
    8. Para Armazenamento em Blocos, digite a quantidade de armazenamento que você deseja usar entre 50 GB e 10. 240 GB (10 TB). Você pode alterar o valor em incrementos de 1 GB. O valor padrão é 100 GB.
    9. Selecione Salvar para adicionar a etapa e retornar à página Criar pipeline.
    10. (Opcional) Use +Add etapas do pipeline para adicionar mais etapas para concluir seu workflow repetindo as etapas anteriores.
    11. (Opcional) Crie uma configuração de pipeline padrão que seja usada quando o pipeline for executado informando variável de ambiente, argumentos de linha de comando e opções máximas de runtime. Consulte a etapa 6 para obter uma explicação desses campos.
    12. Para Armazenamento em Blocos, digite a quantidade de armazenamento que você deseja usar entre 50 GB e 10. 240 GB (10 TB). Você pode alterar o valor em incrementos de 1 GB. O valor padrão é 100 GB.
    13. Selecione uma das seguintes opções para configurar o tipo de rede:
      • Rede padrão - A carga de trabalho é anexada usando uma VNIC secundária a uma VCN e sub-rede gerenciadas pelo serviço pré-configuradas. Essa sub-rede fornecida permite a saída para a internet pública por meio de um gateway NAT e o acesso a outros serviços do Oracle Cloud por meio de um gateway de serviço.

        Se você precisar de acesso apenas à internet pública e aos serviços da OCI, recomendamos o uso dessa opção. Não é necessário criar recursos de rede ou gravar políticas para permissões de rede.

      • rede personalizada - Selecione a VCN e a sub-rede que deseja usar para o recurso (sessão de notebook ou job).

        Para acesso de saída à Internet pública, use uma sub-rede privada com uma rota para um gateway NAT.

        Se você não vir a VCN ou a sub-rede que deseja usar, selecione Alterar Compartimento e, em seguida, selecione o compartimento que contém a VCN ou a sub-rede.

        Importante

        A rede personalizada deve ser usada para usar uma montagem de armazenamento de arquivos.

    14. (Opcional) Para usar o registro em log, selecione Selecionar e verifique se a opção Ativar registro em log está selecionada.
      1. Selecione um grupo de logs na lista. Você pode mudar para outro compartimento para especificar um grupo de logs em outro compartimento do job.
      2. Selecione uma das seguintes opções para armazenar todas as mensagens stdout e stderr:
        Ativar criação automática de log

        O Data Science cria automaticamente um log quando o job é iniciado.

        Selecionar um log

        Selecione um log a ser usado.

      3. Selecione Selecionar para retornar à página de criação da execução de job.
    15. (Opcional) Selecione Mostrar opções avançadas para adicionar tags ao pipeline.
    16. (Opcional) Na seção Tags, adicione uma ou mais tags ao resourceType. Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recursos. Se você não tiver certeza se deseja aplicar tags, ignore essa opção ou pergunte a um administrador. Você pode aplicar as tags posteriormente.
    17. Selecione Criar.

      Depois que o pipeline estiver em um estado ativo, você poderá usar execuções de pipeline para executar repetidamente o pipeline.

    Do Contêiner

    Contêiner - De

    Opcionalmente, ao definir etapas do pipeline, você pode optar por usar Traga Seu Próprio Contêiner.
    1. Selecione Do contêiner.
    2. Na seção Configuração do contêiner, selecione Configurar.
    3. No painel Configurar seu ambiente de contêiner, selecione um repositório na lista. Se o repositório estiver em outro compartimento, selecione Alterar compartimento.
    4. Selecione uma imagem na lista.
    5. (Opcional) Insira um ponto de entrada. Para adicionar outro, selecione o parâmetro +Add.
    6. (Opcional) Insira um CMD. Para adicionar outro, selecione o parâmetro +Add.
      Use CMD como argumentos para o ENTRYPOINT ou o único comando a ser executado na ausência de um ENTRYPOINT.
    7. (Opcional) Digite uma compilação de imagem.
    8. (Opcional) Se estiver usando a verificação de assinatura, digite o OCID da assinatura da imagem.
      Por exemplo, ocid1.containerimagesignature.oc1.iad.aaaaaaaaab....
    9. (Opcional) Faça upload do artefato de etapa arrastando-o para a caixa.
      Observação

      Esta etapa só será opcional se BYOC estiver configurado.
  • Essas variáveis de ambiente controlam a execução do pipeline.

    Você pode usar a CLI do OCI para criar um pipeline como neste exemplo do Python:

    1. Criar um pipeline:

      Os seguintes parâmetros estão disponíveis para uso no payload:

      Nome do Parâmetro Obrigatório Descrição
      Pipeline (nível superior)
      projectId Obrigatório O OCID do projeto no qual criar o pipeline.
      compartmentId Obrigatório O OCID do compartimento no qual criar o pipeline.
      displayName Opcional O nome do pipeline.
      infrastructureConfigurationDetails Opcional

      Configuração de infraestrutura (computação) padrão a ser usada para todas as etapas do pipeline. Consulte infrastructureConfigurationDetails para obter detalhes sobre os parâmetros suportados.

      Pode ser substituído pela configuração de execução do pipeline.

      logConfigurationDetails Opcional

      Log padrão a ser usado para todas as etapas do pipeline. Consulte logConfigurationDetails para obter detalhes sobre os parâmetros suportados.

      Pode ser substituído pela configuração de execução do pipeline.

      configurationDetails Opcional

      Configuração padrão para a execução do pipeline. Consulte configurationDetails para obter detalhes sobre os parâmetros suportados.

      Pode ser substituído pela configuração de execução do pipeline.

      freeformTags Opcional Tags a serem adicionadas ao recurso de pipeline.
      stepDetails
      stepName Obrigatório Nome da etapa. Deve ser exclusivo no pipeline.
      description Opcional Descrição em texto livre da etapa.
      stepType Obrigatório CUSTOM_SCRIPT ou ML_JOB
      jobId Obrigatório* Para etapas ML_JOB, este é o OCID do job a ser usado para a execução da etapa.
      stepInfrastructureConfigurationDetails Opcional*

      Configuração de infraestrutura padrão (Compute) a ser usada para esta etapa. Consulte infrastructureConfigurationDetails para obter detalhes sobre os parâmetros suportados.

      Pode ser substituído pela configuração de execução do pipeline.

      *Deve ser definido em pelo menos um nível (precedência com base na prioridade, sendo 1 o mais alto):

      1 execução de pipeline e/ou

      2 passos e/ou

      3 pipeline

      stepConfigurationDetails Opcional*

      Configuração padrão para a execução da etapa. Consulte configurationDetails para obter detalhes sobre os parâmetros suportados.

      Pode ser substituído pela configuração de execução do pipeline.

      *Deve ser definido em pelo menos um nível (precedência com base na prioridade, sendo 1 o mais alto):

      1 execução de pipeline e/ou

      2 passos e/ou

      3 pipeline

      dependsOn Opcional Lista de etapas que devem ser concluídas antes do início desta etapa. Isso cria o gráfico de dependências do workflow do pipeline.
      infrastructureConfigurationDetails
      shapeName Obrigatório Nome da forma de Computação a ser usada. Por exemplo, VM.Standard2.4.
      blockStorageSizeInGBs Obrigatório Número de GBs a serem usados como armazenamento anexado para a VM.
      logConfigurationDetails
      enableLogging Obrigatório Defina para usar o log.
      logGroupId Obrigatório OCID do grupo de logs a ser usado para os logs. O grupo de logs deve ser criado e estar disponível quando o pipeline for executado
      logId Opcional* OCID do Log a ser usado para os logs quando não estiver usando o parâmetro enableAutoLogCreation.
      enableAutoLogCreation Opcional Se definido como True, um log para cada execução de pipeline será criado.
      configurationDetails
      type Obrigatório Somente DEFAULT é suportado.
      maximumRuntimeInMinutes Opcional Limite de tempo em minutos para a execução do pipeline.
      environmentVariables Opcional

      Variáveis de ambiente a serem fornecidas para as execuções da etapa do pipeline.

      Por exemplo:

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

      Revise a lista de variáveis de ambiente suportadas pelo serviço.

      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

      Até que todos os artefatos de etapas do pipeline sejam submetidos a upload, o pipeline estará no estado CREATING.

    2. Faça upload de um artefato de etapa:

      Após o upload de um artefato, ele não poderá ser alterado.

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

      Você só pode atualizar um pipeline quando ele estiver em um estado ACTIVE.

      update_pipeline_details = {
      "displayName": "pipeline-updated"
      }
      self.dsc.update_pipeline(<pipeline_id>, <update_pipeline_details>)
    4. Iniciar execução do pipeline:
      pipeline_run_payload = {
      "projectId": project_id,
      "displayName": "pipeline-run",
      "pipelineId": <pipeline_id>,
      "compartmentId": <compartment_id>,
      }
      dsc.create_pipeline_run(pipeline_run_payload)
  • O ADS SDK também é uma biblioteca Python disponível publicamente que você pode instalar com este comando:

    pip install oracle-ads

    Você pode usar o ADS SDK para criar e executar pipelines.

Rede Personalizada

Use uma Rede personalizada que você já criou no pipeline para oferecer flexibilidade extra na rede.

Criando Pipelines com Redes Personalizadas

Você pode optar por usar a rede personalizada ao criar um pipeline.

Observação

Não há suporte para alternar da rede personalizada para a rede gerenciada após a criação do pipeline.
Dica

Se você vir o banner: The specified subnet is not accessible. Select a different subnet. crie uma política de acesso à rede conforme descrito na seção, Políticas de Pipeline.

Usando a Console

Selecione para usar a rede personalizada no painel Criar pipeline.

Se você selecionar a rede padrão, o sistema usará a rede existente gerenciada pelo serviço. Se você selecionar a opção de rede personalizada, será solicitado a escolher uma VCN e uma sub-rede.

Selecione a VCN e a sub-rede que deseja usar para o recurso. Para acesso de saída à Internet pública, use uma sub-rede privada com uma rota para um gateway NAT. Se você não vir a VCN ou a sub-rede que deseja usar, selecione Alterar Compartimento e, em seguida, selecione o compartimento que contém a VCN ou a sub-rede.

Usando APIs

Forneça subnet-id em infrastructure-configuration-details para usar uma sub-rede personalizada no nível do pipeline. Por exemplo:
"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"
}
Ou nos detalhes step-container-configuration-para usar uma sub-rede personalizada para uma etapa específica. Por exemplo:
"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"
},