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 de maneira visual 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 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:
- 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.
- Reverter as alterações no pipeline.
- Colaborar de forma eficaz com a equipe e garantir o controle central.
Antes de começar
- O gerenciamento do controle de origem oferece suporte à integração com GitHub, Bitbucket Server, Bitbucket Cloud e repositórios 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 do controle de origem, peça ao seu administrador para conceder a você qualquer um dos seguintes papéis predefinidos em seu 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 Git no GitHub, siga as instruções descritas em Crie um repositório.
Para mais informações sobre tokens de acesso pessoal no GitHub e outras versões de controle de acesso, consulte as seguintes páginas:
Conectar um repositório Git com o 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 com o Git, siga estas etapas:
Console
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administrador de namespace.
- Na página Administrador de namespaces, clique em Gerenciamento de controle de origem. .
- Clique em Vincular repositório.
Digite os seguintes detalhes:
- Provider (Provedor): escolha um provedor de serviços Git, como GitHub ou GitLab (em inglês).
- URL do repositório: insira o URL em que o repositório pode ser
acessado. Para GitHub, o URL do repositório é
https://github.com/HOST/REPO
: - Ramificação padrão (opcional): insira a ramificação inicial do Git. Isso pode ser diferente da ramificação padrão configurada no GitHub. Essa ramificação é usada para sincronizar pipelines, seja qual for a 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
é
DataFusionQuickStart
e se 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. Isso é 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 Validate (Validar). Aguarde a conexão ser verificada.
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 contendo 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
: acesso pessoal token 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 apenas validam a configuração, não a complementam.PROVIDER_TYPE
: o nome do provedor Git, que éGITHUB
.REPO_URL
: URL do repositório a ser vinculado. Usar 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 padrão configurada no repositório vai ser usada, por exemplo, a ramificação main.PATH_TO_DIRECTORY
: caminho para o diretório em 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 refinado no GitHub.PASSWORD_SECRET_KEY
: o nome do secret chave contendo 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 para um repositório Git, siga estas etapas:
Console
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administrador de namespace.
- Na página Administrador de namespaces, clique em 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 Git repositório de dados.
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 para o GitHub, o status Conectado ao Git aparece 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 muda de
Connected
para em branco (-
).Clique em Enviar para o repositório.
Digite uma mensagem de confirmação e clique em OK.
A operação de envio é iniciada e uma mensagem é exibida indicando que a pipelines selecionados são enviados para o repositório remoto.
Quando a operação de push for concluída com êxito, uma mensagem de sucesso será exibido indicando o número de pipelines que foram enviados repositório de dados.
Se a operação de push falhar, verifique o pipeline no GitHub para ver se é o versão mais recente. Para cada operação push com falha, uma mensagem de erro é exibida. Para conferir os detalhes do erro, abra a mensagem.
Também é possível enviar pipelines individuais do pipeline para um repositório Git estúdio de design:
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Lista.
- Clique no pipeline que você quer enviar por push para o repositório Git.
- Na página do pipeline, clique em Ações >. Envie 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 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 o Git fazer commit.
A resposta contém o ID da operação de push. Exemplo:
RESPONSE { "id": OPERATION_ID }
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 da operação recebido da operação 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 verificar se a operação de push foi concluída, verifique o
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 de namespace.
- Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
- Encontre o repositório Git que você quer sincronizar e clique em Pipelines de sincronização.
- Clique na guia Pipelines do repositório. Todos os pipelines armazenados no repositório 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 pull começa e uma mensagem é exibida indicando que o pipelines selecionados são extraídos do repositório remoto. o Cloud Data Fusion procura arquivos JSON no caminho configurado; e os extrai e os implanta como pipelines no Cloud Data Fusion.
Quando a operação de pull é concluída, uma mensagem de sucesso é exibidos indicando o número de pipelines que foram extraídos repositório remoto.
Se a operação de extração falhar, uma mensagem de erro será exibida. Para acessar detalhes do erro, expanda a mensagem de erro.
Também é possível extrair pipelines individuais de um repositório Git para um namespace do 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 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 da operação recebido da operação de extração.
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 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 de namespace.
- Na página Administrador do namespace, clique na guia Gerenciamento de controle de origem.
- Na configuração do repositório do 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.