Esegui operazioni automatizzate su larga scala - 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à.

Esegui operazioni automatizzate su larga scala

Con AWS Systems Manager Automation, puoi eseguire automazioni su una flotta di AWS risorse utilizzando obiettivi. Inoltre, è possibile controllare l'implementazione dell'automazione a livello di parco istanze specificando un valore di simultaneità e una soglia di errore. Le funzionalità di simultaneità e soglia di errore vengono definite collettivamente controlli di velocità. Il valore di simultaneità determina il numero di risorse autorizzate a eseguire l'automazione contemporaneamente. Automation permette di scegliere anche una modalità di simultaneità adattiva. La simultaneità adattiva dimensiona automaticamente la quota di automazione da 100 a 500 automazioni in esecuzione contemporaneamente. Una soglia di errore determina il numero di automazioni che possono avere esito negativo, superato il quale Systems Manager interrompe l'invio dell'automazione ad altre risorse.

Per ulteriori informazioni su simultaneità e soglie di errore, consulta Controlla le automazioni su larga scala. Per ulteriori informazioni sulle destinazioni, consulta Mappatura degli obiettivi per un'automazione.

Le procedure seguenti mostrano come attivare una simultaneità adattiva e come eseguire un‘automazione con destinazioni e controlli di velocità utilizzando la console di Systems Manager e AWS Command Line Interface (AWS CLI).

Esecuzione di un'automazione con destinazioni e controlli di velocità (console)

La procedura seguente descrive come utilizzare la console di Systems Manager per eseguire un'automazione con destinazioni e controlli di velocità.

Per eseguire un'automazione con destinazioni e controlli di velocità
  1. Apri la AWS Systems Manager console all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel pannello di navigazione, scegliere Automation (Automazione), quindi Execute automation (Esegui automazione).

  3. Nell'elenco Automation document (Documento di automazione), scegliere un runbook. Scegliete una o più opzioni nel riquadro Categorie di documenti per filtrare SSM i documenti in base al loro scopo. Per visualizzare un runbook di cui si è proprietari, scegliere la scheda Owned by me (Posseduta da me). Per visualizzare un runbook condiviso con l'account, scegliere la scheda Shared with me (Condiviso con me). Per visualizzare tutti i runbook, scegliere la scheda All documents (Tutti i documenti).

    Nota

    È possibile visualizzare informazioni su un runbook scegliendo il nome del runbook.

  4. Nella sezione Document details (Dettagli documento) verifica che l'opzione Document version (Versione documento) sia impostata sulla versione che si desidera eseguire. Il sistema include le seguenti opzioni di versione:

    • Versione predefinita al runtime: scegli questa opzione se il runbook di Automazione viene aggiornato periodicamente e viene assegnata una nuova versione predefinita.

    • Ultima versione al runtime: scegli questa opzione se il runbook di automazione viene aggiornato periodicamente e si desidera che venga eseguita la versione aggiornata più di recente.

    • 1 (predefinita): scegli questa opzione per eseguire la prima versione del documento (quella predefinita).

  5. Scegliere Next (Successivo).

  6. Nella sezione Execution Mode (Modalità di esecuzione) scegliere Rate Control (Controllo velocità). Per utilizzare le destinazioni e i controlli di velocità, è necessaria questa modalità o Multi-account and Region (Più account e regioni).

  7. Nella sezione Obiettivi, scegli come indirizzare le AWS risorse a cui desideri eseguire l'automazione. Queste opzioni sono obbligatorie.

    1. Utilizza l'elenco Parameter (Parametro) per scegliere un parametro. Le voci nell'elenco Parameter (Parametro) sono determinate dai parametri presenti nel runbook del servizio di automazione selezionato all'inizio di questa procedura. È necessario scegliere un parametro per definire il tipo di risorsa su cui viene eseguito il flusso di lavoro del servizio di automazione.

    2. Utilizza l'elenco Targets (Destinazioni) per scegliere come si desidera definire le risorse come destinazione.

      1. Se è stato deciso di definire le risorse come destinazione mediante i valori dei parametri, inserire il valore del parametro per il parametro selezionato nella sezione Input parameters (Parametri di input).

      2. Se hai scelto di assegnare le risorse utilizzando AWS Resource Groups, scegli il nome del gruppo dall'elenco Resource Group.

      3. Se è stato deciso di definire le risorse come destinazione mediante i tag, inserire la chiave e (facoltativamente) il valore del tag nei campi disponibili. Scegli Add (Aggiungi).

      4. Se desideri eseguire un runbook di automazione su tutte le istanze dell'attuale Account AWS e Regione AWS, scegli Tutte le istanze.

  8. Nella sezione Input parameters (Parametri di input) specifica i parametri obbligatori. Facoltativamente, puoi scegliere un ruolo di IAM servizio dall'elenco. AutomationAssumeRole

    Nota

    Potrebbe non essere necessario scegliere alcune delle opzioni nella sezione Input parameters (Parametri di input). Ciò è dovuto al fatto che le risorse sono state definite come destinazione mediante i tag o un gruppo di risorse. Ad esempio, se hai scelto il AWS-RestartEC2Instance runbook, non è necessario specificare o scegliere l'istanza IDs nella sezione Parametri di input. L'esecuzione dell'automazione individua le istanze da riavviare utilizzando i tag o i gruppi di risorse specificati.

  9. Utilizzate le opzioni nella sezione Rate control per limitare il numero di AWS risorse che possono eseguire l'automazione all'interno di ciascuna coppia Account-Area.

    Nella sezione Concurrency (Simultaneità) scegliere un'opzione:

    • Scegliere Targets (Destinazioni) per inserire un numero assoluto di destinazioni che possono eseguire contemporaneamente il flusso di lavoro del servizio di automazione.

    • Scegliere Percentage (Percentuale) per inserire la percentuale della serie di destinazioni che può eseguire contemporaneamente il flusso di lavoro del servizio di automazione.

  10. Nella sezione Error threshold (Soglia di errore). scegliere un'opzione:

    • Scegliere errors (errori) per inserire un numero assoluto di errori consentiti, raggiunto il quale il servizio di automazione interrompe l'invio del flusso di lavoro alle altre risorse.

    • Scegli percentage (percentuale) per inserire una percentuale di errori consentiti, raggiunta la quale il servizio di automazione interrompe l'invio del flusso di lavoro alle altre risorse.

  11. (Facoltativo) Scegliete un CloudWatch allarme da applicare all'automazione per il monitoraggio. Per collegare un CloudWatch allarme all'automazione, il IAM responsabile che avvia l'automazione deve disporre dell'autorizzazione per l'iam:createServiceLinkedRoleazione. Per ulteriori informazioni sugli CloudWatch allarmi, consulta Usare gli CloudWatch allarmi Amazon. Si noti che se l'allarme si attiva, l'automazione viene interrotta. Se lo utilizzi AWS CloudTrail, vedrai la API chiamata nelle tue tracce.

  12. Scegliere Execute (Esegui).

Per visualizzare le automazioni avviate dall'automazione del controllo della velocità, nel pannello di navigazione scegliere Automation (Automazione), quindi selezionare Show child automations (Mostra automazioni figlio).

Esecuzione di un'automazione con destinazioni e controlli di velocità (riga di comando)

La procedura seguente descrive come utilizzare AWS CLI (su Linux o Windows) o AWS Tools for PowerShell eseguire un'automazione con obiettivi e controlli di frequenza.

Per eseguire un'automazione con destinazioni e controlli di velocità
  1. Installa e configura il AWS CLI o il AWS Tools for PowerShell, se non l'hai già fatto.

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

  2. Eseguire il comando seguente per visualizzare un elenco di documenti.

    Linux & macOS
    aws ssm list-documents
    Windows
    aws ssm list-documents
    PowerShell
    Get-SSMDocumentList

    Prendi nota del nome del runbook che desideri utilizzare.

  3. Esegui il comando seguente per visualizzare i dettagli sul runbook. Sostituisci il runbook name con il nome del runbook di cui si desidera visualizzare i dettagli. Inoltre, prendi nota di un nome di parametro (ad esempio, InstanceId) che desideri utilizzare per l'opzione --target-parameter-name. Questo parametro determina il tipo di risorsa su cui viene eseguita l'automazione.

    Linux & macOS
    aws ssm describe-document \ --name runbook name
    Windows
    aws ssm describe-document ^ --name runbook name
    PowerShell
    Get-SSMDocumentDescription ` -Name runbook name
  4. Crea un comando che utilizza le opzioni relative alle destinazioni e ai controlli di velocità da eseguire. Sostituisci ciascuno example resource placeholder con le tue informazioni.

    Definizione di destinazioni mediante tag

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets Key=tag:key name,Values=value \ --target-parameter-name parameter name \ --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=tag:key name,Values=value ^ --target-parameter-name parameter name ^ --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "tag:key name" $Targets.Values = "value" Start-SSMAutomationExecution ` DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "parameter name" ` -Parameter @{"input parameter name"="input parameter value";"input parameter 2 name"="input parameter 2 value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Definizione di destinazioni mediante valori di parametro

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets Key=ParameterValues,Values=value,value 2,value 3 \ --target-parameter-name parameter name \ --parameters "input parameter name=input parameter value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=ParameterValues,Values=value,value 2,value 3 ^ --target-parameter-name parameter name ^ --parameters "input parameter name=input parameter value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ParameterValues" $Targets.Values = "value","value 2","value 3" Start-SSMAutomationExecution ` -DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "parameter name" ` -Parameter @{"input parameter name"="input parameter value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Targeting utilizzando AWS Resource Groups

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets Key=ResourceGroup,Values=Resource group nname \ --target-parameter-name parameter name \ --parameters "input parameter name=input parameter value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=ResourceGroup,Values=Resource group name ^ --target-parameter-name parameter name ^ --parameters "input parameter name=input parameter value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ResourceGroup" $Targets.Values = "Resource group name" Start-SSMAutomationExecution ` -DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "parameter name" ` -Parameter @{"input parameter name"="input parameter value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Targeting a tutte le EC2 istanze Amazon nella versione attuale e Account AWS Regione AWS

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets "Key=AWS::EC2::Instance,Values=*" \ --target-parameter-name instanceId \ --parameters "input parameter name=input parameter value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=AWS::EC2::Instance,Values=* ^ --target-parameter-name instanceId ^ --parameters "input parameter name=input parameter value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "AWS::EC2::Instance" $Targets.Values = "*" Start-SSMAutomationExecution ` -DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "instanceId" ` -Parameter @{"input parameter name"="input parameter value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Il comando restituisce un ID di esecuzione. Copia questo ID negli appunti. È possibile usare questo ID per visualizzare lo stato dell'automazione.

    Linux & macOS
    {
        "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
    }
    Windows
    {
        "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
    }
    PowerShell
    a4a3c0e9-7efd-462a-8594-01234EXAMPLE
  5. Esegui il comando seguente per visualizzare l'automazione. Sostituisci ciascuno automation execution ID con le tue informazioni.

    Linux & macOS
    aws ssm describe-automation-executions \ --filter Key=ExecutionId,Values=automation execution ID
    Windows
    aws ssm describe-automation-executions ^ --filter Key=ExecutionId,Values=automation execution ID
    PowerShell
    Get-SSMAutomationExecutionList | ` Where {$_.AutomationExecutionId -eq "automation execution ID"}
  6. Eseguire il comando seguente per visualizzare i dettagli relativi al progresso dell'automazione. Sostituisci ciascuno automation execution ID con le tue informazioni.

    Linux & macOS
    aws ssm get-automation-execution \ --automation-execution-id automation execution ID
    Windows
    aws ssm get-automation-execution ^ --automation-execution-id automation execution ID
    PowerShell
    Get-SSMAutomationExecution ` -AutomationExecutionId automation execution ID

    Il sistema restituisce informazioni simili alle seguenti.

    Linux & macOS
    {
        "AutomationExecution": {
            "StepExecutionsTruncated": false,
            "AutomationExecutionStatus": "Success",
            "MaxConcurrency": "1",
            "Parameters": {},
            "MaxErrors": "1",
            "Outputs": {},
            "DocumentName": "AWS-StopEC2Instance",
            "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
            "ResolvedTargets": {
                "ParameterValues": [
                    "i-02573cafcfEXAMPLE"
                ],
                "Truncated": false
            },
            "ExecutionEndTime": 1564681619.915,
            "Targets": [
                {
                    "Values": [
                        "DEV"
                    ],
                    "Key": "tag:ENV"
                }
            ],
            "DocumentVersion": "1",
            "ExecutionStartTime": 1564681576.09,
            "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
            "StepExecutions": [
                {
                    "Inputs": {
                        "InstanceId": "i-02573cafcfEXAMPLE"
                    },
                    "Outputs": {},
                    "StepName": "i-02573cafcfEXAMPLE",
                    "ExecutionEndTime": 1564681619.093,
                    "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                    "ExecutionStartTime": 1564681576.836,
                    "Action": "aws:executeAutomation",
                    "StepStatus": "Success"
                }
            ],
            "TargetParameterName": "InstanceId",
            "Mode": "Auto"
        }
    }
    Windows
    {
        "AutomationExecution": {
            "StepExecutionsTruncated": false,
            "AutomationExecutionStatus": "Success",
            "MaxConcurrency": "1",
            "Parameters": {},
            "MaxErrors": "1",
            "Outputs": {},
            "DocumentName": "AWS-StopEC2Instance",
            "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
            "ResolvedTargets": {
                "ParameterValues": [
                    "i-02573cafcfEXAMPLE"
                ],
                "Truncated": false
            },
            "ExecutionEndTime": 1564681619.915,
            "Targets": [
                {
                    "Values": [
                        "DEV"
                    ],
                    "Key": "tag:ENV"
                }
            ],
            "DocumentVersion": "1",
            "ExecutionStartTime": 1564681576.09,
            "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
            "StepExecutions": [
                {
                    "Inputs": {
                        "InstanceId": "i-02573cafcfEXAMPLE"
                    },
                    "Outputs": {},
                    "StepName": "i-02573cafcfEXAMPLE",
                    "ExecutionEndTime": 1564681619.093,
                    "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                    "ExecutionStartTime": 1564681576.836,
                    "Action": "aws:executeAutomation",
                    "StepStatus": "Success"
                }
            ],
            "TargetParameterName": "InstanceId",
            "Mode": "Auto"
        }
    }
    PowerShell
    AutomationExecutionId       : a4a3c0e9-7efd-462a-8594-01234EXAMPLE
    AutomationExecutionStatus   : Success
    CurrentAction               : 
    CurrentStepName             : 
    DocumentName                : AWS-StopEC2Instance
    DocumentVersion             : 1
    ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
    ExecutionEndTime            : 8/1/2019 5:46:59 PM
    ExecutionStartTime          : 8/1/2019 5:46:16 PM
    FailureMessage              : 
    MaxConcurrency              : 1
    MaxErrors                   : 1
    Mode                        : Auto
    Outputs                     : {}
    Parameters                  : {}
    ParentAutomationExecutionId : 
    ProgressCounters            : 
    ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
    StepExecutions              : {i-02573cafcfEXAMPLE}
    StepExecutionsTruncated     : False
    Target                      : 
    TargetLocations             : {}
    TargetMaps                  : {}
    TargetParameterName         : InstanceId
    Targets                     : {tag:Name}
    Nota

    È inoltre possibile monitorare lo stato dell'automazione nella console. Nell'elenco delle Automation executions (Esecuzioni di automazione) scegliere l'automazione appena eseguita e quindi scegliere la scheda Execution steps (Fasi di esecuzione). In questa scheda viene mostrato lo stato delle operazioni di automazione.