Sammeln Sie Amazon S3 S3-Bucket-Informationen mithilfe von AWS SDK-Serviceintegrationen - AWS Step Functions

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.

Sammeln Sie Amazon S3 S3-Bucket-Informationen mithilfe von AWS SDK-Serviceintegrationen

Dieses Tutorial zeigt Ihnen, wie Sie eine AWS SDK-Integration mit Amazon Simple Storage Service durchführen. Der Zustandsmaschine, den Sie in diesem Tutorial erstellen, sammelt Informationen über Ihre Amazon S3 S3-Buckets und listet dann Ihre Buckets zusammen mit Versionsinformationen für jeden Bucket in der aktuellen Region auf.

Schritt 1: Erstellen Sie den State Machine

Mithilfe der Step Functions Functions-Konsole erstellen Sie eine Zustandsmaschine, die einen Task Status enthält, um alle Amazon S3 S3-Buckets im aktuellen Konto und in der aktuellen Region aufzulisten. Anschließend fügen Sie einen weiteren Task Status hinzu, der die HeadBucket API aufruft, um zu überprüfen, ob der zurückgegebene Bucket in der aktuellen Region zugänglich ist. Wenn auf den Bucket nicht zugegriffen werden kann, gibt der HeadBucket API-Aufruf den S3.S3Exception Fehler zurück. Sie fügen einen Catch Block zum Abfangen dieser Ausnahme und einen Pass Status als Fallback-Status hinzu.

  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie Create State Machine.

  2. Wählen Sie im Dialogfeld Vorlage auswählen die Option Leer aus.

  3. Wählen Sie Select (Auswählen). Dadurch wird Workflow Studio in geöffnetEntwurfsmodus.

  4. Für dieses Tutorial schreiben Sie die Amazon States Language (ASL-) Definition Ihrer Zustandsmaschine in denCode-Editor. Wählen Sie dazu Code.

  5. Entfernen Sie den vorhandenen Standardcode und fügen Sie die folgende State-Machine-Definition ein.

    { "Comment": "A description of my state machine", "StartAt": "ListBuckets", "States": { "ListBuckets": { "Type": "Task", "Parameters": {}, "Resource": "arn:aws:states:::aws-sdk:s3:listBuckets", "Next": "Map" }, "Map": { "Type": "Map", "ItemsPath": "$.Buckets", "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "HeadBucket", "States": { "HeadBucket": { "Type": "Task", "ResultPath": null, "Parameters": { "Bucket.$": "$.Name" }, "Resource": "arn:aws:states:::aws-sdk:s3:headBucket", "Catch": [ { "ErrorEquals": [ "S3.S3Exception" ], "ResultPath": null, "Next": "Pass" } ], "Next": "GetBucketVersioning" }, "GetBucketVersioning": { "Type": "Task", "End": true, "Parameters": { "Bucket.$": "$.Name" }, "ResultPath": "$.BucketVersioningInfo", "Resource": "arn:aws:states:::aws-sdk:s3:getBucketVersioning" }, "Pass": { "Type": "Pass", "End": true, "Result": { "Status": "Unknown" }, "ResultPath": "$.BucketVersioningInfo" } } }, "End": true } } }
  6. Geben Sie einen Namen für Ihre Zustandsmaschine an. Wählen Sie dazu das Bearbeitungssymbol neben dem Standardnamen der Zustandsmaschine von MyStateMachine. Geben Sie dann unter State-Machine-Konfiguration einen Namen in das Feld State-Machine-Name ein.

    Geben Sie für dieses Tutorial den Namen Gather-S3-Bucket-Info-Standard ein.

  7. (Optional) Geben Sie unter State-Machine-Konfiguration weitere Workflow-Einstellungen an, z. B. den Zustandsmaschinentyp und seine Ausführungsrolle.

    Behalten Sie alle Standardauswahlen in den State-Machine-Einstellungen bei.

    Wenn Sie zuvor eine IAM-Rolle mit den richtigen Berechtigungen für Ihren Zustandsmaschine erstellt haben und diese verwenden möchten, wählen Sie unter Berechtigungen die Option Vorhandene Rolle auswählen und dann eine Rolle aus der Liste aus. Oder wählen Sie Einen Rollen-ARN eingeben aus und geben Sie dann einen ARN für diese IAM-Rolle ein.

  8. Wählen Sie im Dialogfeld „Rollenerstellung bestätigen“ die Option Bestätigen aus, um fortzufahren.

    Sie können auch Rolleneinstellungen anzeigen wählen, um zur State-Machine-Konfiguration zurückzukehren.

    Anmerkung

    Wenn Sie die von Step Functions erstellte IAM-Rolle löschen, kann Step Functions sie später nicht mehr neu erstellen. Ebenso kann Step Functions ihre ursprünglichen Einstellungen später nicht wiederherstellen, wenn Sie die Rolle ändern (z. B. indem Sie Step Functions aus den Principals in der IAM-Richtlinie entfernen).

    In Schritt 2 fügen Sie der State-Machine-Rolle die fehlenden Berechtigungen hinzu.

Schritt 2: Fügen Sie die erforderlichen IAM-Rollenberechtigungen hinzu

Um Informationen über die Amazon S3 S3-Buckets in Ihrer aktuellen Region zu sammeln, müssen Sie Ihrem State Machine die erforderlichen Berechtigungen für den Zugriff auf die Amazon S3 S3-Buckets gewähren.

  1. Wählen Sie auf der Zustandsmaschinenseite die IAM-Rolle ARN aus, um die Seite Rollen für die Zustandsmaschinenrolle zu öffnen.

  2. Wählen Sie Add permissions (Berechtigungen hinzufügen) und dann Create inline policy (Inline-Richtlinie erstellen) aus.

  3. Wählen Sie die Registerkarte JSON und fügen Sie dann die folgenden Berechtigungen in den JSON-Editor ein.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketVersioning" ], "Resource": "*" } ] }
  4. Wählen Sie Richtlinie prüfen.

  5. Geben Sie unter Review policy (Richtlinie prüfen) für den Richtlinien-Namen s3-bucket-permissions ein.

  6. Wählen Sie Richtlinie erstellen aus.

Schritt 3: Führen Sie eine Standard-State-Machine-Ausführung aus

  1. Wählen Sie auf der Seite Gather-S3-Bucket-Info-Standard die Option Ausführung starten aus.

  2. Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:

    1. (Optional) Um Ihre Ausführung zu identifizieren, können Sie im Feld Name einen Namen dafür angeben. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.

      Anmerkung

      Mit Step Functions können Sie Namen für Zustandsmaschinen, Ausführungen und Aktivitäten sowie Beschriftungen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit Amazon. CloudWatch Um sicherzustellen, dass Sie CloudWatch Messwerte verfolgen können, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

    2. Wählen Sie Start execution (Ausführung starten) aus.

    3. Die Step Functions Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite wird als Seite mit den Ausführungsdetails bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse im Verlauf der Ausführung oder nach deren Abschluss überprüfen.

      Um die Ausführungsergebnisse zu überprüfen, wählen Sie in der Diagrammansicht einzelne Status aus und wählen Sie dann die einzelnen Registerkarten im Schrittdetails Bereich, um die Details der einzelnen Status, einschließlich Eingabe, Ausgabe und Definition, anzuzeigen. Einzelheiten zu den Ausführungsinformationen, die Sie auf der Seite mit den Ausführungsdetails einsehen können, finden Sie unterSeite mit Ausführungsdetails – Schnittstellenübersicht.

Schritt 4: Führen Sie eine Express-State-Machine-Ausführung aus

  1. Erstellen Sie eine Express-Zustandsmaschine mithilfe der in Schritt 1 bereitgestellten Zustandsmaschinen-Definition. Stellen Sie sicher, dass Sie auch die erforderlichen IAM-Rollenberechtigungen angeben, wie in Schritt 2 beschrieben.

    Tipp

    Benennen Sie den Express-Zustandsmaschine alsGather-S3-Bucket-Info-Express, um ihn von dem zuvor erstellten Standardcomputer zu unterscheiden.

  2. Wählen Sie auf der Seite Gather-S3-Bucket-Info-Standard die Option Ausführung starten aus.

  3. Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:

    1. (Optional) Um Ihre Ausführung zu identifizieren, können Sie im Feld Name einen Namen dafür angeben. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.

      Anmerkung

      Mit Step Functions können Sie Namen für Zustandsmaschinen, Ausführungen und Aktivitäten sowie Beschriftungen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit Amazon. CloudWatch Um sicherzustellen, dass Sie CloudWatch Messwerte verfolgen können, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

    2. Wählen Sie Start execution (Ausführung starten) aus.

    3. Die Step Functions Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite wird als Seite mit den Ausführungsdetails bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse im Verlauf der Ausführung oder nach deren Abschluss überprüfen.

      Um die Ausführungsergebnisse zu überprüfen, wählen Sie in der Diagrammansicht einzelne Status aus und wählen Sie dann die einzelnen Registerkarten im Schrittdetails Bereich, um die Details der einzelnen Status, einschließlich Eingabe, Ausgabe und Definition, anzuzeigen. Einzelheiten zu den Ausführungsinformationen, die Sie auf der Seite mit den Ausführungsdetails einsehen können, finden Sie unterSeite mit Ausführungsdetails – Schnittstellenübersicht.