AWS BatchJobs als EventBridge Ziele - AWS Batch

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.

AWS BatchJobs als EventBridge Ziele

Amazon EventBridge liefert nahezu in Echtzeit einen Strom von Systemereignissen, der Änderungen in Amazon Web Services Services-Ressourcen beschreibt.. In der Regel sind inAWS Batch Amazon Elastic Container Service, Amazon Elastic Kubernetes Service undAWS Fargate Jobs als EventBridge Ziele verfügbar. Mithilfe einfacher Regeln können Sie Ereignisse abgleichen undAWS Batch Jobs als Antwort darauf einreichen. Weitere Informationen finden Sie unter Was ist EventBridge? im EventBridge Amazon-Benutzerhandbuch.

Sie können ihn auch verwenden EventBridge , um automatisierte Aktionen, die zu bestimmten Zeitpunkten ausgeführt werden, mithilfe von Ausdrücken zu planencron oder zu bewerten. Weitere Informationen finden Sie im EventBridge Amazon-Benutzerhandbuch unter Eine EventBridge Amazon-Regel erstellen, die nach einem Zeitplan ausgeführt wird.

Zu den häufigsten Anwendungsfällen fürAWS Batch Jobs als EventBridge Ziel gehören die folgenden Anwendungsfälle:

  • Ein geplanter Job wird so erstellt, dass er in regelmäßigen Zeitintervallen ausgeführt wird. Eincron Job findet beispielsweise nur zu Zeiten mit geringer Auslastung statt, wenn Amazon EC2 Spot-Instances günstiger sind.

  • EinAWS Batch Job wird als Antwort auf einen API-Vorgang ausgeführt, der angemeldet ist CloudTrail. Beispielsweise wird ein Job immer dann gesendet, wenn ein Objekt in einen bestimmten Amazon S3 S3-Bucket hochgeladen wird. Jedes Mal, wenn dies geschieht, übergibt der EventBridge Eingangstransformator den Bucket- und Schlüsselnamen des Objekts anAWS Batch Parameter.

    Anmerkung

    In diesem Szenario müssen sich alle zugehörigenAWS Ressourcen in derselben -Region befinden. Dazu gehören Ressourcen wie der Amazon S3 S3-Bucket, die EventBridge Regel und CloudTrail Protokolle.

Bevor SieAWS Batch Jobs mit EventBridge Regeln und Zielen verwenden können, benötigt der EventBridge -Service mehrere Berechtigungen, umAWS Batch in Ihrem Namen Jobs auszuführen. Wenn Sie in der EventBridge Konsole eine Regel erstellen, die einenAWS Batch Job als Ziel angibt, haben Sie die Möglichkeit, diese Rolle zu erstellen. Weitere Informationen über die erforderlichen Service-Prinzipal- und IAM;-Berechtigungen für dies Rolle finden Sie unter EventBridge IAM-Rolle.

Einen geplantenAWS Batch Job erstellen

Das folgende Verfahren zeigt, wie Sie einen geplantenAWS Batch Job und die erforderliche EventBridge IAM-Rolle erstellen.

Um einen geplantenAWS Batch Job zu erstellen mit EventBridge
Anmerkung

Dieses Verfahren funktioniert bei allenAWS Batch Amazon ECS-, Amazon EKS- undAWS Fargate-Jobs.

  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Erstellen Sie mithilfe der folgenden Werte eine EventBridge Regel, die einenAWS Batch Job plant:

    • Wählen Sie unter Rule type (Regeltyp) die Option Schedule (Zeitplan) aus.

    • Gehen Sie bei Schedule pattern (Zeitplanmuster) wie folgt vor:

      • Um den Zeitplan mithilfe einescron Ausdrucks zu definieren, wählen Sie A fine-grained schedule that runs at a specific time, such as 8:00 a.m. PST on on the first Monday of every month (Detaillierter Zeitplan, der zu einem bestimmten Zeitpunkt (z.cron B. 8:00 Uhr)

      • Um den Zeitplan mithilfe eines Rate-Ausdrucks zu definieren, wählen Sie A schedule that runs at a regular rate, such as every 10 minutes (Zeitplan, der mit einer regulären Rate läuft, z. B. alle 10 Minuten) und geben Sie den Rate-Ausdruck ein.

    • Bei Target types (Zieltypen) wählen Sie AWS-Service aus.

    • Wählen Sie unter Ziel auswählen die Option Batch-Job-Warteschlange aus und füllen Sie die folgenden Felder entsprechend aus:

      • Job queue (Auftragswarteschlange): Geben Sie den Amazon-Ressourcennamen (ARN) der Auftragswarteschlange ein, in der Ihr Auftrag eingeplant werden soll.

      • Auftragsdefinition: Geben Sie den Namen und die Revision oder den vollständigen ARN der Auftragsdefinition ein, die für Ihren Auftrag verwendet werden sollen.

      • Job name (Auftragsname): Geben Sie einen Namen für Ihren Auftrag ein.

      • Array-Größe: (Optional) Geben Sie eine Array-Größe für Ihren Auftrag ein, um mehrere Kopien davon auszuführen. Weitere Informationen finden Sie unter Array-Aufträge.

      • Auftragsversuche: (Optional) Geben Sie an, wie oft die Ausführung Ihres Auftrags versucht werden soll, bevor festgelegt wird, dass er fehlgeschlagen ist. Weitere Informationen finden Sie unter Automatisierte Auftragswiederholungen.

    • Bei Batch job queue -Zieltypen EventBridge benötigt dieses eine Berechtigung zum Senden von Ereignissen an das Ziel. EventBridge kann die IAM-Rolle erstellen, die zum Ausführen Ihrer Regel erforderlich ist. Führen Sie einen der folgenden Schritte aus:

      • Um automatisch eine IAM-Rolle zu erstellen, wählen Sie Create a new role for this specific resource (Eine neue Rolle für diese spezifische Ressource erstellen).

      • Wenn Sie eine zuvor erstellte IAM-Rolle verwenden möchten, wählen Sie Use existing role (Vorhandene Rolle verwenden).

      Weitere Informationen finden Sie unter EventBridge IAM-Rolle.

    Einzelheiten zum Erstellen von Regeln finden Sie unter Erstellen einer EventBridge Amazon-Regel, die nach einem Zeitplan ausgeführt wird, im EventBridge Amazon-Benutzerhandbuch.

Weitergabe von Ereignisinformationen an einAWS Batch Ziel mithilfe des EventBridge Eingangstransformators

Sie können den EventBridge Eingangstransformator verwenden, um EreignisinformationenAWS Batch an eine Auftragseingabe weiterzuleiten. Dies kann besonders nützlich sein, wenn Sie aufgrund andererAWS Ereignisinformationen Jobs aufrufen. Ein Beispiel ist ein Objekt-Upload in einen Amazon S3 S3-Bucket Sie können im Befehl des Containers auch eine Jobdefinition mit Parameterersatzwerten verwenden. Der EventBridge Eingangstransformator kann die Parameterwerte basierend auf den Ereignisdaten bereitstellen. Die folgende Jobdefinition erwartet beispielsweise, dass Parameterwerte mit den Namen S3Bucket und S3Key angezeigt werden.

Anmerkung

Das folgende Beispiel ist fürAWS Batch Amazon ECS-Jobs.

{ "jobDefinitionName": "echo-parameters", "containerProperties": { "image": "busybox", "resourceRequirements": [ { "type": "MEMORY", "value": "2000" }, { "type": "VCPU", "value": "2" } ], "command": [ "echo", "Ref::S3bucket", "Ref::S3key" ] } }

Anschließend erstellen Sie einfach einAWS Batch Ereignisziel, das Informationen aus dem Ereignis, das es startet, analysiert und in einparameters Objekt umwandelt. Wenn der Job ausgeführt wird, werden die Parameter des Triggerereignisses an den Befehl des Job-Containers übergeben.

Anmerkung

In diesem Szenario müssen sich alleAWS Ressourcen (wie Amazon S3 S3-Buckets, EventBridge Regeln und CloudTrail Protokolle) in derselben Region befinden.

So erstellen Sie eine AWS Batch-Ziel, das den Input Transformer verwendet
  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Wählen Sie im Navigationsbereich Rules aus.

  3. Wählen Sie Create rule (Regel erstellen).

  4. Geben Sie einen Namen und eine Beschreibung für die Regel ein.

    Eine Regel darf nicht denselben Namen wie eine andere Regel in derselben Region und auf demselben Event Bus haben.

  5. Wählen Sie als Event bus (Event Bus) den Event Bus aus, den Sie dieser Regel zuordnen möchten. Wenn Sie möchten, dass diese Regel mit Ereignissen aus Ihrem eigenen Konto übereinstimmt, wählen Sie AWS-Standard-Event-Bus aus. Wenn einAWS-Service in Ihrem Konto ein Ereignis ausgibt, wird dieses stets an den Standardereignisbus Ihres Kontos weitergeleitet.

  6. Bei Rule type (Regeltyp) wählen Sie Rule with an event pattern (Regel mit einem Ereignismuster) aus.

  7. Wählen Sie Next (Weiter).

  8. Wählen Sie unter Event source (Ereignisquelle) AWS events (Ereignisse) aus.

  9. Konstruieren Sie für das Ereignismuster die Regel so, dass sie Ihren Anwendungsanforderungen entspricht.

  10. Wählen Sie Next (Weiter).

  11. Für Target types (Zieltypen), wählen Sie AWS-Service aus.

  12. Wählen Sie unter Ziel auswählen die Option Batch-Auftragswarteschlange aus und geben Sie dann die Auftragswarteschlange, die Jobdefinition und den Jobnamen an, die für die Jobs verwendet werden sollen, die durch diese Regel aufgerufen werden.

  13. Wählen Sie eine bestehende EventBridge IAM-Rolle aus, die Sie für Ihren Job verwenden möchten, oder erstellen Sie eine neue Rolle für diese spezifische Ressource, um eine neue zu erstellen. Weitere Informationen finden Sie unter EventBridge IAM-Rolle.

  14. Wählen Sie im Abschnitt Additional settings (Zusätzliche Einstellungen) unter Configure target input (Zieleingabe konfigurieren) die Option Input Transformer (Eingabetransformator).

  15. Wählen Sie Configure input transformer (Eingabetransformator konfigurieren).

  16. Geben Sie im Abschnitt Target input transformer (Zieleingabetransformator) für Input path (Eingabepfad) die Werte an, die aus dem auslösenden Ereignis analysiert werden sollen. Um beispielsweise den Bucket und den Schlüsselnamen eines Amazon S3 S3-Ereignisses zu analysieren, verwenden Sie den folgenden JSON.

    { "S3BucketValue":"$.detail.bucket.name", "S3KeyValue":"$.detail.object.key" }
  17. Erstellen Sie für Template dieParameters Struktur, die an denAWS Batch Job übergeben werden soll. Diese Parameter werden durch die Platzhalter Ref: :S3Bucket und Ref: :S3Key im Befehl des Jobcontainers ersetzt, wenn der Job ausgeführt wird.

    { "Parameters" : { "S3bucket": <S3BucketValue>, "S3key": <S3KeyValue> } }

    Sie können die ContainerOverridesStruktur auch aktualisieren, um sie an Aktualisierungsbefehle, Umgebungsvariablen und andere Einstellungen zu übergeben.

    { "Parameters" : { "S3bucket": <S3BucketValue> }, "ContainerOverrides" : { "Command": [ "echo", "Ref::S3bucket" ] } }
    Anmerkung

    Die Namen der Mitglieder der ContainerOverridesStruktur müssen groß geschrieben werden. Verwenden Sie beispielsweiseCommand undResourceRequirements, nichtcommand oderresourceRequirements.

  18. Wählen Sie Confirm (Bestätigen).

  19. Wählen Sie Next (Weiter).

  20. (Optional) Geben Sie ein oder mehrere Tags für die Regel ein. Weitere Informationen finden Sie unter EventBridgeAmazon-Tags im EventBridge Amazon-Benutzerhandbuch.

  21. Wählen Sie Next (Weiter).

  22. Überprüfen Sie die Details der Regel und wählen Sie dann Create rule (Regel erstellen) aus.