Esecuzione di automazioni sulla base di eventi EventBridge - AWS Systems Manager

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à.

Esecuzione di automazioni sulla base di eventi EventBridge

È possibile avviare un'automazione specificando un runbook come destinazione di un evento Amazon EventBridge. È possibile avviare le automazioni in base a una pianificazione oppure quando si verifica un determinato evento di sistema di AWS. Ad esempio, supponiamo di aver creato un runbook denominato BootStrapInstances che installa software su un'istanza all'avvio di un'istanza. Per specificare il runbook BootStrapInstances (e la corrispondente automazione) come destinazione di un evento EventBridge, devi prima creare una nuova regola EventBridge. Ecco un esempio di regola: Service name (Nome servizio): EC2, Event Type (Tipo di evento): EC2 Instance State-change Notification (Notifica variazione stato istanza EC2), Specific state(s) (Stati specifici): running (in esecuzione), Any instance (Qualsiasi istanza). Sarà quindi possibile utilizzare la procedura seguente per specificare il runbook BootStrapInstances come destinazione dell'evento utilizzando la console di EventBridge e AWS Command Line Interface (AWS CLI). All'avvio di una nuova istanza, il sistema eseguirà l'automazione e installerà il software.

Per ulteriori informazioni sulla creazione di runbook, consulta Creazione di runbook personalizzati.

Creazione di un evento EventBridge che utilizza un runbook (console)

Usa la procedura seguente per configurare un runbook come destinazione di un evento EventBridge.

Per configurare un runbook come destinazione di una regola di evento EventBridge
  1. Apri la console Amazon EventBridge all'indirizzo https://console.aws.amazon.com/events/.

  2. Nel pannello di navigazione, scegli Regole.

  3. Scegli Create rule (Crea regola).

  4. Inserire un nome e una descrizione per la regola.

    Una regola non può avere lo stesso nome di un'altra regola nella stessa regione e sullo stesso router di eventi.

  5. Per Select event bus (Seleziona bus di eventi), scegli il bus di eventi che desideri associare a questa regola. Se desideri che questa regola risponda ad eventi corrispondenti provenienti dal tuo Account AWS, seleziona default event bus (Bus di eventi predefiniti). Quando un Servizio AWS nell'account emette un evento, passa sempre al bus di eventi predefinito dell'account.

  6. Scegli come attivare la regola.

    Per creare una regola basata su... Esegui questa operazione…

    Evento

    1. Per Rule type (Tipo di regola), scegli Rule with an event pattern (Regola con un modello di eventi).

    2. Seleziona Next (Successivo).

    3. Per Event source (Origine evento), scegli AWS events or EventBridge partner events (Eventi o eventi di partner EventBridge).

    4. Nella sezione Event pattern (Modello di eventi), procedi come segue:

      • Per utilizzare un modello per creare lo schema di eventi, scegli Modulo del modello di eventi, quindi scegli Origine evento, Servizio AWS e Tipo di evento. Se scegli All Events (Tutti gli eventi), tutti gli eventi emessi da Servizio AWS corrisponderanno alla regola.

        Per personalizzare il modello, scegli Custom pattern (JSON editor) (Modello personalizzato [editor JSON]) e apporta le modifiche.

      • Per utilizzare un modello di eventi personalizzato, scegli Custom pattern (JSON editor) (Modello personalizzato [editor JSON]) e crea il tuo modello di evento.

    Pianificazione
    1. Per Rule type (Tipo di regola), scegli Schedule (Pianifica).

    2. Seleziona Next (Successivo).

    3. Per Schedule pattern (Modello di pianificazione), esegui una delle seguenti operazioni:

      • Per utilizzare un'espressione cron per definire la pianificazione, scegli A fine-grained schedule that runs at a specific time, such as 8:00 a.m. (Una pianificazione granulare che viene eseguita in un orario specifico, ad esempio le 8:00). PST on the first Monday of every month (PST il primo lunedì di ogni mese) e inserisci l'espressione cron.

      • Per utilizzare un'espressione di frequenza per definire la pianificazione, scegli A schedule that runs at a regular rate, such as every 10 minutes (Una pianificazione che viene eseguita con una frequenza regolare, ad esempio ogni 10 minuti) e inserisci l'espressione di frequenza.

  7. Seleziona Next (Successivo).

  8. Per Target types (Tipi di destinazione), scegli AWS service (Servizio ).

  9. Per Seleziona target (Seleziona destinazione), scegli Systems Manager Automation (Automazione Manager di Sistema).

  10. Per Document (Documento), scegliere un runbook da usare quando viene chiamata la destinazione.

  11. Nella sezione Configure automation parameter(s) (Configura parametri automazione) non modificare i valori predefiniti dei parametri (se disponibili) oppure inserisci i valori desiderati.

    Nota

    Per creare una destinazione, è necessario specificare un valore per ciascun parametro obbligatorio. In caso contrario, la regola verrà creata dal sistema ma non verrà eseguita.

  12. Per molti tipi di destinazione, EventBridge necessita di autorizzazioni per l'invio degli eventi alla destinazione. In questi casi, EventBridge è in grado di creare il ruolo IAM necessario per l'esecuzione della regola. Esegui una di queste operazioni:

    • Per creare un ruolo IAM automaticamente, seleziona Crea un nuovo ruolo per questa risorsa specifica.

    • Per utilizzare un ruolo IAM creato in precedenza, seleziona Use existing role (Utilizza un ruolo esistente) e seleziona il ruolo esistente dal menu a discesa. Si noti che si potrebbe dover aggiornare la policy di fiducia affinché il ruolo IAM includa EventBridge. Di seguito è riportato un esempio:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  13. Seleziona Next (Successivo).

  14. (Facoltativo) Inserire uno o più tag per la regola. Per ulteriori informazioni, consulta Assegnazione di tag alle Your Amazon EventBridge Resources nella Guida per l'utente di Amazon EventBridge.

  15. Seleziona Next (Successivo).

  16. Rivedi i dettagli della regola e scegli Create rule (Crea regola).

Creazione di un evento EventBridge che utilizza un runbook (riga di comando)

La procedura seguente descrive come utilizzare AWS CLI (su Linux o Windows) o AWS Tools for PowerShell per creare una regola di evento EventBridge e configurare un runbook come la destinazione.

Per configurare un runbook come destinazione di una regola di evento EventBridge
  1. Se non lo hai ancora fatto, installa e configura AWS CLI o AWS Tools for PowerShell.

    Per informazioni, consulta le pagine Installazione o aggiornamento della versione più recente di AWS CLI e Installazione di AWS Tools for PowerShell.

  2. Crea un comando per specificare una nuova regola di evento EventBridge. Sostituisci ciascun segnaposto delle risorse di esempio con le tue informazioni.

    Attivazioni basate su una pianificazione

    Linux & macOS
    aws events put-rule \ --name "rule name" \ --schedule-expression "cron or rate expression"
    Windows
    aws events put-rule ^ --name "rule name" ^ --schedule-expression "cron or rate expression"
    PowerShell
    Write-CWERule ` -Name "rule name" ` -ScheduleExpression "cron or rate expression"

    L'esempio seguente crea una regola di evento EventBridge che viene attivata ogni giorno alle 9:00 (UTC).

    Linux & macOS
    aws events put-rule \ --name "DailyAutomationRule" \ --schedule-expression "cron(0 9 * * ? *)"
    Windows
    aws events put-rule ^ --name "DailyAutomationRule" ^ --schedule-expression "cron(0 9 * * ? *)"
    PowerShell
    Write-CWERule ` -Name "DailyAutomationRule" ` -ScheduleExpression "cron(0 9 * * ? *)"

    Attivazioni basate su un evento

    Linux & macOS
    aws events put-rule \ --name "rule name" \ --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
    Windows
    aws events put-rule ^ --name "rule name" ^ --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
    PowerShell
    Write-CWERule ` -Name "rule name" ` -EventPattern '{"source":["aws.service"],"detail-type":["service event detail type"]}'

    L'esempio seguente crea una regola di evento EventBridge che viene attivata quando cambia lo stato di qualsiasi istanza di EC2 nella regione.

    Linux & macOS
    aws events put-rule \ --name "EC2InstanceStateChanges" \ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
    Windows
    aws events put-rule ^ --name "EC2InstanceStateChanges" ^ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
    PowerShell
    Write-CWERule ` -Name "EC2InstanceStateChanges" ` -EventPattern '{"source":["aws.ec2"],"detail-type":["EC2 Instance State-change Notification"]}'

    Il comando restituisce i dettagli per la nuova regola EventBridge in modo simile a quanto segue.

    Linux & macOS
    {
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
    }
    Windows
    {
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
    }
    PowerShell
    arn:aws:events:us-east-1:123456789012:rule/EC2InstanceStateChanges
  3. Crea un comando per specificare un runbook come una destinazione della regola di evento EventBridge creata nella fase 2. Sostituisci ciascun segnaposto delle risorse di esempio con le tue informazioni.

    Linux & macOS
    aws events put-targets \ --rule rule name \ --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"input parameter\":[\"value\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
    Windows
    aws events put-targets ^ --rule rule name ^ --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"input parameter\":[\"value\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
    PowerShell
    $Target = New-Object Amazon.CloudWatchEvents.Model.Target $Target.Id = "target ID" $Target.Arn = "arn:aws:ssm:region:account ID:automation-definition/runbook name" $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/EventBridge service role" $Target.Input = '{"input parameter":["value"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}' Write-CWETarget ` -Rule "rule name" ` -Target $Target

    L'esempio seguente crea una destinazione evento EventBridge che avvia l'ID di istanza specificato utilizzando il runbook AWS-StartEC2Instance.

    Linux & macOS
    aws events put-targets \ --rule DailyAutomationRule \ --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
    Windows
    aws events put-targets ^ --rule DailyAutomationRule ^ --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
    PowerShell
    $Target = New-Object Amazon.CloudWatchEvents.Model.Target $Target.Id = "Target1" $Target.Arn = "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance" $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520" $Target.Input = '{"InstanceId":["i-02573cafcfEXAMPLE"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}' Write-CWETarget ` -Rule "DailyAutomationRule" ` -Target $Target

    Il sistema restituisce informazioni simili alle seguenti.

    Linux & macOS
    {
    "FailedEntries": [],
    "FailedEntryCount": 0
    }
    Windows
    {
    "FailedEntries": [],
    "FailedEntryCount": 0
    }
    PowerShell

    Se il comando viene eseguito correttamente per PowerShell, non viene generato alcun output.