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

O Cloud Data Fusion oferece a capacidade de projetar pipelines visualmente para integrações de ETL e ELT. Para um melhor gerenciamento de pipelines entre desenvolvimento e produção, o Cloud Data Fusion permite o gerenciamento do controle de origem dos pipelines usando GitHub e outros sistemas de controle de versões.

O gerenciamento do controle de origem no Cloud Data Fusion permite que você faça o seguinte:

  • Integre cada namespace do Cloud Data Fusion a um sistema de controle de versões.
  • Gerencie seus pipelines em um repositório Git central.
  • Revise e audite as mudanças de pipeline.
  • Reverta as mudanças de pipeline.
  • Colabore de maneira eficaz 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 oferece suporte apenas a pipelines em lote.
  • O gerenciamento do controle de origem oferece suporte apenas a JSONs de design de pipeline para operações de envio e recebimento. 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:

  • Configurar repositórios de controle de origem
  • Sincronizar pipelines com repositórios Git usando operações de envio e recebimento

Para receber as permissões necessárias para usar o recurso de gerenciamento do controle de origem, peça ao administrador para conceder a você 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 por meio de 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 ao Cloud Data Fusion

O Cloud Data Fusion permite configurar e conectar seu repositório Git na guia "Gerenciamento do controle de origem" de cada namespace. Para vincular um namespace ao seu repositório Git, siga estas etapas:

Console

  1. No Cloud Data Fusion Studio, clique em Menu.
  2. Clique em Administrador do namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento do controle de origem.
  4. Clique em Vincular repositório.
  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. Para o GitHub, o URL do repositório é https://github.com/HOST/REPO.
    • Ramificação padrão (opcional): insira a ramificação inicial do Git. Essa ramificação 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. Ele é selecionado automaticamente.
    • Nome do token: insira um nome que possa ser associado ao token.
    • Token: insira o token fornecido pelo repositório do GitHub.
    • Opcional: Nome de usuário: insira um nome de usuário ou um proprietário para o token.
  6. Clique em Validar. Aguarde a verificação da conexão.

  7. Quando a configuração estiver concluída, clique em Salvar e fechar para confirmar a configuração.

Conecte um repositório Git ao Cloud Data Fusion.

API REST

  1. Crie uma chave secreta em 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 https URL—por exemplo, https://github.com/user/repo.git.
    • DEFAULT_BRANCH: ramificação usada para operações de envio e recebimento. Se omitido, a ramificação padrão configurada no repositório será usada, por exemplo, a ramificação principal.
    • 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. Somente PAT é compatível. Consulte Token de acesso pessoal refinado no GitHub (link em inglês).
    • 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 para o 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 receber 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 Cloud Data Fusion Studio, clique em Menu.
  2. Clique em Administrador do namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento do controle de origem.
  4. Encontre o repositório Git que você quer sincronizar e clique em Sincronizar pipelines.
  5. Clique na guia Pipelines do 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 ou recebida do repositório Git, o status Conectado ao Git mostrará 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á está sincronizado 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. Insira 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.

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

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

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

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

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

Enviar pipelines do estúdio de design de pipeline.

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 envio. Exemplo:

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Para consultar o status da operação de envio, 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 da operação recebido da operação de envio.

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

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

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

Receber pipelines do repositório Git no Cloud Data Fusion

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

Console

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

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

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

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

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

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

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

Extrair pipelines do Pipeline Studio.

API REST

  1. Receba um conjunto de pipelines do repositório Git no 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 recebidos.

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

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Para consultar o status da operação de recebimento, 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 da operação recebido da operação de recebimento.

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

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

    Para verificar se a operação de recebimento foi concluída, verifique a propriedade done na resposta. Se a operação falhou, 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 Cloud Data Fusion Studio, clique em Menu.
  2. Clique em Administrador do namespace.
  3. Na página Administrador do namespace, clique na guia Gerenciamento do 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