View a markdown version of this page

Obiettivi dei bus di eventi in Amazon EventBridge - Amazon EventBridge

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Obiettivi dei bus di eventi in Amazon EventBridge

Un obiettivo è una risorsa o un endpoint che EventBridge invia un evento quando l'evento corrisponde al modello di evento definito per una regola. La regola elabora i dati dell'evento e invia le informazioni pertinenti alla destinazione. Per fornire i dati degli eventi a un target, è EventBridge necessaria l'autorizzazione per accedere alla risorsa di destinazione. Puoi definire fino a cinque destinazioni per ciascuna regola.

Quando si aggiungono destinazioni a una regola e la regola viene eseguita subito dopo, le destinazioni nuove o aggiornate potrebbero non essere richiamate immediatamente. È necessario un breve periodo di tempo affinché vengano applicate le modifiche.

Obiettivi del bus di eventi disponibili nella EventBridge console

È possibile configurare i seguenti tipi di target per le regole nella EventBridge console:

Parametri di destinazione

Alcuni target non inviano le informazioni contenute nel payload dell'evento al target, ma trattano l'evento come un trigger per richiamare un'API specifica. EventBridge utilizza i parametri Target per determinare cosa succede con quel target. Questi sono i seguenti:

  • Destinazioni API

    I dati inviati a una destinazione API devono corrispondere alla struttura dell'API. Usa l'InputTransformeroggetto per assicurarti che i dati siano strutturati correttamente. Se desideri includere il payload dell'evento originale, fai riferimento a esso nel InputTransformer.

  • Gateway API

    I dati inviati a API Gateway devono corrispondere alla struttura dell'API. Usa l'InputTransformeroggetto per assicurarti che i dati siano strutturati correttamente. Se desideri includere il payload dell'evento originale, fai riferimento a esso nel InputTransformer.

  • Amazon EC2 Image Builder

  • Cluster Amazon Redshift Data API

    Utilizza RedshiftDataParameters.

  • Pipeline per la SageMaker creazione di modelli Amazon Runtime

    Utilizza SageMakerPipelineParameters.

  • Code Amazon SQS Fair e FIFO

    Consente SqsParameters di specificare il gruppo di messaggi da utilizzare come destinazione.

  • Run Command di Systems Manager

    Consente RunCommandParameters di specificare il documento SSM e le istanze di destinazione. Per ulteriori informazioni, vedere Systems Manager Run Command as a target.

Nota

EventBridge non supporta tutta la sintassi JSON Path e la valuta in fase di esecuzione. La sintassi supportata include:

  • notazione a punti (ad esempio, $.detail)

  • trattini

  • caratteri di sottolineatura

  • caratteri alfanumerici

  • indici array

  • caratteri jolly (*)

  • barre in avanti

Parametri di percorso dinamici

I parametri del percorso dinamico consentono di utilizzare la sintassi del percorso JSON per fare riferimento ai dati degli eventi in fase di esecuzione anziché ai valori statici.

È possibile utilizzare la sintassi del percorso JSON dinamico con i parametri di destinazione per specificare percorsi JSON anziché valori statici (ad esempio,). $.detail.state

Requisiti

L'intero valore deve essere un percorso JSON, non solo una parte di esso. Ad esempio:

  • ✓ Corretto: RedshiftParameters.Sql può essere $.detail.state

  • ✗ Errato: RedshiftParameters.Sql non può essere "SELECT * FROM $.detail.state"

EventBridge sostituisce questi percorsi in fase di esecuzione con i dati del payload dell'evento nel percorso specificato.

Limitazioni

I parametri del percorso dinamico non possono fare riferimento a valori nuovi o trasformati dalla trasformazione di input. La sintassi del percorso JSON è la stessa della sintassi di trasformazione dell'input. Per ulteriori informazioni, consulta Amazon EventBridge input transformation.

Parametri supportati

Puoi utilizzare la sintassi dinamica su tutti i campi stringa non enum di questi parametri:

Permissions

Per effettuare chiamate API sulle risorse che possiedi, sono EventBridge necessarie le autorizzazioni appropriate. Specifica un ruolo di esecuzione IAM utilizzando la EventBridge console o impostando il RoleARN parametro in PutTargets.

Ad esempio, la seguente politica definisce l'autorizzazione a inviare messaggi a una coda Amazon SQS:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": [ "arn:aws:sqs:us-east-1:111122223333:sqs-queue-name" ] } ] }

E la seguente politica di fiducia consente di EventBridge assumere il ruolo:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Puoi richiamare un endpoint Gateway API con l'autorizzazione IAM configurata, ma il ruolo è facoltativo se non hai configurato l'autorizzazione. Per ulteriori informazioni, consulta Amazon EventBridge e AWS Identity and Access Management.

Se un altro account si trova nella stessa Regione e ti ha concesso l'autorizzazione, puoi inviare eventi a quell'account.

Per ulteriori informazioni, consulta Invio e ricezione di eventi tra AWS account in Amazon EventBridge.

Se il tuo obiettivo, ad esempio una coda Amazon SQS, utilizza la crittografia AWS Key Management Service (AWS KMS), devi includere la seguente sezione nella tua policy chiave KMS:

{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

AWS Batch code di lavoro come obiettivi

Alcuni parametri AWS Batch submitJob possono essere configurati tramite. BatchParameters

Altri possono essere specificati nel payload di eventi. Se il payload dell'evento (passato o tramite InputTransformers) contiene le seguenti chiavi, queste vengono mappate ai parametri della submitJob richiesta:

  • ContainerOverrides: containerOverrides

    Nota

    Include solo comando, ambiente, memoria e vcpu

  • DependsOn: dependsOn

    Nota

    Include solo jobId

  • Parameters: parameters

CloudWatch Registra i gruppi come obiettivi

Se non si utilizza an InputTransformer con una destinazione CloudWatch Logs, il payload dell'evento viene utilizzato come messaggio di registro e l'origine dell'evento come timestamp. Se usi un InputTransformer, il modello deve essere:

{"timestamp":<timestamp>,"message":<message>}

EventBridge raggruppa in batch le voci inviate a un flusso di log; pertanto, EventBridge può inviare uno o più eventi a un flusso di log, a seconda del traffico.

CodeBuild progetti come obiettivi

EventBridge supporta build standard e batch come obiettivi.

Se si utilizza un trasformatore di ingresso per modellare l'evento sorgente in modo che corrisponda alla StartBuildRequest struttura prima che venga consegnato a un CodeBuild target, i parametri verranno mappati 1 a 1 e trasmessi a per impostazione predefinita. codeBuild.StartBuild

Per passare i parametri a codeBuild.StartBuildBatch invece, trasformate l'evento sorgente in modo che corrisponda alla StartBuildBatchRequest struttura e aggiungete la key/value coppia seguente alla radice dell'evento trasformato:

"buildType": "BATCH"

Le attività di Amazon ECS come obiettivi

Se lo usi InputTransformers per modellare l'evento di input su un Target in modo che corrisponda alla RunTask TaskOverride struttura di Amazon ECS, i parametri verranno mappati 1 a 1 e trasmessi a. ecs.RunTask

I piani di risposta di Incident Manager come obiettivi

Se l'evento corrispondente proviene da CloudWatch Alarms, i dettagli relativi alla modifica dello stato dell'allarme vengono inseriti nei dettagli di attivazione della StartIncidentRequest chiamata a Incident Manager.

Systems Manager: Esegui il comando come destinazione

Quando si specifica Systems Manager Run Command come destinazione, EventBridge chiama l'SendCommandAPI per conto dell'utente. Configura la destinazione utilizzando RunCommandParameters, che specifica il documento SSM da eseguire e le istanze o i tag di destinazione.

RunCommandParameterscontiene i seguenti campi:

  • RunCommandTargets— (Obbligatorio) Un elenco di coppie chiave-valore che specificano le istanze di destinazione. Usa Key set to InstanceIds con un elenco di ID di istanza o Key set to tag:tag-name with tag per indirizzare le istanze tramite tag. È possibile specificare da 1 a 5 destinazioni per i comandi di esecuzione.

Per specificare quale documento SSM eseguire e passargli i parametri, utilizzate il Input campo sull'Targetoggetto. Il Input valore deve essere un oggetto JSON con la seguente struttura:

{ "DocumentName": "document-name", "DocumentVersion": "version", "Parameters": { "parameter-key": ["parameter-value"] } }

Dove:

  • DocumentName— Il nome o l'ARN del documento SSM da eseguire.

  • DocumentVersion— (Facoltativo) La versione del documento. Se omesso, viene utilizzata la versione predefinita.

  • Parameters— (Facoltativo) Una mappa dei nomi dei parametri agli array di valori, che corrisponde ai parametri definiti nel documento SSM.

Ad esempio, il AWS CLI comando seguente crea una regola che esegue il AWS-RunShellScript documento su un'istanza specifica quando un EventBridge evento corrisponde:

aws events put-targets --rule "my-rule" --targets '[{ "Id": "ssm-target-1", "Arn": "arn:aws:ssm:region:account-id:document/AWS-RunShellScript", "RoleArn": "arn:aws:iam::account-id:role/EventBridgeSSMRole", "Input": "{\\"Parameters\\":{\\"commands\\":[\\"echo Hello from EventBridge\\"]}}", "RunCommandParameters": { "RunCommandTargets": [{ "Key": "InstanceIds", "Values": ["i-0123456789abcdef0"] }] } }]'
Nota

Il Input campo sull'Targetoggetto viene utilizzato per passare il nome e i parametri del documento a Systems Manager Run Command. Questo è diverso da InputTransformer, che trasforma il payload dell'evento. Quando si utilizza Systems Manager Run Command come destinazione, impostate i parametri del documento Input e specificate le istanze di destinazione in. RunCommandParameters

Le code di Amazon SQS come destinazioni

EventBridge non supporta l'utilizzo di code Amazon SQS crittografate con un. Chiave di proprietà di AWS Ciò include le destinazioni e le code Amazon SQS specificate come code di lettere morte per le destinazioni. Per ulteriori informazioni su, AWS consulta le chiavi possedute nella Chiavi di proprietà di AWS Developer Guide. AWS Key Management Service