Usando sistemas de controle de versão do Git no AWS Glue - AWS União

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando sistemas de controle de versão do Git no AWS Glue

nota

Atualmente, os notebooks não são compatíveis com o controle de versão noAWS Glue Studio. No entanto, há suporte para controle de versão para scripts de AWS Glue tarefas e tarefas ETL visuais.

Se houver repositórios remotos e você quiser gerenciar seus trabalhos do AWS Glue usando seus repositórios, poderá usar o AWS Glue Studio ou a AWS CLI para sincronizar as alterações nos seus repositórios e seus trabalhos no AWS Glue. Quando sincroniza as alterações dessa forma, você está transferindo o trabalho do AWS Glue Studio para seu repositório ou transferindo do repositório para o AWS Glue Studio.

Com a integração do Git no AWS Glue Studio, você pode:

  • Fazer a integração com sistemas de controle de versão do Git, como AWS CodeCommit, GitHub e Bitbucket

  • Editar trabalhos do AWS Glue no AWS Glue Studio se você usa trabalhos visuais ou de script e os sincroniza com um repositório

  • Parametrizar origens e destinos nos trabalhos

  • Extrair trabalhos de um repositório e editá-los no AWS Glue Studio

  • Testar trabalhos extraindo-os de ramificações e/ou transferindo-os para ramificações usando fluxos de trabalho em várias ramificações no AWS Glue Studio

  • Baixar arquivos de um repositório e carregar trabalhos para o AWS Glue Studio para a criação de trabalhos entre contas

  • Usar sua ferramenta de automação preferencial (por exemplo, Jenkins, AWS CodeDeploy etc.)

Este vídeo demonstra como você pode integrar o AWS ao Glue com Git e criar um pipeline de código contínuo e colaborativo.

Permissões do IAM

Certifique-se de que o trabalho tenha uma das seguintes permissões do IAM. Para obter mais informações sobre como configurar permissões do IAM, consulte Configurar permissões do IAM para o AWS Glue Studio.

  • AWSGlueServiceRole

  • AWSGlueConsoleFullAccess

No mínimo, as seguintes ações são necessárias para a integração com o Git:

  • glue:UpdateJobFromSourceControl: para poder atualizar o AWS Glue com um trabalho presente em um sistema de controle de versão

  • glue:UpdateSourceControlFromJob: para poder atualizar o sistema de controle de versão com um trabalho armazenado no AWS Glue

  • s3:GetObject: para poder recuperar o script do trabalho durante a transferência para o sistema de controle de versão

  • s3:PutObject: para poder atualizar o script ao extrair um trabalho de um sistema de controle de origem

Pré-requisitos

Para enviar trabalhos para um repositório de controle de origem, você precisará:

  • um repositório que já foi criado pelo seu administrador

  • uma ramificação no repositório

  • um token de acesso pessoal (para o Bitbucket, esse é o token de acesso ao repositório)

  • o nome de usuário do proprietário do repositório

  • definir permissões no repositório para permitir AWS Glue Studio a leitura e gravação no repositório

    • GitLab — defina os escopos do token para api, read_repository e write_repository

    • Bitbucket — defina permissões para:

      • Associação ao Workspace — leia, escreva

      • Projetos — escrever, administrar ler

      • Repositórios — leitura, gravação, administração, exclusão

nota

Ao usar AWS CodeCommit, o token de acesso pessoal e o proprietário do repositório não são necessários. Consulte Conceitos básicos do Git e do AWS CodeCommit.

Usando trabalhos do seu repositório de controle de origem no AWS Glue Studio

Para extrair um trabalho do seu repositório de controle de origem que não está no AWS Glue Studio e usar esse trabalho no AWS Glue Studio, os pré-requisitos dependerão do tipo de trabalho.

Para um trabalho visual:

  • você precisa de uma pasta e de um arquivo JSON da definição do trabalho que correspondam ao nome do trabalho

    Por exemplo, veja a definição de trabalho abaixo. A ramificação no seu repositório deve conter um caminho my-visual-job/my-visual-job.json, em que a pasta e o arquivo JSON correspondam ao nome do trabalho

    { "name" : "my-visual-job", "description" : "", "role" : "arn:aws:iam::aws_account_id:role/Rolename", "command" : { "name" : "glueetl", "scriptLocation" : "s3://foldername/scripts/my-visual-job.py", "pythonVersion" : "3" }, "codeGenConfigurationNodes" : "{\"node-nodeID\":{\"S3CsvSource\":{\"AdditionalOptions\":{\"EnableSamplePath\":false,\"SamplePath\":\"s3://notebook-test-input/netflix_titles.csv\"},\"Escaper\":\"\",\"Exclusions\":[],\"Name\":\"Amazon S3\",\"OptimizePerformance\":false,\"OutputSchemas\":[{\"Columns\":[{\"Name\":\"show_id\",\"Type\":\"string\"},{\"Name\":\"type\",\"Type\":\"string\"},{\"Name\":\"title\",\"Type\":\"choice\"},{\"Name\":\"director\",\"Type\":\"string\"},{\"Name\":\"cast\",\"Type\":\"string\"},{\"Name\":\"country\",\"Type\":\"string\"},{\"Name\":\"date_added\",\"Type\":\"string\"},{\"Name\":\"release_year\",\"Type\":\"bigint\"},{\"Name\":\"rating\",\"Type\":\"string\"},{\"Name\":\"duration\",\"Type\":\"string\"},{\"Name\":\"listed_in\",\"Type\":\"string\"},{\"Name\":\"description\",\"Type\":\"string\"}]}],\"Paths\":[\"s3://dalamgir-notebook-test-input/netflix_titles.csv\"],\"QuoteChar\":\"quote\",\"Recurse\":true,\"Separator\":\"comma\",\"WithHeader\":true}}}" }

Para um trabalho de script:

  • você precisa de uma pasta, de um arquivo JSON da definição do trabalho e do script

  • a pasta e o arquivo JSON devem corresponder ao nome do trabalho. O nome do script precisa corresponder ao scriptLocation da definição do trabalho junto com a extensão do arquivo

    Por exemplo, na definição do trabalho abaixo, a ramificação no seu repositório deve conter um caminho my-script-job/my-script-job.json e my-script-job/my-script-job.py. O nome do script deve corresponder ao nome na scriptLocation, incluindo a extensão do script

    { "name" : "my-script-job", "description" : "", "role" : "arn:aws:iam::aws_account_id:role/Rolename", "command" : { "name" : "glueetl", "scriptLocation" : "s3://foldername/scripts/my-script-job.py", "pythonVersion" : "3" } }

Limitações

  • No momento, o AWS Glue não oferece suporte a push/pull do GitLab-Groups.

Conectar repositórios de controle de versão com o AWS Glue

Você pode inserir os detalhes do seu repositório de controle de versão e gerenciá-los na guia Version Control (Controle de versão) no editor de trabalhos do AWS Glue Studio. Para se integrar ao seu repositório Git, deverá se conectar a ele para cada vez que fizer login no AWS Glue Studio.

Para conectar um sistema de controle de versão Git:

  1. No AWS Glue Studio, comece um novo trabalho e escolha guia Version Control (Controle de versão).

    A captura de tela mostra um trabalho com a guia Version Control (Controle de versão) selecionada.
  2. Em Version control system (Sistema de controle de versão), escolha o serviço Git entre as opções disponíveis clicando no menu suspenso.

    • AWS CodeCommit

    • GitHub

    • GitLab

    • Bitbucket

  3. Dependendo do sistema de controle de versão Git escolhido, você terá campos diferentes para preencher.

    para AWS CodeCommit:

    Conclua a configuração do repositório selecionando o repositório e a ramificação para seu trabalho:

    • Repositório: se você tiver configurado repositórios no AWS CodeCommit, selecione o repositório no menu suspenso. Seus repositórios serão preenchidos automaticamente na lista

    • Ramificação: selecione a ramificação no menu suspenso

    • Pasta: opcional - insira o nome da pasta na qual deseja salvar seu trabalho. Se o campo for deixado vazio, uma pasta será criada automaticamente. O nome da pasta assume o nome do trabalho como padrão.

    Para o GitHub:

    Conclua a configuração do GitHub preenchendo os campos:

    • Personal access token (Token de acesso pessoal): esse é o token fornecido pelo repositório do GitHub. Para obter mais informações sobre tokens de acesso pessoal, consulte GitHub Docs (Documentos do GitHub)

    • Repository owner (Proprietário do repositório): este é o proprietário do repositório do GitHub.

    Conclua a configuração do repositório selecionando o repositório e a ramificação no GitHub.

    • Repository (Repositório): se você tiver configurado repositórios no GitHub, selecione o repositório no menu suspenso. Seus repositórios serão preenchidos automaticamente na lista

    • Ramificação: selecione a ramificação no menu suspenso

    • Pasta: opcional - insira o nome da pasta na qual deseja salvar seu trabalho. Se o campo for deixado vazio, uma pasta será criada automaticamente. O nome da pasta assume o nome do trabalho como padrão.

    Para o GitLab:

    nota

    No momento, o AWS Glue não oferece suporte a push/pull do GitLab-Groups.

    • Personal access token (Token de acesso pessoal): esse é o token fornecido pelo repositório do GitLab. Para obter mais informações sobre tokens de acesso pessoal, consulte Tokens de acesso pessoal do GitLab

    • Repository owner (Proprietário do repositório): este é o proprietário do repositório do GitLab.

    Conclua a configuração do repositório selecionando o repositório e a ramificação no GitLab.

    • Repository (Repositório): se você tiver configurado repositórios no GitLab, selecione o repositório no menu suspenso. Seus repositórios serão preenchidos automaticamente na lista

    • Ramificação: selecione a ramificação no menu suspenso

    • Pasta: opcional - insira o nome da pasta na qual deseja salvar seu trabalho. Se o campo for deixado vazio, uma pasta será criada automaticamente. O nome da pasta assume o nome do trabalho como padrão.

    Para Bitbucket:

    • Senha de aplicações: o Bitbucket usa senhas de aplicações, e não tokens de acesso ao repositório. Para obter mais informações sobre senhas de aplicações, consulte Senhas de aplicações.

    • Repository owner (Proprietário do repositório): este é o proprietário do repositório do Bitbucket. No Bitbucket, o proprietário é o criador do repositório.

    Conclua a configuração do repositório selecionando o espaço de trabalho, repositório, ramificação e pasta do Bitbucket.

    • Espaço de trabalho - se você tiver espaços de trabalho configurados no Bitbucket, selecione o espaço de trabalho no menu suspenso. Seus espaços de trabalho são preenchidos automaticamente

    • Repository (Repositório) - se você tiver configurado repositórios no , selecione o repositório no menu suspenso. Seus repositórios são preenchidos automaticamente

    • Ramificação: selecione a ramificação no menu suspenso. Suas filiais são preenchidas automaticamente

    • Pasta: opcional - insira o nome da pasta na qual deseja salvar seu trabalho. Se deixado em branco, uma pasta será criada automaticamente com o nome do trabalho.

  4. Escolha Save (Salvar) na parte superior do trabalho do AWS Glue Studio

Transferir trabalhos do AWS Glue para o repositório de origem

Depois de inserir os detalhes do seu sistema de controle de versão, você pode editar trabalhos no AWS Glue Studio e enviá-los para seu repositório de origem. Se você não estiver familiarizado com os conceitos do Git, como push e pull, consulte esse tutorial em Conceitos básicos do Git e do AWS CodeCommit.

Para transferir seu trabalho para um repositório, você precisa inserir os detalhes do seu sistema de controle de versão e salvar o trabalho.

  1. No trabalho do AWS Glue Studio, escolha Actions (Ações). Opções adicionais de menu serão abertas.

    A captura de tela mostra um trabalho com o menu Actions (Ações) aberto. A opção Push to repository (Transferir para o repositório) está visível.
  2. Escolha Push to repository (Transferir para o repositório).

    Essa ação salvará o trabalho. Quando você transfere para o repositório, o AWS Glue Studio transfere a alteração mais recente salva. Se o trabalho no repositório tiver sido modificado por você ou por outro usuário e estiver fora de sincronia com o trabalho no AWS Glue Studio, o trabalho no repositório será substituído pelo trabalho salvo no AWS Glue Studio quando você transferir o trabalho do AWS Glue Studio.

  3. Escolha Confirm (Confirmar) para concluir a ação. Uma nova confirmação será criada no repositório. Se você estiver usando o AWS CodeCommit, uma mensagem de confirmação exibirá um link para a confirmação mais recente no AWS CodeCommit.

Extrair trabalhos do AWS Glue do repositório de origem

Depois de inserir os detalhes do seu repositório do Git na guia Version control (Controle de versão), você também pode extrair trabalhos do seu repositório e editá-los no AWS Glue Studio.

  1. No trabalho do AWS Glue Studio, escolha Actions (Ações). Opções adicionais de menu serão abertas.

    A captura de tela mostra um trabalho com o menu Actions (Ações) aberto. A opção Push to repository (Transferir para o repositório) está visível.
  2. Escolha Pull from repository (Extrair do repositório).

  3. Selecione a opção Confirmar. Essa opção captura a confirmação mais recente do repositório e atualiza seu trabalho no AWS Glue Studio.

  4. Edite seu trabalho no AWS Glue Studio. Se você fizer alterações, poderá sincronizar o trabalho com o repositório escolhendo Push to repository (Transferir para o repositório) no menu suspenso Actions (Ações).