Utilizzo dei sistemi di controllo delle versioni Git in AWS Glue - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dei sistemi di controllo delle versioni Git in AWS Glue

Nota

I notebook non sono attualmente supportati per il controllo della versione in AWS Glue Studio. Tuttavia, è supportato il controllo della versione per gli script del processo AWS Glue e i processi ETL visivi.

Se disponi di repository remoti e desideri gestire i tuoi AWS Glue lavori utilizzando i tuoi repository, puoi utilizzare AWS Glue Studio o AWS CLI per sincronizzare le modifiche ai tuoi repository e ai tuoi lavori in. AWS Glue Quando si sincronizzano le modifiche in questo modo, si sta inviando il processo da AWS Glue Studio al repository o lo si sta estraendo dal repository verso AWS Glue Studio.

Grazie all'integrazione di Git in AWS Glue Studio, è possibile:

  • Integrazione con i sistemi di controllo delle versioni Git AWS CodeCommit, come, GitHub GitLab, e Bitbucket

  • Modifica i processi AWS Glue in AWS Glue Studio indipendentemente dal fatto che utilizzi processi visivi o processi di script e li sincronizzi con un repository

  • Parametrizza le origini e le destinazioni nei processi

  • Estrai i processi da un repository e modificali in AWS Glue Studio

  • Testa i processi estraendoli dai rami e/o inviandoli verso i rami utilizzando flussi di lavoro multiramo in AWS Glue Studio

  • Scarica file da un repository e carica processi in AWS Glue Studio per la creazione di processi tra account

  • Usa lo strumento di automazione che preferisci (ad esempio, Jenkins AWS CodeDeploy, ecc.)

Questo video dimostra come integrare AWS Glue con Git e creare una pipeline di codice continua e collaborativa.

Autorizzazioni IAM

Verifica che il processo abbia una delle seguenti autorizzazioni IAM. Per ulteriori informazioni su come configurare le autorizzazioni IAM, consulta Impostare le autorizzazioni IAM per AWS Glue Studio.

  • AWSGlueServiceRole

  • AWSGlueConsoleFullAccess

Come minimo, sono necessarie le seguenti operazioni per l'integrazione con Git:

  • glue:UpdateJobFromSourceControl — essere in grado di aggiornare AWS Glue con un processo presente in un sistema di controllo delle versioni

  • glue:UpdateSourceControlFromJob — essere in grado di aggiornare il sistema di controllo delle versioni con un processo archiviato in AWS Glue

  • s3:GetObject — essere in grado di recuperare lo script per il processo mentre si invia al sistema di controllo delle versioni

  • s3:PutObject — essere in grado di aggiornare lo script quando si estrae un processo da un sistema di controllo dell'origine

Prerequisiti

Per poter inviare i processi a un repository di controllo del codice sorgente, avrai bisogno di:

  • un repository che è già stato creato dall'amministratore

  • un ramo nel repository

  • un token di accesso personale (per Bitbucket, questo è il Repository Access Token)

  • il nome utente del proprietario del repository

  • impostare le autorizzazioni nel repository per consentire ad AWS Glue Studio la lettura e la scrittura nel repository

    • GitLab— imposta gli ambiti dei token su api, read_repository e write_repository

    • Bitbucket: imposta le autorizzazioni su:

      • Iscrizione a Workspace: lettura e scrittura

      • Progetti: scrittura, lettura e amministratore

      • Repository: lettura, scrittura, eliminazione e amministratore

Nota

Durante l'utilizzo AWS CodeCommit, non sono necessari il token di accesso personale e il proprietario del repository. Consulta Introduzione a Git e AWS CodeCommit.

Utilizzo dei processi dal tuo repository di controllo del codice sorgente in AWS Glue Studio

Per poter estrarre un processo dal repository per il controllo di origine che non è presente in AWS Glue Studio e utilizzare quel processo in AWS Glue Studio, i prerequisiti dipenderanno dal tipo di processo.

Per i processi visivi:

  • sono necessari una cartella e un file JSON della definizione del processo che corrisponda al nome del processo

    Ad esempio, vedi la definizione del processo di seguito. Il ramo nel repository dovrebbe contenere un percorso my-visual-job/my-visual-job.json dove sia la cartella che il file JSON corrispondono al nome del processo

    { "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}}}" }

Per i processi di script:

  • hai bisogno di una cartella, un file JSON con la definizione del processo e lo script

  • la cartella e il file JSON devono corrispondere al nome del processo. Il nome dello script deve corrispondere alla scriptLocation nella definizione del processo insieme all'estensione del file

    Ad esempio, nella definizione del processo riportata di seguito, il ramo nel repository deve contenere un percorso my-script-job/my-script-job.json e my-script-job/my-script-job.py. Il nome dello script deve corrispondere al nome nella scriptLocation inclusa l'estensione dello 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" } }

Limitazioni

Collegamento dei repository di controllo delle versioni a AWS Glue

È possibile inserire i dettagli del repository di controllo delle versioni e gestirli nella scheda Controllo delle versioni nell'editor dei processi AWS Glue Studio. Per integrarlo con il repository Git, bisogna connettersi al repository ogni volta che si accede a AWS Glue Studio.

Per connettere un sistema di controllo della versione Git:

  1. In AWS Glue Studio, inizia un nuovo processo e scegli la scheda Controllo delle versioni.

    Lo screenshot mostra un processo con la scheda Controllo delle versioni selezionata.
  2. In Sistema di controllo delle versioni, scegli Git Service tra le opzioni disponibili facendo clic sul menu a discesa.

    • AWS CodeCommit

    • GitHub

    • GitLab

    • Bitbucket

  3. A seconda del sistema di controllo delle versioni Git scelto, si avranno diversi campi da completare.

    Per AWS CodeCommit:

    Completa la configurazione del repository selezionando il repository e il ramo per il processo:

    • Repository: se hai configurato dei repository in AWS CodeCommit, seleziona il repository dal menu a discesa. I repository verranno inseriti automaticamente nell'elenco

    • Ramo — seleziona il ramo dal menu a discesa

    • Cartellafacoltativo: inserisci il nome della cartella in cui salvare il processo. Se lasciato vuoto, viene creata automaticamente una cartella. Il nome predefinito della cartella è il nome del processo

    Per: GitHub

    Completa la GitHub configurazione completando i campi:

    Completa la configurazione del repository selezionando il repository e il ramo da. GitHub

    • Repository: se hai configurato dei repository in GitHub, seleziona il repository dal menu a discesa. I repository verranno inseriti automaticamente nell'elenco

    • Ramo — seleziona il ramo dal menu a discesa

    • Cartellafacoltativo: inserisci il nome della cartella in cui salvare il processo. Se lasciato vuoto, viene creata automaticamente una cartella. Il nome predefinito della cartella è il nome del processo

    Per: GitLab

    • Token di accesso personale: questo è il token fornito dal repository. GitLab Per ulteriori informazioni sui token di accesso personali, consulta Token di accesso GitLab personali

    • Proprietario del repository: si tratta del proprietario del repository. GitLab

    Completa la configurazione del repository selezionando il repository e il ramo da. GitLab

    • Repository: se hai configurato dei repository in GitLab, seleziona il repository dal menu a discesa. I repository verranno inseriti automaticamente nell'elenco

    • Ramo — seleziona il ramo dal menu a discesa

    • Cartellafacoltativo: inserisci il nome della cartella in cui salvare il processo. Se lasciato vuoto, viene creata automaticamente una cartella. Il nome predefinito della cartella è il nome del processo

    Per Bitbucket:

    Completa la configurazione del repository selezionando il workspace, il repository, il ramo e la cartella da Bitbucket.

    • Workspace: se sono stati configurati i workspace in Bitbucket, selezionare il workspace dal menu a discesa. I workspace vengono popolati automaticamente

    • Repository: se sono stati configurati i repository in Bitbucket, selezionare il repository dal menu a discesa. I repository vengono popolati automaticamente

    • Ramo: seleziona il ramo dal menu a discesa. I tuoi rami vengono popolati automaticamente

    • Cartellafacoltativo: inserisci il nome della cartella in cui salvare il processo. Se lasciato vuoto, viene creata automaticamente una cartella con il nome del processo.

  4. Scegli Save (Salva) nella parte superiore del processo AWS Glue Studio

Invio dei processi AWS Glue al repository di origine

Dopo aver inserito i dettagli del sistema di controllo delle versioni, puoi modificare i processi in AWS Glue Studio e inviarli al repository di origine. Se non conosci i concetti di Git come inviare ed estrarre, guarda questo tutorial Nozioni di base su Git e AWS CodeCommit.

Per inviare il processo a un repository, devi inserire i dettagli del sistema di controllo delle versioni e salvare il processo.

  1. Nel processoAWS Glue Studio, scegli Operazioni. Questo aprirà opzioni di menu aggiuntive.

    Lo screenshot mostra un processo con il menu Operazioni aperto. L'opzione invia a repository è visibile.
  2. Scegli Invia a repository.

    Questa operazione salverà il processo. Quando si esegue l'invio al repository,AWS Glue Studio invia l'ultima modifica salvata. Se il processo nel repository è stato modificato da te o da un altro utente e non è sincronizzato con il processo in AWS Glue Studio, quando si invia il processo da AWS Glue Studio, il processo nel repository viene sovrascritto con il processo salvato in AWS Glue Studio.

  3. Scegli Conferma per completare l'operazione. Questo crea un nuovo commit nel repository. Se lo stai utilizzando AWS CodeCommit, un messaggio di conferma mostrerà un link all'ultimo commit on. AWS CodeCommit

Estrarre processi AWS Glue dal repository di origine

Dopo aver inserito i dettagli del repository Git nella scheda Controllo delle versioni, puoi anche estrarre i processi dal repository e modificarli in AWS Glue Studio.

  1. Nel processo AWS Glue Studio, scegli Operazioni. Questo aprirà opzioni di menu aggiuntive.

    Lo screenshot mostra un processo con il menu Operazioni aperto. L'opzione invia a repository è visibile.
  2. Scegli Estrai dal repository.

  3. Scegli Conferma. Questo prende il commit più recente dal repository e aggiorna il processo in AWS Glue Studio.

  4. Modificare il processo in AWS Glue Studio. Se apporti delle modifiche, puoi sincronizzare il processo con il repository scegliendo Invia a repository dal menu a discesa Operazioni.