Nesta página, descrevemos como gerenciar pipelines usando o controle de origem no Cloud Data Fusion por repositórios do Git.
Sobre o gerenciamento do controle de origem
O Cloud Data Fusion oferece a capacidade de projetar visualmente pipelines para integrações ETL e ELT. Para um melhor gerenciamento de pipelines entre desenvolvimento e 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.
Com o gerenciamento de controle de origem no Cloud Data Fusion, você pode fazer o seguinte:
- Integre cada namespace do Cloud Data Fusion a um sistema de controle de versão.
- Gerenciar seus pipelines em um repositório Git central.
- Analisar e auditar as mudanças no pipeline.
- Reverta as mudanças no pipeline.
- Colaborar com a equipe de forma eficaz, garantindo o controle central.
Antes de começar
- O Source Control Management oferece suporte à integração com repositórios do GitHub, Bitbucket Server, Bitbucket Cloud e Gitlab.
- O OAuth do GitHub não é aceito.
- O gerenciamento do controle de origem só é compatível com 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. Não há suporte para configurações de execução.
- O limite de tamanho do repositório vinculado é de 5 GB.
Papéis e permissões necessárias
O gerenciamento de controle de origem no Cloud Data Fusion consiste em duas operações principais:
- Como configurar repositórios de controle de origem
- Como sincronizar 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ê um dos seguintes papéis predefinidos no projeto:
Configure o repositório de controle de origem:
- Operador do Cloud Data Fusion (
roles/datafusion.operator
) - Editor do Cloud Data Fusion (
roles/datafusion.editor
) - Administrador do Cloud Data Fusion (
roles/datafusion.admin
)
- Operador do Cloud Data Fusion (
Sincronize pipelines usando a operação de envio ou recebimento de um namespace:
- Operador do Cloud Data Fusion (
roles/datafusion.operator
) - Desenvolvedor do Cloud Data Fusion (
roles/datafusion.developer
) - Editor do Cloud Data Fusion (
roles/datafusion.editor
) - Administrador do Cloud Data Fusion (
roles/datafusion.admin
)
- Operador do Cloud Data Fusion (
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 do 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ão, consulte as seguintes páginas:
Conectar um repositório do Git ao Cloud Data Fusion
O Cloud Data Fusion permite 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
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administrador do namespace.
- Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
- Clique em Vincular repositório.
Digite os seguintes detalhes:
- Provedor: escolha um provedor de serviços do Git, como GitHub ou GitLab.
- URL do repositório: insira o URL em que seu repositório pode ser
acessado. No 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 que é
salvo no repositório do Git. Por exemplo, se o nome do pipeline
for
DataFusionQuickStart
e você especificar o prefixo comonamespaceName
, o pipeline será salvo comonamespaceName/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.
- Opcional: Nome de usuário: insira um nome de usuário ou um proprietário para o token.
Clique em Validar. Aguarde a verificação da conexão.
Quando a configuração for concluída, clique em Salvar e fechar para confirmar a configuração.
API REST
Crie uma chave secreta no Cloud Data Fusion que contenha o token de acesso pessoal.
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.
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 comotrue
se você quiser validar apenas a configuração e não adicionar a ela.PROVIDER_TYPE
: o nome do provedor do Git, ou seja,GITHUB
.REPO_URL
: URL do repositório a ser vinculado. Use um URLhttps
, por exemplo,https://github.com/user/repo.git
.DEFAULT_BRANCH
: ramificação usada para operações push e pull. Se omitido, a ramificação configurada padrão 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. SomentePAT
é aceito. Consulte Token de acesso pessoal detalhado no GitHub.PASSWORD_SECRET_KEY
: o nome da chave secreta que contém o token de acesso pessoal para o tipo de autenticaçãoPAT
.USER_NAME
: você pode omitir esse valor para o tipo de autenticaçãoPAT
.
Sincronizar pipelines do Cloud Data Fusion com um repositório remoto
Depois de configurar um repositório Git com um namespace, você pode 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 com um repositório Git, siga estas etapas:
Console
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administrador do namespace.
- Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
- Encontre o repositório Git com que você quer sincronizar e clique em Sincronizar pipelines.
- Clique na guia Pipelines de namespace.
Pesquise e selecione os pipelines que você quer enviar para o repositório do Git.
Se a versão mais recente do pipeline for enviada ou extraída do repositório do Git, o status Conectado ao Git vai mostrar
Connected
. Se o pipeline nunca foi enviado ao GitHub, o status Conectado ao Git vai aparecer 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 muda de
Connected
para vazio (-
).Clique em Enviar para o repositório.
Digite uma mensagem de confirmação e clique em OK.
A operação de push é iniciada, e uma mensagem é exibida indicando que os pipelines selecionados estão sendo enviados para o repositório remoto.
Quando a operação de push for concluída, 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 push falhar, verifique o pipeline no GitHub para saber 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, abra a mensagem.
Também é possível enviar pipelines individuais para um repositório Git no estúdio de design de pipeline:
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Lista.
- Clique no pipeline que você quer enviar ao repositório Git.
- Na página do pipeline, clique em Ações > Enviar para o repositório.
- Digite uma mensagem de confirmação e clique em OK.
API REST
Envie um conjunto de pipelines do Cloud Data Fusion para o repositório do 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 do commit do Git.
A resposta contém o ID da operação push. Exemplo:
RESPONSE { "id": OPERATION_ID }
Para consultar 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 da operação recebido da operação push.
A resposta contém o status da operação 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 verificar se a operação de push foi concluída, verifique a propriedade
done
na resposta. Se a operação falhar, verifique a propriedadeerror
para mais detalhes.
Extrair pipelines do repositório do Git para o Cloud Data Fusion
Para sincronizar vários pipelines de um repositório Git com seu namespace, siga estas etapas:
Console
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administrador do namespace.
- Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
- Encontre o repositório Git com que você quer sincronizar e clique em Sincronizar pipelines.
- Clique na guia Pipelines do repositório. Todos os pipelines armazenados no repositório do Git são exibidos.
- Pesquise e selecione os pipelines que você quer extrair do repositório do Git para o namespace do Cloud Data Fusion.
Clique em Extrair do repositório.
A operação de extração é 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.
Quando a operação de pull for concluída, 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 extração falhar, uma mensagem de erro será exibida. Para conferir os detalhes do erro, abra a mensagem de erro.
Também é possível extrair pipelines individuais de um repositório Git para um namespace no estúdio de design de pipeline:
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Lista.
- Clique no pipeline que você quer extrair do repositório Git.
- Na página do pipeline, clique em Ações > Extrair do repositório.
API REST
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 extração. Exemplo:
RESPONSE { "id": OPERATION_ID }
Para consultar o status da operação de extração, 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 extração.
A resposta contém o status da operação de extração. 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 extração foi concluída, verifique a propriedade
done
na resposta. Se a operação falhar, verifique a propriedadeerror
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
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administrador do namespace.
- Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
- Na 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 espaço de nome.
A seguir
- Leia mais sobre como usar um repositório do GitHub para gerenciar pipelines.