Gerenciar pipelines usando o gerenciamento de controle de origem

Nesta página, descrevemos como gerenciar pipelines usando o controle de origem no Cloud Data Fusion por meio de repositórios Git.

Sobre o gerenciamento do controle de origem

Com o Cloud Data Fusion, é possível criar pipelines para integrações de ETL e ELT. Para um melhor gerenciamento de pipelines entre o desenvolvimento e a produção, o Cloud Data Fusion permite o gerenciamento de controle de origem dos pipelines usando o GitHub e outros sistemas de controle de versões.

O gerenciamento do controle de origem no Cloud Data Fusion permite fazer o seguinte:

  • Integrar cada namespace do Cloud Data Fusion a um sistema de controle de versões.
  • Gerencie os pipelines em um repositório Git central.
  • Revisar e auditar alterações no pipeline.
  • Reverter as alterações no pipeline.
  • Colaborar de maneira efetiva com a equipe garantindo o controle central.

Antes de começar

  • O gerenciamento do controle de origem oferece suporte à integração com repositórios do GitHub, Bitbucket Server, Bitbucket Cloud e Gitlab.
  • O OAuth do GitHub não é compatível.
  • O gerenciamento do controle de origem só oferece suporte a pipelines em lote.
  • O gerenciamento de controle de origem só oferece suporte a JSONs de design de pipeline para operações de push e pull. As configurações de execução não são compatíveis.
  • O limite de tamanho do repositório vinculado é de 5 GB.

Papéis e permissões necessárias

O gerenciamento do controle de origem no Cloud Data Fusion consiste em duas operações principais:

  • Como configurar repositórios de controle de origem
  • Sincronização de pipelines com repositórios Git usando operações de push e pull

Para receber as permissões necessárias para usar o recurso de gerenciamento de controle de origem, peça ao administrador para conceder a você qualquer um dos seguintes papéis predefinidos no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível receber as permissões necessárias com outros papéis predefinidos.

Configurar um repositório Git

Para criar um repositório Git no GitHub, siga as instruções descritas em Criar um repositório.

Para mais informações sobre tokens de acesso pessoal no GitHub e outros sistemas de controle de versões, consulte as seguintes páginas:

Conectar um repositório Git com o Cloud Data Fusion

Com o Cloud Data Fusion, é possível configurar e conectar seu repositório Git na guia "Gerenciamento de controle de origem" de cada namespace. Para vincular um namespace ao seu repositório Git, siga estas etapas:

Console

  1. No Studio do Cloud Data Fusion, clique em Menu.
  2. Clique em Administrador de namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
  4. Clique em Repositório do link.
  5. Digite os seguintes detalhes:

    • Provedor: escolha um provedor de serviços Git, como GitHub ou GitLab.
    • URL do repositório: insira o URL em que o repositório pode ser acessado. No GitHub, o URL do repositório é https://github.com/HOST/REPO.
    • Default branch (opcional): insira a ramificação inicial do Git. Ela pode ser diferente da ramificação padrão configurada no GitHub. Essa ramificação é usada para sincronizar pipelines, independentemente da ramificação padrão no GitHub.
    • Prefixo do caminho (opcional): insira um prefixo para o nome do pipeline salvo no repositório Git. Por exemplo, se o nome do pipeline for DataFusionQuickStart e você especificar o prefixo como namespaceName, o pipeline será salvo como namespaceName/DataFusionQuickStart no repositório Git.
    • Tipo de autenticação: o Cloud Data Fusion permite usar o token de acesso personalizado como o tipo de autenticação. Essa opção é selecionada automaticamente.
    • Nome do token: insira um nome que possa ser associado ao token.
    • Token: insira o token fornecido pelo repositório do GitHub.
    • Nome de usuário (opcional): digite um nome de usuário ou um proprietário para o token.
  6. Clique em Validate (Validar). Aguarde a conexão ser verificada.

  7. Quando a configuração estiver concluída, clique em Salvar e fechar para confirmá-la.

Conecte um repositório Git com o Cloud Data Fusion.

API REST

  1. Crie uma chave secreta no Cloud Data Fusion contendo o token de acesso pessoal.

  2. Execute este comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/securekeys/PASSWORD_SECRET_KEY -X PUT -d '{ "description": "Example Secure Key","data": "PERSONAL_ACCESS_TOKEN"}'
    

    Substitua:

    • NAMESPACE_ID: o ID do namespace.
    • PASSWORD_SECRET_KEY: o nome da chave secreta que contém o token de acesso pessoal.
    • PERSONAL_ACCESS_TOKEN: token de acesso pessoal do GitHub.
  3. Execute este comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X PUT -d '{"test": "TEST_ONLY", "config": {"provider": "PROVIDER_TYPE", "link": "REPO_URL", "defaultBranch": "DEFAULT_BRANCH", "pathPrefix": "PATH_TO_DIRECTORY", "auth": {"type": "AUTH_TYPE", "patConfig": {"passwordName": "PASSWORD_SECRET_KEY", "username": "USER_NAME"}}}}'
    

    Substitua:

    • NAMESPACE_ID: o ID do namespace.
    • TEST_ONLY: defina como true se você quiser apenas validar a configuração e não adicioná-la.
    • PROVIDER_TYPE: o nome do provedor Git, ou seja, GITHUB.
    • REPO_URL: URL do repositório a ser vinculado. Use um URl https, por exemplo, https://github.com/user/repo.git.
    • DEFAULT_BRANCH: ramificação usada para operações de push e pull. Se omitido, a ramificação padrão configurada no repositório vai ser usada, por exemplo, a ramificação main.
    • PATH_TO_DIRECTORY: caminho para o diretório no repositório em que os arquivos de configuração são armazenados.
    • AUTH_TYPE: o tipo de autenticação. Só há suporte para PAT. Consulte Token de acesso pessoal refinado no GitHub.
    • PASSWORD_SECRET_KEY: o nome da chave secreta que contém o token de acesso pessoal para o tipo de autenticação PAT.
    • USER_NAME: é possível omitir esse valor do tipo de autenticação PAT.

Sincronizar pipelines do Cloud Data Fusion com um repositório remoto

Depois de configurar um repositório Git com um namespace, é possível enviar e extrair pipelines e sincronizá-los com o repositório Git.

Enviar pipelines do Cloud Data Fusion para o repositório Git

Para sincronizar vários pipelines implantados de um namespace para um repositório Git, siga estas etapas:

Console

  1. No Studio do Cloud Data Fusion, clique em Menu.
  2. Clique em Administrador de namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
  4. Encontre o repositório Git que você quer sincronizar e clique em Sync pipelines.
  5. Clique na guia Pipelines de namespace.
  6. Pesquise e selecione os pipelines que você quer enviar para o repositório Git.

    Se a versão mais recente do pipeline for enviada por push ou extraída do repositório Git, o status Conectado ao Git será Connected. Se o pipeline nunca tiver sido enviado ao GitHub, o status Conectado ao Git será mostrado em branco (-).

    Se você implantar uma versão mais recente de um pipeline que já esteja sincronizada com o repositório Git, o status Conectado ao Git mudará de Connected para em branco (-).

  7. Clique em Enviar para o repositório.

  8. Digite uma Mensagem de confirmação e clique em OK.

    A operação de envio é iniciada e uma mensagem é exibida indicando que os pipelines selecionados estão sendo enviados para o repositório remoto.

Envie pipelines do Cloud Data Fusion para o repositório Git.

Quando a operação de push for concluída com êxito, uma mensagem de sucesso será exibida indicando o número de pipelines que foram enviados ao repositório remoto.

Se a operação de push falhar, verifique o pipeline no GitHub para ver se é a versão mais recente. Para cada operação de push com falha, uma mensagem de erro é exibida. Para conferir os detalhes do erro, expanda a mensagem.

Também é possível enviar pipelines individuais para um repositório Git usando o estúdio de design de pipeline:

  1. No Studio do Cloud Data Fusion, clique em Menu.
  2. Clique em Lista.
  3. Clique no pipeline que você quer enviar por push para o repositório Git.
  4. Na página do pipeline, clique em Ações > Enviar para o repositório.
  5. Digite uma Mensagem de confirmação e clique em OK.

Enviar pipelines do estúdio de design de pipelines.

API REST

  1. Envie um conjunto de pipelines do Cloud Data Fusion para o repositório Git:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/push -X POST
    -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}, "commitMessage": "COMMIT_MESSAGE"'
    

    Substitua:

    • NAMESPACE_ID: o ID do namespace.
    • PIPELINE_NAME_1, PIPELINE_NAME_2: nomes dos pipelines a serem enviados.
    • COMMIT_MESSAGE: mensagem de confirmação para a confirmação do Git.

    A resposta contém o ID da operação de push. Exemplo:

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Para pesquisar o status da operação de push, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
    

    Substitua:

    • NAMESPACE_ID: o ID do namespace.
    • OPERATION_ID: o ID de operação recebido da operação de push.

    A resposta contém o status da operação de push. Exemplo:

    RESPONSE
    {
    "id": OPERATION_ID
    "done": True/False
    "status": STARTING/RUNNING/SUCCEEDED/FAILED
    "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]}
    }
    

    Para confirmar se a operação de push foi concluída, verifique a propriedade done na resposta. Se a operação falhar, verifique a propriedade error para mais detalhes.

Extrair pipelines do repositório Git para o Cloud Data Fusion

Para sincronizar vários pipelines de um repositório Git com seu namespace, siga estas etapas:

Console

  1. No Studio do Cloud Data Fusion, clique em Menu.
  2. Clique em Administrador de namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
  4. Encontre o repositório Git que você quer sincronizar e clique em Sync pipelines.
  5. Clique na guia Pipelines de repositório. Todos os pipelines armazenados no repositório Git são exibidos.
  6. Pesquise e selecione os pipelines que você quer extrair do repositório Git para o namespace do Cloud Data Fusion.
  7. Clique em Extrair do repositório.

    A operação de pull é iniciada e uma mensagem é exibida indicando que os pipelines selecionados estão sendo extraídos do repositório remoto. O Cloud Data Fusion procura arquivos JSON no caminho configurado e os extrai e implanta como pipelines no Cloud Data Fusion.

Extraia pipelines do repositório Git para o Cloud Data Fusion.

Quando a operação de pull for concluída com êxito, uma mensagem de sucesso será exibida indicando o número de pipelines que foram extraídos do repositório remoto.

Se a operação de pull falhar, uma mensagem de erro será exibida. Para conferir os detalhes do erro, expanda a mensagem.

Também é possível extrair pipelines individuais de um repositório Git para um namespace do estúdio de design de pipeline:

  1. No Studio do Cloud Data Fusion, clique em Menu.
  2. Clique em Lista.
  3. Clique no pipeline que você quer extrair do repositório Git.
  4. Na página do pipeline, clique em Ações > Extrair do repositório.

extrair pipelines do estúdio de design de pipelines.

API REST

  1. Extraia um conjunto de pipelines do repositório Git para o Cloud Data Fusion:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/pull -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}'
    

    Substitua:

    • NAMESPACE_ID: o ID do namespace.
    • PIPELINE_NAME_1, PIPELINE_NAME_2: nomes dos pipelines a serem extraídos.

    A resposta contém o ID da operação de pull. Exemplo:

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Para pesquisar o status da operação de pull, execute o seguinte comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
    

    Substitua:

    • NAMESPACE_ID: o ID do namespace.
    • OPERATION_ID: o ID de operação recebido da operação de pull.

    A resposta contém o status da operação de pull. Exemplo:

    RESPONSE
    {
    "id": OPERATION_ID
    "done": True/False
    "status": STARTING/RUNNING/SUCCEEDED/FAILED
    "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]}
    }
    

    Para confirmar se a operação de pull foi concluída, verifique a propriedade done na resposta. Se a operação falhar, verifique a propriedade error para mais detalhes.

Excluir a configuração do repositório Git

Para excluir a configuração do repositório Git de um namespace, siga estas etapas:

Console

  1. No Studio do Cloud Data Fusion, clique em Menu.
  2. Clique em Administrador de namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
  4. Para a configuração do repositório Git que você quer excluir, clique em > Excluir.

API REST

Exclua a configuração do repositório Git:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE

Substitua NAMESPACE_ID pelo ID do namespace.

A seguir