Verwenden von Git-Versionsverwaltungssystemen in AWS Glue - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Git-Versionsverwaltungssystemen in AWS Glue

Anmerkung

Notebooks werden derzeit nicht von der Versionsverwaltung in AWS Glue Studio unterstützt. AWS Glue-Auftragsskripts und visuelle ETL-Aufträge werden jedoch von der Versionsverwaltung unterstützt.

Wenn Sie Remote-Repositorys haben und Ihre AWS Glue Aufträge mithilfe Ihrer Repositorys verwalten möchten, können Sie AWS Glue Studio oder verwenden, AWS CLI um Änderungen an Ihren Repositorys und Ihren Aufträgen in zu synchronisierenAWS Glue. Wenn Sie Änderungen auf diese Weise synchronisieren, übergeben Sie den Auftrag von AWS Glue Studio an Ihr Repository bzw. verschieben ihn aus dem Repository nach AWS Glue Studio.

Mit Git-Integration in AWS Glue Studio können Sie:

  • Integration in Git-Versionsverwaltungssysteme wie AWS CodeCommit GitHub GitLab, und Bitbucket

  • AWS Glue-Aufträge in AWS Glue Studio bearbeiten, unabhängig davon, ob Sie visuelle Aufträge oder Skriptaufträge verwenden, und sie mit einem Repository synchronisieren

  • Quellen und Ziele in Aufträgen parametrisieren

  • Aufträge aus einem Repository abrufen und sie in AWS Glue Studio bearbeiten

  • Aufträge testen, indem Sie sie aus Verzweigungen ziehen und/oder an Verzweigungen übergeben, indem Sie Workflows mit mehreren Verzweigungen in AWS Glue Studio verwenden

  • Dateien aus einem Repository herunterladen und Aufträge in AWS Glue Studio hochladen, um kontoübergreifend Aufträge zu erstellen

  • Verwenden Sie Ihr Automatisierungstool Ihrer Wahl (z. B. Jenkins AWS CodeDeploy usw.)

Dieses Video zeigt, wie Sie AWS Glue in Git integrieren und eine kontinuierliche und kollaborative Code-Pipeline erstellen können.

IAM-Berechtigungen

Stellen Sie sicher, dass der Auftrag über eine der folgenden IAM-Berechtigungen verfügt. Weitere Informationen zum Einrichten von IAM-Berechtigungen finden Sie unter Einrichten von IAM-Berechtigungen für AWS Glue Studio.

  • AWSGlueServiceRole

  • AWSGlueConsoleFullAccess

Für die Git-Integration sind mindestens folgende Aktionen erforderlich:

  • glue:UpdateJobFromSourceControl – Um AWS Glue mit einem Auftrag, der in einem Versionsverwaltungssystem vorhanden ist, aktualisieren zu können

  • glue:UpdateSourceControlFromJob – Um das Versionsverwaltungssystem mit einem in AWS Glue gespeicherten Auftrag aktualisieren zu können

  • s3:GetObject – Um das Skript für den Auftrag abrufen zu können, während es an das Versionsverwaltungssystem übergeben wird

  • s3:PutObject – Um das Skript aktualisieren zu können, wenn ein Auftrag von einem Quellcodeverwaltungssystem abgerufen wird

Voraussetzungen

Um Aufträge in ein Quellcodeverwaltungs-Repository zu übertragen, benötigen Sie:

  • ein Repository, das bereits von Ihrem Administrator erstellt wurde

  • eine Verzweigung im Repository

  • ein persönliches Zugriffstoken (für Bitbucket ist dies das Repository-Zugriffstoken)

  • den Benutzernamen des Eigentümers des Repositorys

  • Legen Sie die Berechtigungen im Repository so fest, dass AWS Glue Studio Lese- und Schreibzugriff auf das Repository erhält

    • GitLab – Tokenbereiche auf api, read_repository und write_repository festlegen

    • Bitbucket – Legen Sie Berechtigungen folgendermaßen fest:

      • Workspace-Mitgliedschaft – Lesen, Schreiben

      • Projekte – Schreiben, Lesen (Administrator)

      • Repositorys – Lesen, Schreiben, Verwalten, Löschen

Anmerkung

Bei Verwendung von werden kein AWS CodeCommit persönliches Zugriffstoken und kein Repository-Besitzer benötigt. Siehe Erste Schritte mit Git und AWS CodeCommit.

Verwenden von Aufträgen aus Ihrem Quellcodeverwaltungs-Repository in AWS Glue Studio

Um einen Auftrag aus Ihrem Quellverwaltungs-Repository abzurufen, der sich nicht in AWS Glue Studio befindet, und diesen Auftrag in AWS Glue Studio zu verwenden, hängen die Voraussetzungen von der Art des Auftrags ab.

Für visuelle Aufträge:

  • benötigen Sie einen Ordner und eine JSON-Datei der Auftragsdefinition, die mit dem Auftragsnamen übereinstimmt

    Sehen Sie sich zum Beispiel die folgende Auftragsdefinition an. Die Verzweigung in Ihrem Repository sollte einen Pfad my-visual-job/my-visual-job.json enthalten, bei dem sowohl der Ordner als auch die JSON-Datei mit dem Namen des Auftrags übereinstimmen

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

Für Skript-Aufträge:

  • benötigen Sie einen Ordner, eine JSON-Datei der Auftragsdefinition und das Skript

  • der Ordner und die JSON-Datei sollten mit dem Auftragsnamen übereinstimmen. Der Skriptname muss mit dem scriptLocation in der Auftragsdefinition übereinstimmen, ebenso die Dateierweiterung

    Beispielsweise sollte in der folgenden Auftragsdefinition die Verzweigung in Ihrem Repository einen Pfad my-script-job/my-script-job.json und my-script-job/my-script-job.py enthalten. Der Skriptname sollte mit dem Namen in der scriptLocation einschließlich der Erweiterung des Skripts übereinstimmen

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

Einschränkungen

  • AWS Glue unterstützt derzeit kein Pushen/Pulling von GitLab-Gruppen.

Verbinden von Versionsverwaltungs-Repositorys mit AWS Glue

Sie können die Details Ihres Versionskontroll-Repositorys auf der Registerkarte Version Control (Versionsverwaltung) im AWS Glue Studio-Auftrag-Editor eingeben und verwalten. Um eine Integration mit Ihrem Git-Repository durchzuführen, müssen Sie sich bei jeder Anmeldung in AWS Glue Studio mit Ihrem Repository verbinden.

So verbinden Sie ein Git-Versionsverwaltungssystem:

  1. Starten Sie in AWS Glue Studio einen neuen Auftrag und wählen Sie die Registerkarte Version Control (Versionsverwaltung).

    Der Screenshot zeigt einen Auftrag, bei dem die Registerkarte Versionsverwaltung ausgewählt ist.
  2. Wählen Sie im Versionsverwaltungssystem den Git-Service aus den verfügbaren Optionen aus, indem Sie auf das Dropdown-Menü klicken.

    • AWS CodeCommit

    • GitHub

    • GitLab

    • Bitbucket

  3. Je nachdem, welches Git-Versionsverwaltungssystem Sie auswählen, müssen Sie verschiedene Felder ausfüllen.

    Für AWS CodeCommit:

    Vervollständigen Sie die Repository-Konfiguration, indem Sie das Repository und die Verzweigung für Ihren Auftrag auswählen:

    • Repository – Wenn Sie Repositorys in eingerichtet haben AWS CodeCommit, wählen Sie das Repository aus dem Dropdown-Menü aus. Ihre Repositorys werden automatisch in die Liste aufgenommen

    • Branch (Verzweigung) – Wählen Sie die Verzweigung aus dem Dropdown-Menü

    • Folder (Ordner) – optional – Geben Sie den Namen des Ordners ein, in dem Ihr Auftrag gespeichert werden soll. Wenn das Feld leer gelassen wird, wird automatisch ein Ordner erstellt. Der Ordnername ist standardmäßig der Auftragsname

    Für GitHub:

    Schließen Sie die GitHub Konfiguration ab, indem Sie die Felder ausfüllen:

    • Persönliches Zugriffstoken – Dies ist das vom GitHub Repository bereitgestellte Token. Weitere Informationen zu persönlichen Zugriffstoken finden Sie unter - GitHub Dokumente

    • Repository-Eigentümer – dies ist der Eigentümer des GitHub Repositorys.

    Schließen Sie die Repository-Konfiguration ab, indem Sie das Repository und die Verzweigung aus auswählen GitHub.

    • Repository – Wenn Sie Repositorys in eingerichtet haben GitHub, wählen Sie das Repository aus dem Dropdown-Menü aus. Ihre Repositorys werden automatisch in die Liste aufgenommen

    • Branch (Verzweigung) – Wählen Sie die Verzweigung aus dem Dropdown-Menü

    • Folder (Ordner) – optional – Geben Sie den Namen des Ordners ein, in dem Ihr Auftrag gespeichert werden soll. Wenn das Feld leer gelassen wird, wird automatisch ein Ordner erstellt. Der Ordnername ist standardmäßig der Auftragsname

    Für GitLab:

    Anmerkung

    AWS Glue unterstützt derzeit kein Pushen/Pulling von GitLab-Gruppen.

    • Persönliches Zugriffstoken – dies ist das vom GitLab Repository bereitgestellte Token. Weitere Informationen zu persönlichen Zugriffstoken finden Sie unter GitLab Persönliche Zugriffstoken

    • Repository-Eigentümer – Dies ist der Eigentümer des GitLab Repositorys.

    Schließen Sie die Repository-Konfiguration ab, indem Sie das Repository und die Verzweigung aus auswählen GitLab.

    • Repository – Wenn Sie Repositorys in eingerichtet haben GitLab, wählen Sie das Repository aus dem Dropdown-Menü aus. Ihre Repositorys werden automatisch in die Liste aufgenommen

    • Branch (Verzweigung) – Wählen Sie die Verzweigung aus dem Dropdown-Menü

    • Folder (Ordner) – optional – Geben Sie den Namen des Ordners ein, in dem Ihr Auftrag gespeichert werden soll. Wenn das Feld leer gelassen wird, wird automatisch ein Ordner erstellt. Der Ordnername ist standardmäßig der Auftragsname

    Für Bitbucket:

    • App-Passwort – Bitbucket verwendet App-Passwörter und keine Repository-Zugriffstoken. Weitere Informationen zu App-Passwörtern finden Sie unter App-Passwörter.

    • Repository-Eigentümer – Dies ist der Eigentümer des Bitbucket-Repositorys. In Bitbucket ist der Eigentümer der Ersteller des Repositorys.

    Vervollständigen Sie die Repository-Konfiguration, indem Sie den Arbeitsbereich, das Repository, die Verzweigung und den Ordner von Bitbucket auswählen.

    • Arbeitsbereich – Wenn Sie in Bitbucket Arbeitsbereiche eingerichtet haben, wählen Sie den Arbeitsbereich aus dem Dropdown-Menü aus. Ihre Arbeitsbereiche werden automatisch mit Daten gefüllt

    • Repository – Wenn Sie in Bitbucket Repositorys eingerichtet haben, wählen Sie das Repository aus dem Dropdown-Menü aus. Ihre Repositorys werden automatisch mit Daten gefüllt

    • Verzweigung – Wählen Sie die Verzweigung aus dem Dropdown-Menü aus. Ihre Verzweigungen werden automatisch mit Daten gefüllt

    • Folder (Ordner) – optional – Geben Sie den Namen des Ordners ein, in dem Ihr Auftrag gespeichert werden soll. Wenn das Feld leer gelassen wird, wird automatisch ein Ordner mit dem Auftragsnamen erstellt.

  4. Wählen Sie oben im AWS Glue Studio-Auftrag Save (Speichern) aus

Übertragen von AWS Glue Aufträgen an das Quell-Repository

Sobald Sie die Details Ihres Versionsverwaltungssystem eingegeben haben, können Sie Aufträge in AWS Glue Studio bearbeiten und die Aufträge an Ihr Quell-Repository übergeben. Wenn Sie mit Git-Konzepten wie Übertragen und Ziehen nicht vertraut sind, lesen Sie dieses Tutorial unter Erste Schritte mit Git und AWS CodeCommit.

Um Ihren Auftrag an ein Repository zu übergeben, müssen Sie die Details Ihres Versionsverwaltungssystems eingeben und Ihren Auftrag speichern.

  1. Wählen Sie im AWS Glue Studio-Auftrag die Option Actions (Aktionen). Dadurch werden zusätzliche Menüoptionen geöffnet.

    Der Screenshot zeigt einen Auftrag mit geöffnetem Menü Aktionen. Die Option An das Repository übergeben ist sichtbar.
  2. Wählen Sie Push to repository (An das Repository übergeben) aus.

    Durch diese Aktion wird der Auftrag gespeichert. Wenn Sie an das Repository übergeben, überträgt AWS Glue Studio die zuletzt gespeicherte Änderung. Wenn der Auftrag im Repository von Ihnen oder einem anderen Nutzer geändert wurde und nicht mehr mit dem Auftrag in AWS Glue Studio synchron ist, wird der Auftrag im Repository mit dem in AWS Glue Studio gespeicherten Auftrag überschrieben, wenn Sie den Auftrag von AWS Glue Studio aus übertragen.

  3. Wählen Sie Confirm (Bestätigen) um die Aktion abzuschließen. Dadurch wird ein neues Commit im Repository erstellt. Wenn Sie verwenden AWS CodeCommit, zeigt eine Bestätigungsnachricht einen Link zum letzten Commit auf an AWS CodeCommit.

Ziehen von AWS Glue Aufträgen aus dem Quell-Repository

Sobald Sie die Details Ihres Git-Repositorys auf der Registerkarte Version control (Versionsverwaltung) eingegeben haben, können Sie auch Aufträge aus Ihrem Repository ziehen und sie in AWS Glue Studio bearbeiten.

  1. Wählen Sie im AWS Glue Studio-Auftrag die Option Actions (Aktionen). Dadurch werden zusätzliche Menüoptionen geöffnet.

    Der Screenshot zeigt einen Auftrag mit geöffnetem Menü Aktionen. Die Option An das Repository übergeben ist sichtbar.
  2. Wählen Sie Pull from repository (Aus dem Repository ziehen) aus.

  3. Wählen Sie Bestätigen aus. Dies nimmt den neuesten Commit aus dem Repository und aktualisiert Ihren Auftrag in AWS Glue Studio.

  4. Bearbeiten Sie Ihrer Auftrag in AWS Glue Studio. Wenn Sie Änderungen vornehmen, können Sie Ihren Auftrag mit Ihrem Repository synchronisieren, indem Sie Push to repository (An Repository übergeben) im Dropdown-Menü Actions (Aktionen) auswählen.