AWS AppSync Ziele für Regeln in Amazon EventBridge - Amazon EventBridge

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 AppSync Ziele für Regeln in Amazon EventBridge

AWS AppSync ermöglicht es Entwicklern, ihre Anwendungen und Dienste mit Daten und Ereignissen mit sicherem, serverlosem und leistungsstarkem GraphQL und Pub/Sub zu verbinden. APIs Mit AWS AppSync können Sie Datenaktualisierungen in Echtzeit für Ihre Anwendungen mit GraphQL-Mutationen veröffentlichen. EventBridge unterstützt das Aufrufen einer gültigen GraphQL-Mutationsoperation für übereinstimmende Ereignisse. Wenn Sie eine AWS AppSync API-Mutation als Ziel angeben, AWS AppSync verarbeitet das Ereignis über einen Mutationsvorgang, der dann Abonnements auslösen kann, die mit der Mutation verknüpft sind.

Anmerkung

EventBridge unterstützt AWS AppSync öffentliches GraphQL APIs. EventBridge unterstützt AWS AppSync Private APIs derzeit nicht.

Sie können ein AWS AppSync GraphQL-API-Ziel für die folgenden Anwendungsfälle verwenden:

  • Um Ereignisdaten in Ihre konfigurierten Datenquellen zu übertragen, zu transformieren und zu speichern.

  • Um Benachrichtigungen in Echtzeit an verbundene Anwendungs-Clients zu senden.

Anmerkung

AWS AppSync Ziele unterstützen nur den Aufruf von AWS AppSync GraphQL APIs mit dem AWS_IAMAutorisierungstyp.

Weitere Informationen zu AWS AppSync GraphQL APIs finden Sie unter GraphQL und AWS AppSync Architektur im AWS AppSync Developer Guide.

Um mithilfe der Konsole ein AWS AppSync Ziel für eine EventBridge Regel anzugeben
  1. Erstellen oder bearbeiten Sie die Regel.

  2. Geben Sie unter Ziel das Ziel an, indem Sie AWS -Service und dann AWS AppSync auswählen.

  3. Geben Sie die zu analysierende und auszuführende Mutationsoperation sowie den Auswahlsatz an.

    • Wählen Sie die AWS AppSync API und dann die aufzurufende GraphQL-API-Mutation aus.

    • Wählen Sie unter Parameter und Auswahlsatz konfigurieren aus, ob Sie einen Auswahlsatz mithilfe der Schlüssel-Wert-Zuordnung oder eines Eingabetransformators erstellen möchten.

      Key-value mapping

      So verwenden Sie die Schlüssel-Wert-Zuordnung zum Erstellen Ihres Auswahlsatzes:

      • Geben Sie Variablen für die API-Parameter an. Jede Variable kann entweder ein statischer Wert oder ein dynamischer JSON-Pfadausdruck für die Ereignisnutzlast sein.

      • Wählen Sie unter Auswahlsatz die Variablen aus, die Sie in die Antwort aufnehmen möchten.

      Input transformer

      So verwenden Sie einen Eingabetransformator zum Erstellen Ihres Auswahlsatzes:

      • Geben Sie einen Eingabepfad an, der die zu verwendenden Variablen definiert.

      • Geben Sie eine Eingabevorlage an, um die Informationen zu definieren und zu formatieren, die an das Ziel übergeben werden sollen.

      Weitere Informationen finden Sie unter Konfiguration eines Eingangstransformators beim Erstellen einer Regel in EventBridge.

  4. Wählen Sie für Ausführungsrolle aus, ob Sie eine neue Rolle erstellen oder eine vorhandene Rolle verwenden möchten.

  5. Schließen Sie die Erstellung oder Bearbeitung der Regel ab.

Beispiel: AWS AppSync Ziele für Amazon EventBridge

Im folgenden Beispiel erfahren Sie, wie Sie ein AWS AppSync Ziel für eine EventBridge Regel angeben, einschließlich der Definition einer Eingabetransformation zur Formatierung von Ereignissen für die Übermittlung.

Angenommen, Sie haben eine AWS AppSync GraphQL-APIEc2EventAPI, definiert durch das folgende Schema:

type Event { id: ID! statusCode: String instanceId: String } type Mutation { pushEvent(id: ID!, statusCode: String!, instanceId: String): Event } type Query { listEvents: [Event] } type Subscription { subscribeToEvent(id: ID, statusCode: String, instanceId: String): Event @aws_subscribe(mutations: ["pushEvent"]) }

Anwendungs-Clients, die diese API verwenden, können das Abonnement subscribeToEvent abonnieren, das durch die pushEvent-Mutation ausgelöst wird.

Sie können eine EventBridge Regel mit einem Ziel erstellen, das Ereignisse über die pushEvent Mutation an die AppSync API sendet. Wenn die Mutation aufgerufen wird, erhält jeder abonnierte Client das Ereignis.

Um diese API als Ziel für eine EventBridge Regel anzugeben, gehen Sie wie folgt vor:

  1. Legen Sie als Amazon-Ressourcenname (ARN) des Regelziels den GraphQL-Endpunkt-ARN der Ec2EventAPI-API fest.

  2. Geben Sie die Mutations-GraphQL-Operation als Zielparameter an:

    mutation CreatePushEvent($id: ID!, $statusCode: String, $instanceId: String) { pushEvent(id: $input, statusCode: $statusCode, instanceId: $instanceId) { id statusCode instanceId } }

    Ihr Mutationsauswahlsatz muss alle Felder enthalten, die Sie in Ihrem GraphQL-Abonnement abonnieren möchten.

  3. Konfigurieren Sie einen Eingabetransformator, um anzugeben, wie Daten aus übereinstimmenden Ereignissen in Ihrer Operation verwendet werden.

    Angenommen, Sie haben das Beispielereignis “EC2 Instance Launch Successful” ausgewählt:

    { "version": "0", "id": "3e3c153a-8339-4e30-8c35-687ebef853fe", "detail-type": "EC2 Instance Launch Successful", "source": "aws.autoscaling", "account": "123456789012", "time": "2015-11-11T21:31:47Z", "region": "us-east-1", "resources": ["arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:eb56d16b-bbf0-401d-b893-d5978ed4a025:autoScalingGroupName/sampleLuanchSucASG", "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f"], "detail": { "StatusCode": "InProgress", "AutoScalingGroupName": "sampleLuanchSucASG", "ActivityId": "9cabb81f-42de-417d-8aa7-ce16bf026590", "Details": { "Availability Zone": "us-east-1b", "Subnet ID": "subnet-95bfcebe" }, "RequestId": "9cabb81f-42de-417d-8aa7-ce16bf026590", "EndTime": "2015-11-11T21:31:47.208Z", "EC2InstanceId": "i-b188560f", "StartTime": "2015-11-11T21:31:13.671Z", "Cause": "At 2015-11-11T21:31:10Z a user request created an AutoScalingGroup changing the desired capacity from 0 to 1. At 2015-11-11T21:31:11Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1." } }

    Sie können die folgenden Variablen für die Verwendung in Ihrer Vorlage definieren, indem Sie den Eingabepfad des Zieleingabetransformators verwenden:

    { "id": "$.id", "statusCode": "$.detail.StatusCode", "EC2InstanceId": "$.detail.EC2InstanceId" }

    Verfassen Sie die Vorlage für den Eingangstransformator, EventBridge um die Variablen zu definieren, die an die AWS AppSync Mutationsoperation übergeben werden. Die Vorlage muss als JSON ausgewertet werden. Ausgehend von unserem Eingabepfad können Sie die folgende Vorlage erstellen:

    { "id": <id>, "statusCode": <statusCode>, "instanceId": <EC2InstanceId> }