Teilen von Daten zwischen Aktionen in einem Workflow mithilfe von Artefakten - Amazon CodeCatalyst

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.

Teilen von Daten zwischen Aktionen in einem Workflow mithilfe von Artefakten

Ein Artefakt ist die Ausgabe einer Workflow-Aktion und besteht in der Regel aus einem Ordner oder Archiv mit Dateien. Artefakte sind wichtig, weil sie es Ihnen ermöglichen, Dateien und Informationen zwischen Aktionen gemeinsam zu nutzen.

Möglicherweise haben Sie eine Build-Aktion, die eine sam-template.yml Datei generiert, Sie möchten jedoch, dass eine Bereitstellungsaktion diese verwendet. In diesem Szenario würden Sie ein Artefakt verwenden, um es der Build-Aktion zu ermöglichen, die sam-template.yml Datei mit der Bereitstellungsaktion gemeinsam zu nutzen. Der Code könnte etwa so aussehen:

Actions: BuildAction: Identifier: aws/build@v1 Steps: - Run: sam package --output-template-file sam-template.yml Outputs: Artifacts: - Name: MYARTIFACT Files: - sam-template.yml DeployAction: Identifier: aws/cfn-deploy@v1 Inputs: Artifacts: - MYARTIFACT Configuration: template: sam-template.yml

Im vorherigen Code generiert die Build-Aktion (BuildAction) eine sam-template.yml Datei und fügt sie dann einem Ausgabeartefakt namens MYARTIFACT hinzu. Eine nachfolgende Bereitstellungsaktion (DeployAction) wird MYARTIFACT als Eingabe angegeben, sodass sie auf die sam-template.yml Datei zugreifen kann.

Kann ich Artefakte teilen, ohne sie als Ausgaben und Eingaben anzugeben?

Ja, Sie können Artefakte zwischen Aktionen gemeinsam nutzen, ohne sie in den Inputs Abschnitten Outputs und im YAML-Code Ihrer Aktionen anzugeben. Dazu müssen Sie Compute Sharing aktivieren. Weitere Informationen zu Compute Sharing und zur Angabe von Artefakten, wenn es aktiviert ist, finden Sie unterRechenleistung für mehrere Aktionen gemeinsam nutzen.

Anmerkung

Mit der Compute Sharing-Funktion können Sie zwar den YAML-Code Ihres Workflows vereinfachen, indem Sie die Inputs Abschnitte Outputs und und überflüssig machen, es bestehen jedoch Einschränkungen, die Sie beachten sollten, bevor Sie sie aktivieren. Informationen zu diesen Einschränkungen finden Sie unterÜberlegungen zur gemeinsamen Nutzung von Rechenleistung.

Kann ich Artefakte zwischen Workflows teilen?

Nein, Sie können Artefakte nicht zwischen verschiedenen Workflows gemeinsam nutzen. Sie können Artefakte jedoch zwischen Aktionen innerhalb desselben Workflows gemeinsam nutzen.

Definition eines Ausgabeartefakts

Verwenden Sie die folgenden Anweisungen, um ein Artefakt zu definieren, das von einer Aktion ausgegeben werden soll. Dieses Artefakt steht dann anderen Aktionen zur Verfügung.

Anmerkung

Nicht alle Aktionen unterstützen Ausgabeartefakte. Um festzustellen, ob Ihre Aktion sie unterstützt, führen Sie die folgenden Anweisungen für den visuellen Editor durch und prüfen Sie, ob die Aktion auf der Registerkarte Ausgaben die Schaltfläche Ausgabeartefakte enthält. Falls ja, werden Ausgabeartefakte unterstützt.

Visual
Um ein Ausgabeartefakt mit dem visuellen Editor zu definieren
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach dem Workflow-Namen filtern.

  5. Wählen Sie Bearbeiten aus.

  6. Wählen Sie Visual.

  7. Wählen Sie im Workflow-Diagramm die Aktion aus, die das Artefakt erzeugen soll.

  8. Wählen Sie die Registerkarte Outputs.

  9. Wählen Sie unter Artefakte die Option Artefakt hinzufügen aus.

  10. Wählen Sie Artefakt hinzufügen und geben Sie wie folgt Informationen in die Felder ein.

    Name des Build-Artefakts

    Geben Sie den Namen eines Artefakts an, das durch die Aktion generiert wurde. Artefaktnamen müssen innerhalb eines Workflows eindeutig sein und sind auf alphanumerische Zeichen (a-z, A-Z, 0-9) und Unterstriche (_) beschränkt. Leerzeichen, Bindestriche (-) und andere Sonderzeichen sind nicht zulässig. Sie können keine Anführungszeichen verwenden, um Leerzeichen, Bindestriche und andere Sonderzeichen in Namen von Ausgabeartefakten zuzulassen.

    Weitere Informationen zu Artefakten, einschließlich Beispielen, finden Sie unter. Teilen von Daten zwischen Aktionen in einem Workflow mithilfe von Artefakten

    Von build erstellte Dateien

    Geben Sie die Dateien an, die in dem Artefakt CodeCatalyst enthalten sind, das durch die Aktion ausgegeben wird. Diese Dateien werden durch die Workflow-Aktion generiert, wenn sie ausgeführt wird, und sind auch in Ihrem Quell-Repository verfügbar. Dateipfade können sich in einem Quell-Repository oder einem Artefakt aus einer früheren Aktion befinden und sind relativ zum Quell-Repository oder Artefakt-Stamm. Sie können Glob-Muster verwenden, um Pfade anzugeben. Beispiele:

    • Um eine einzelne Datei anzugeben, die sich im Stammverzeichnis Ihres Build-Speicherorts oder Quell-Repository-Speicherorts befindet, verwenden Siemy-file.jar.

    • Um eine einzelne Datei in einem Unterverzeichnis anzugeben, verwenden Sie directory/my-file.jar oderdirectory/subdirectory/my-file.jar.

    • Um alle Dateien anzugeben, verwenden Sie"**/*". Das ** Glob-Muster gibt an, dass es einer beliebigen Anzahl von Unterverzeichnissen entspricht.

    • Um alle Dateien und Verzeichnisse in einem Verzeichnis mit dem Namen anzugebendirectory, verwenden Sie. "directory/**/*" Das ** Glob-Muster gibt an, dass es einer beliebigen Anzahl von Unterverzeichnissen entspricht.

    • Um alle Dateien in einem Verzeichnis mit dem Namendirectory, aber nicht in einem seiner Unterverzeichnisse anzugeben, verwenden Sie. "directory/*"

    Anmerkung

    Wenn Ihr Dateipfad ein oder mehrere Sternchen (*) oder ein anderes Sonderzeichen enthält, schließen Sie den Pfad in doppelte Anführungszeichen () ein. "" Weitere Hinweise zu Sonderzeichen finden Sie unter. Richtlinien und Konventionen zur Syntax

    Weitere Informationen zu Artefakten, einschließlich Beispielen, finden Sie unterTeilen von Daten zwischen Aktionen in einem Workflow mithilfe von Artefakten.

    Anmerkung

    Möglicherweise müssen Sie dem Dateipfad ein Präfix hinzufügen, um anzugeben, in welchem Artefakt oder in welcher Quelle das Objekt gefunden werden soll. Weitere Informationen finden Sie unter Referenzieren von Dateien in einem Quell-Repository und Referenzieren von Dateien in einem Artefakt.

  11. (Optional) Wählen Sie „Validieren“, um den YAML-Code des Workflows vor dem Commit zu überprüfen.

  12. Wählen Sie Commit, geben Sie eine Commit-Nachricht ein und wählen Sie erneut Commit aus.

YAML
Um ein Ausgabeartefakt mit dem YAML-Editor zu definieren
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach dem Workflow-Namen filtern.

  5. Wählen Sie Bearbeiten aus.

  6. Wählen Sie YAML.

  7. Fügen Sie in einer Workflow-Aktion Code hinzu, der dem folgenden ähnelt:

    action-name: Outputs: Artifacts: - Name: artifact-name Files: - file-path-1 - file-path-2

    Weitere Beispiele finden Sie unter Beispiele für Artefakte. Weitere Informationen finden Sie unter YAML-Workflow-Definition Für Ihre Aktion.

  8. (Optional) Wählen Sie „Validieren“, um den YAML-Code des Workflows vor dem Commit zu überprüfen.

  9. Wählen Sie Commit, geben Sie eine Commit-Nachricht ein und wählen Sie erneut Commit aus.

Definieren Sie ein Eingabeartefakt

Wenn Sie ein Artefakt verwenden möchten, das durch eine andere Aktion generiert wurde, müssen Sie es als Eingabe für die aktuelle Aktion angeben. Möglicherweise können Sie mehrere Artefakte als Eingabe angeben — das hängt von der Aktion ab. Weitere Informationen finden Sie unter YAML-Workflow-Definition Für Ihre Aktion.

Anmerkung

Sie können nicht auf Artefakte aus anderen Workflows verweisen.

Verwenden Sie die folgenden Anweisungen, um ein Artefakt aus einer anderen Aktion als Eingabe für die aktuelle Aktion anzugeben.

Voraussetzung

Bevor Sie beginnen, stellen Sie sicher, dass Sie das Artefakt aus der anderen Aktion ausgegeben haben. Weitere Informationen finden Sie unter Definition eines Ausgabeartefakts. Wenn Sie das Artefakt ausgeben, steht es anderen Aktionen zur Verfügung.

Visual
Um ein Artefakt als Eingabe für eine Aktion anzugeben (visueller Editor)
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach dem Workflow-Namen filtern.

  5. Wählen Sie Bearbeiten aus.

  6. Wählen Sie Visual.

  7. Wählen Sie im Workflow-Diagramm die Aktion aus, für die Sie ein Artefakt als Eingabe angeben möchten.

  8. Wählen Sie Eingaben.

  9. Gehen Sie unter Artefakte — optional wie folgt vor:

    Geben Sie Artefakte aus früheren Aktionen an, die Sie als Eingabe für diese Aktion bereitstellen möchten. Diese Artefakte müssen bereits in früheren Aktionen als Ausgabeartefakte definiert sein.

    Wenn Sie keine Eingabeartefakte angeben, müssen Sie mindestens ein Quell-Repository unter angebenaction-name/Inputs/Sources.

    Weitere Informationen zu Artefakten, einschließlich Beispielen, finden Sie unterTeilen von Daten zwischen Aktionen in einem Workflow mithilfe von Artefakten.

    Anmerkung

    Wenn die Dropdownliste Artefakte — optional nicht verfügbar ist (visueller Editor) oder wenn Sie bei der Validierung Ihres YAML (YAML-Editors) Fehler erhalten, kann das daran liegen, dass die Aktion nur eine Eingabe unterstützt. Versuchen Sie in diesem Fall, die Quelleingabe zu entfernen.

  10. (Optional) Wählen Sie „Validieren“, um den YAML-Code des Workflows vor dem Commit zu überprüfen.

  11. Wählen Sie Commit, geben Sie eine Commit-Nachricht ein und wählen Sie erneut Commit aus.

YAML
Um ein Artefakt als Eingabe für eine Aktion anzugeben (YAML-Editor)
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach dem Workflow-Namen filtern.

  5. Wählen Sie Bearbeiten aus.

  6. Wählen Sie YAML.

  7. Fügen Sie in der Aktion, in der Sie das Artefakt als Eingabe angeben möchten, Code hinzu, der dem folgenden ähnelt:

    action-name: Inputs: Artifacts: - artifact-name

    Weitere Beispiele finden Sie unter Beispiele für Artefakte.

  8. (Optional) Wählen Sie „Validieren“, um den YAML-Code des Workflows vor dem Commit zu überprüfen.

  9. Wählen Sie Commit, geben Sie eine Commit-Nachricht ein und wählen Sie erneut Commit aus.

Referenzieren von Dateien in einem Artefakt

Wenn Sie über eine Datei verfügen, die sich in einem Artefakt befindet, und Sie in einer Ihrer Workflow-Aktionen auf diese Datei verweisen müssen, gehen Sie wie folgt vor.

So verweisen Sie auf Dateien in einem Artefakt
  • Fügen Sie in der Aktion, in der Sie auf eine Datei verweisen möchten, Code hinzu, der dem folgenden ähnelt:

    Actions: My-action: Inputs: Sources: - WorkflowSource Artifacts: - artifact-name Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_artifact-name/build-output && cat file.txt

    Im vorherigen Code sucht die Aktion im build-output Verzeichnis im Artefaktnamen-Artefakt nach der Datei und zeigt sie an. file.txt

    Weitere Beispiele finden Sie unter Beispiele für Artefakte.

    Anmerkung

    Je nachdem, wie Sie Ihre Aktion konfiguriert haben, können Sie das $CATALYST_SOURCE_DIR_artifact-name/ Präfix möglicherweise weglassen. Weitere Informationen finden Sie in der folgenden Anleitung.

    Hinweise zur Bezugnahme auf Variablen:

    • Wenn Ihre Aktion nur ein Element unter umfasst Inputs (z. B. ein Eingabeartefakt und keine Quelle), können Sie das Präfix weglassen und nur den Dateipfad relativ zum Artefaktstamm angeben.

    • Sie können das Präfix auch weglassen, wenn sich die Datei in der primären Eingabe befindet. Die primäre Eingabe ist entweder das oder das WorkflowSource erste aufgeführte Eingabeartefakt, falls es keines gibt. WorkflowSource

    • Das Präfix kann je nach der Aktion, die Sie verwenden, unterschiedlich sein. Weitere Informationen können Sie der folgenden Tabelle entnehmen.

Aktionstyp Zu verwendendes Dateipfadpräfix Beispiel

Aktion erstellen, Aktion testen

$CATALYST_SOURCE_DIR_artifact-name/

$CATALYST_SOURCE_DIR_MyArtifact/folder1/file.txt

Alle anderen Aktionen

$CATALYST_SOURCE_DIR_artifact-name/

or

/artifacts/current-action-name/artifact-name/(Dieser Pfad ist ein symbolischer Link zu $CATALYST_SOURCE_DIR_ artifact-name/)

$CATALYST_SOURCE_DIR_MyArtifact/folder1/file.txt

or

/artifacts/MyCurrentAction/MyArtifact/folder1/file.txt

Artefakte werden heruntergeladen

Sie können Artefakte, die durch Ihre Workflow-Aktionen generiert wurden, zur Fehlerbehebung herunterladen und untersuchen. Es gibt zwei Arten von Artefakten, die Sie herunterladen können:

  • Quellartefakte — Ein Artefakt, das einen Snapshot des Inhalts des Quell-Repositorys enthält, so wie er zu Beginn der Ausführung vorhanden war.

  • Workflow-Artefakte — Ein Artefakt, das in der Outputs Eigenschaft der Konfigurationsdatei Ihres Workflows definiert ist.

Um die vom Workflow ausgegebenen Artefakte herunterzuladen
  1. Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.

  2. Wählen Sie Ihr Projekt.

  3. Wählen Sie im Navigationsbereich CI/CD und dann Workflows aus.

  4. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach dem Workflow-Namen filtern.

  5. aWählen Sie unter dem Namen des Workflows die Option Runs aus.

  6. Wählen Sie im Ausführungsverlauf in der Spalte Lauf-ID einen Lauf aus. z. B. Run-95a4d.

  7. Wählen Sie unter dem Namen des Laufs die Option Artifacts aus.

  8. Wähle neben einem Artefakt die Option Herunterladen aus. Eine Archivdatei wird heruntergeladen. Ihr Dateiname besteht aus sieben zufälligen Zeichen.

  9. Extrahieren Sie das Archiv mit einem Archivextraktionsprogramm Ihrer Wahl.

Beispiele für Artefakte

Die folgenden Beispiele zeigen, wie Artefakte in der Workflow-Definitionsdatei ausgegeben, eingegeben und referenziert werden.

Beispiel: Ein Artefakt ausgeben

Das folgende Beispiel zeigt, wie ein Artefakt ausgegeben wird, das zwei .jar-Dateien enthält.

Actions: Build: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ARTIFACT1 Files: - build-output/file1.jar - build-output/file2.jar

Beispiel: Eingabe eines Artefakts, das durch eine andere Aktion generiert wurde

Das folgende Beispiel zeigt Ihnen, wie Sie ein aufgerufenes Artefakt ausgeben und ARTIFACT4 in BuildActionA dieses eingeben. BuildActionB

Actions: BuildActionA: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ARTIFACT4 Files: - build-output/file1.jar - build-output/file2.jar BuildActionB: Identifier: aws/build@v1 Inputs: Artifacts: - ARTIFACT4 Configuration:

Beispiel: Referenzieren von Dateien in mehreren Artefakten

Das folgende Beispiel zeigtBuildActionC, wie Sie zwei Artefakte mit dem Namen ART5 und ART6 in ausgeben und dann auf zwei Dateien mit den Namen file5.txt (in ArtifactART5) und file6.txt (in ArtifactART6) in BuildActionD (unterSteps) verweisen.

Anmerkung

Weitere Informationen zum Referenzieren von Dateien finden Sie unter. Referenzieren von Dateien in einem Artefakt

Anmerkung

Das Beispiel zeigt zwar, dass das $CATALYST_SOURCE_DIR_ART5 Präfix verwendet wird, Sie könnten es aber weglassen. Das liegt daran, dass ART5 es die primäre Eingabe ist. Weitere Informationen zur primären Eingabe finden Sie unterReferenzieren von Dateien in einem Artefakt.

Actions: BuildActionC: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ART5 Files: - build-output/file5.txt - Name: ART6 Files: - build-output/file6.txt BuildActionD: Identifier: aws/build@v1 Inputs: Artifacts: - ART5 - ART6 Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt

Beispiel: Referenzieren einer Datei in einem einzigen Artefakt

Das folgende Beispiel zeigt, wie Sie ein Artefakt mit dem Namen ART7 in BuildActionE ausgeben und dann auf file7.txt (im ArtefaktART7) in BuildActionF (unter) verweisen. Steps

Beachten Sie, dass die Referenz nicht das Präfix für den $CATALYST_SOURCE_DIR_ Artefaktnamen vor dem build-output Verzeichnis benötigt, wie dies in der Fall war. Beispiel: Referenzieren von Dateien in mehreren Artefakten Dies liegt daran, dass unter nur ein Element angegeben ist. Inputs

Anmerkung

Weitere Informationen zum Verweisen auf Dateien finden Sie unterReferenzieren von Dateien in einem Artefakt.

Actions: BuildActionE: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ART7 Files: - build-output/file7.txt BuildActionF: Identifier: aws/build@v1 Inputs: Artifacts: - ART7 Configuration: Steps: - run: cd build-output && cat file7.txt

Beispiel: Verweisen auf eine Datei in einem Artefakt, wenn a vorhanden ist WorkflowSource

Das folgende Beispiel zeigt, wie Sie ein Artefakt mit dem Namen ART8 in BuildActionG ausgeben und dann auf file8.txt (in ArtefaktART8) in BuildActionH (unter) verweisen. Steps

Beachten Sie, dass für die Referenz das Präfix für den $CATALYST_SOURCE_DIR_ Artefaktnamen erforderlich ist, wie in. Beispiel: Referenzieren von Dateien in mehreren Artefakten Das liegt daran, dass unter Inputs (eine Quelle und ein Artefakt) mehrere Elemente angegeben sind. Sie benötigen also das Präfix, um anzugeben, wo nach der Datei gesucht werden soll.

Anmerkung

Weitere Informationen zum Verweisen auf Dateien finden Sie unter. Referenzieren von Dateien in einem Artefakt

Actions: BuildActionG: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ART8 Files: - build-output/file8.txt BuildActionH: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Artifacts: - ART8 Configuration: Steps: - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt