Esta página descreve como gerir pipelines através do controlo de origem no Cloud Data Fusion através de repositórios Git.
Acerca da gestão do controlo de fontes
O Cloud Data Fusion oferece a capacidade de criar visualmente pipelines para integrações ETL e ELT. Para uma melhor gestão dos pipelines entre o desenvolvimento e a produção, o Cloud Data Fusion permite a gestão do controlo de origem dos pipelines através do GitHub e de outros sistemas de controlo de versões.
A gestão do controlo de origem no Cloud Data Fusion permite-lhe fazer o seguinte:
- Integre cada namespace do Cloud Data Fusion com um sistema de controlo de versões.
- Faça a gestão dos seus pipelines num repositório Git central.
- Reveja e audite as alterações à conduta.
- Reverter alterações à pipeline.
- Colaborar eficazmente com a equipa, garantindo o controlo central.
Antes de começar
- A gestão de controlo de origem suporta a integração com repositórios do GitHub, Bitbucket Server, Bitbucket Cloud e Gitlab.
- O OAuth do GitHub não é suportado.
- A gestão de controlo de origem só suporta pipelines em lote.
- A gestão de controlo de origem só suporta ficheiros JSON de design de pipelines para operações de envio e receção. As configurações de execução não são suportadas.
- O limite de tamanho do repositório associado é de 5 GB.
Funções e autorizações necessárias
A gestão do controlo de origem no Cloud Data Fusion consiste em duas operações principais:
- Configurar repositórios de controlo de origem
- Sincronizar pipelines com repositórios Git através de operações de envio e obtenção
Para receber as autorizações necessárias para usar a funcionalidade de gestão de controlo de origem, peça ao seu administrador para lhe conceder qualquer uma das seguintes funções predefinidas no seu projeto:
Configure o repositório de controlo 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 através de uma operação de envio ou obtenção de um espaço de nomes:
- Operador do Cloud Data Fusion (
roles/datafusion.operator
) - Cloud Data Fusion Developer (
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 a concessão de funções, consulte o artigo Gerir acesso.
Também pode conseguir as autorizações necessárias através de outras funções predefinidas.
Configure 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 controlo de versões, consulte as seguintes páginas:
Associe um repositório Git ao Cloud Data Fusion
O Cloud Data Fusion permite-lhe configurar e associar o seu repositório Git no separador Source Control Management para cada espaço de nomes. Para associar um espaço de nomes ao seu repositório Git, siga estes passos:
Consola
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administração do espaço de nomes.
- Na página Administração do espaço de nomes, clique no separador Gestão de controlo de origem.
- Clique em Associar repositório.
Introduza os seguintes detalhes:
- Fornecedor: escolha um fornecedor de serviços Git, como o GitHub ou o GitLab.
- URL do repositório: introduza o URL onde o seu repositório pode ser acedido. Para o GitHub, o URL do repositório é
https://github.com/HOST/REPO
. - Ramo predefinido (opcional): introduza o ramo inicial do Git. Este ramo pode ser diferente do ramo predefinido configurado no GitHub. Esta ramificação é usada para sincronizar pipelines, independentemente da ramificação predefinida no GitHub.
- Prefixo do caminho (opcional): introduza um prefixo para o nome do pipeline que é guardado no repositório Git. Por exemplo, se o nome do pipeline for
DataFusionQuickStart
e especificar o prefixo comonamespaceName
, o pipeline é guardado comonamespaceName/DataFusionQuickStart
no repositório Git. - Tipo de autenticação: o Cloud Data Fusion permite-lhe usar o token de acesso personalizado como o tipo de autenticação. Esta opção é selecionada automaticamente.
- Nome do token: introduza um nome que possa ser associado ao token.
- Token: introduza o token fornecido pelo repositório do GitHub.
- Opcional: Nome de utilizador: introduza um nome de utilizador ou um proprietário para o token.
Clique em Validar. Aguarde que a associação seja validada.
Quando a configuração estiver concluída, clique em Guardar 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 o seguinte 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 o seguinte:
NAMESPACE_ID
: o ID do espaço de nomes.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 o seguinte 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 o seguinte:
NAMESPACE_ID
: o ID do espaço de nomes.TEST_ONLY
: defina comotrue
se quiser apenas validar a configuração e não adicioná-la.PROVIDER_TYPE
: o nome do fornecedor de Git, ou seja,GITHUB
.REPO_URL
: URL do repositório a ser associado. Usar umhttps
URL, por exemplo,https://github.com/user/repo.git
.DEFAULT_BRANCH
: ramificação usada para operações de envio e obtenção. Se for omitido, é usado o ramo configurado predefinido no repositório, por exemplo, o ramo principal.PATH_TO_DIRECTORY
: caminho para o diretório no repositório onde os ficheiros de configuração estão armazenados.AUTH_TYPE
: o tipo de autenticação. ApenasPAT
é suportado. Consulte o artigo 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
: pode omitir este valor para o tipo de autenticaçãoPAT
.
Sincronize pipelines do Cloud Data Fusion com um repositório remoto
Depois de configurar um repositório Git com um espaço de nomes, pode enviar e extrair pipelines e sincronizá-las com o repositório Git.
Envie pipelines do Cloud Data Fusion para o repositório Git
Para sincronizar vários pipelines implementados de um espaço de nomes para um repositório Git, siga estes passos:
Consola
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administração do espaço de nomes.
- Na página Administração do espaço de nomes, clique no separador Gestão de controlo de origem.
- Encontre o repositório Git com o qual quer sincronizar e clique em Sincronizar pipelines.
- Clique no separador Pipelines de espaço de nomes.
Pesquise e selecione os pipelines que quer enviar para o repositório Git.
Se a versão mais recente do pipeline for enviada ou extraída do repositório Git, o estado Ligado ao Git mostra
Connected
. Se o pipeline nunca tiver sido enviado para o GitHub, o estado Ligado ao Git é apresentado em branco (-
).Se implementar uma versão mais recente de um pipeline que já esteja sincronizado com o repositório Git, o estado Ligado ao Git muda de
Connected
para em branco (-
).Clique em Enviar para o repositório.
Introduza uma mensagem de confirmação e clique em OK.
A operação push é iniciada e é apresentada uma mensagem a indicar que os pipelines selecionados estão a ser enviados para o repositório remoto.
Quando a operação de envio é concluída com êxito, é apresentada uma mensagem de êxito a indicar 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 ver se é a versão mais recente. Para cada operação de envio falhada, é apresentada uma mensagem de erro. Para ver os detalhes do erro, expanda a mensagem de erro.
Também pode enviar pipelines individuais para um repositório Git a partir do estúdio de design de pipelines:
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Lista.
- Clique no pipeline que quer enviar para o repositório Git.
- Na página do pipeline, clique em Ações > Enviar para o repositório.
- Introduza uma mensagem de commit 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 o seguinte:
NAMESPACE_ID
: o ID do espaço de nomes.PIPELINE_NAME_1
,PIPELINE_NAME_2
: nomes dos pipelines a enviar.COMMIT_MESSAGE
: mensagem de confirmação para a confirmação do Git.
A resposta contém o ID da operação de envio. Por exemplo:
RESPONSE { "id": OPERATION_ID }
Para verificar o estado 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 o seguinte:
NAMESPACE_ID
: o ID do espaço de nomes.OPERATION_ID
: o ID da operação recebido da operação de envio.
A resposta contém o estado da operação de envio. Por 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 por push está concluída, verifique a propriedade
done
na resposta. Se a operação falhou, verifique a propriedadeerror
para mais detalhes.
Extraia pipelines do repositório Git para o Cloud Data Fusion
Para sincronizar várias pipelines de um repositório Git com o seu espaço de nomes, siga estes passos:
Consola
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administração do espaço de nomes.
- Na página Administração do espaço de nomes, clique no separador Gestão de controlo de origem.
- Encontre o repositório Git com o qual quer sincronizar e clique em Sincronizar pipelines.
- Clique no separador Pipelines de repositório. São apresentados todos os pipelines armazenados no repositório Git.
- Pesquise e selecione os pipelines que quer extrair do repositório Git para o seu espaço de nomes do Cloud Data Fusion.
Clique em Extrair do repositório.
A operação de obtenção é iniciada e é apresentada uma mensagem a indicar que os pipelines selecionados estão a ser obtidos do repositório remoto. O Cloud Data Fusion procura ficheiros JSON no caminho configurado e extrai-os e implementa-os como pipelines no Cloud Data Fusion.
Quando a operação de obtenção é concluída com êxito, é apresentada uma mensagem de êxito a indicar o número de pipelines que foram obtidos do repositório remoto.
Se a operação de obtenção falhar, é apresentada uma mensagem de erro. Para ver os detalhes do erro, expanda a mensagem de erro.
Também pode extrair pipelines individuais de um repositório Git para um espaço de nomes a partir do estúdio de design de pipelines:
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Lista.
- Clique no pipeline do qual quer extrair dados 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 o seguinte:
NAMESPACE_ID
: o ID do espaço de nomes.PIPELINE_NAME_1
,PIPELINE_NAME_2
: nomes dos pipelines a extrair.
A resposta contém o ID da operação de obtenção. Por exemplo:
RESPONSE { "id": OPERATION_ID }
Para verificar o estado da operação de obtençã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 o seguinte:
NAMESPACE_ID
: o ID do espaço de nomes.OPERATION_ID
: o ID da operação recebido da operação de obtenção.
A resposta contém o estado da operação de obtenção. Por 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 obtenção está concluída, verifique a propriedade
done
na resposta. Se a operação falhou, verifique a propriedadeerror
para mais detalhes.
Elimine a configuração do repositório Git
Para eliminar a configuração do repositório Git de um espaço de nomes, siga estes passos:
Consola
- No Cloud Data Fusion Studio, clique em Menu.
- Clique em Administração do espaço de nomes.
- Na página Administração do espaço de nomes, clique no separador Gestão de controlo de origem.
- Para a configuração do repositório Git que quer eliminar, clique em > Eliminar.
API REST
Elimine 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 nomes.
O que se segue?
- Leia mais sobre como usar um repositório do GitHub para gerir pipelines.