Esempi: registrazione delle operazioni con una finestra di manutenzione - 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à.

Esempi: registrazione delle operazioni con una finestra di manutenzione

È possibile registrare un'attività in Run Command, una capacità di AWS Systems Manager, con una finestra di manutenzione che utilizza AWS Command Line Interface (AWS CLI), come dimostrato in Registrare le attività con la finestra di manutenzione. È inoltre possibile registrare le attività per i flussi di lavoro, AWS Lambda le funzioni e le AWS Step Functions attività di Systems Manager Automation, come illustrato più avanti in questo argomento.

Nota

Specificare uno o più obiettivi per la finestra di manutenzione Run Commandattività di tipo «-type». A seconda dell'attività, gli obiettivi sono facoltativi per altri tipi di attività della finestra di manutenzione (Automazione e AWS Step Functions). AWS Lambda Per ulteriori informazioni sull'esecuzione di attività che non specificano destinazioni, consulta Registrazione delle attività della finestra di manutenzione senza destinazioni.

In questo argomento, forniamo esempi di utilizzo del comando AWS Command Line Interface (AWS CLI) register-task-with-maintenance-window per registrare ciascuno dei quattro tipi di attività supportati in una finestra di manutenzione. Gli esempi sono solo a titolo dimostrativo, ma è possibile modificarli per creare comandi di registrazione di task funzionanti.

Utilizzo dell'cli-input-json opzione --

Per gestire meglio le opzioni relative alle attività, è possibile utilizzare l'opzione di comando--cli-input-json, con i valori delle opzioni a cui si fa riferimento in un JSON file.

Per utilizzare il contenuto JSON del file di esempio fornito negli esempi seguenti, effettuate le seguenti operazioni sul computer locale:

  1. Creare un file assegnandogli, ad esempio, il nome MyRunCommandTask.json, MyAutomationTask.json oppure il nome desiderato.

  2. Copia il contenuto del nostro JSON esempio nel file.

  3. Modificare il contenuto del file per la registrazione del task, quindi salvare il file.

  4. Nella stessa directory in cui è stato salvato il file, eseguire il comando seguente. Sostituisci il nome del file con MyFile.json.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --cli-input-json file://MyFile.json
    Windows
    aws ssm register-task-with-maintenance-window ^ --cli-input-json file://MyFile.json
Pseudo parametri nelle attività della finestra di manutenzione

In alcuni esempi vengono utilizzati gli pseudoparametri come metodo per passare le informazioni sugli ID ai task. Ad esempio, {{TARGET_ID}} e {{RESOURCE_ID}} può essere utilizzato per trasferire AWS risorse alle IDs attività di Automation, Lambda e Step Functions. Per ulteriori informazioni sugli pseudoparametri nel parametro --task-invocation-parameters, consulta Utilizzo degli pseudo parametri durante la registrazione delle attività della finestra di manutenzione.

Ulteriori informazioni

Esempi di registrazione dei task

Le sezioni seguenti forniscono un AWS CLI comando di esempio per la registrazione di un tipo di attività supportato e un JSON esempio che può essere utilizzato con l'--cli-input-jsonopzione.

Gli esempi seguenti mostrano come registrare Systems Manager. Run Command attività con una finestra di manutenzione utilizzando AWS CLI.

Linux & macOS
aws ssm register-task-with-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --task-arn "AWS-RunShellScript" \ --max-concurrency 1 --max-errors 1 --priority 10 \ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \ --task-type "RUN_COMMAND" \ --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
Windows
aws ssm register-task-with-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --task-arn "AWS-RunShellScript" ^ --max-concurrency 1 --max-errors 1 --priority 10 ^ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^ --task-type "RUN_COMMAND" ^ --task-invocation-parameters "{\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}"

JSONcontenuto da usare con l'opzione --cli-input-json file:

{ "TaskType": "RUN_COMMAND", "WindowId": "mw-0c50858d01EXAMPLE", "Description": "My Run Command task to update SSM Agent on an instance", "MaxConcurrency": "1", "MaxErrors": "1", "Name": "My-Run-Command-Task", "Priority": 10, "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "AWS-UpdateSSMAgent", "TaskInvocationParameters": { "RunCommand": { "Comment": "A TaskInvocationParameters test comment", "NotificationConfig": { "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name", "NotificationEvents": [ "All" ], "NotificationType": "Invocation" }, "OutputS3BucketName": "amzn-s3-demo-bucket", "OutputS3KeyPrefix": "S3-PREFIX", "TimeoutSeconds": 3600 } } }

I seguenti esempi illustrano come registrare i task di automazione di Systems Manager con una finestra di manutenzione utilizzando l' AWS CLI:

AWS CLI comando:

Linux & macOS
aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --task-arn "AWS-RestartEC2Instance" \ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \ --task-type AUTOMATION \ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \ --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" \ --description "Automation task to restart EC2 instances"
Windows
aws ssm register-task-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --task-arn "AWS-RestartEC2Instance" ^ --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^ --task-type AUTOMATION ^ --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{TARGET_ID}}'}}" ^ --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" ^ --description "Automation task to restart EC2 instances"

JSONcontenuto da usare con l'opzione --cli-input-json file:

{ "WindowId": "mw-0c50858d01EXAMPLE", "TaskArn": "AWS-PatchInstanceWithRollback", "TaskType": "AUTOMATION","TaskInvocationParameters": { "Automation": { "DocumentVersion": "1", "Parameters": { "instanceId": [ "{{RESOURCE_ID}}" ] } } } }

I seguenti esempi illustrano come registrare i task delle funzioni di Lambda con una finestra di manutenzione utilizzando l' AWS CLI.

Per questi esempi, l'utente che ha creato la funzione Lambda ha denominato tale funzione SSMrestart-my-instances e ha creato due parametri denominati instanceId e targetType.

Importante

La IAM politica per Maintenance Windows richiede l'aggiunta del prefisso SSM ai nomi delle funzioni (o alias) Lambda. Prima di procedere alla registrazione di questo tipo di attività, aggiornane il nome in AWS Lambda includi. SSM Ad esempio, se il nome della funzione Lambda è MyLambdaFunction, modifica tale nome in SSMMyLambdaFunction.

AWS CLI comando:

Linux & macOS
Importante

Se si utilizza la versione 2 di AWS CLI, è necessario includere l'opzione --cli-binary-format raw-in-base64-out nel comando seguente se il payload Lambda non è codificato in base 64. L'opzione cli_binary_format è disponibile solo nella versione 2. Per informazioni su questa e altre impostazioni dei file, consulta Impostazioni dei AWS CLI config configfile supportate nella Guida per l'utente.AWS Command Line Interface

aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \ --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" \ --description "A description for my LAMBDA example task" --task-type "LAMBDA" \ --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" \ --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}","Qualifier": "$LATEST"}}'
PowerShell
Importante

Se si utilizza la versione 2 di AWS CLI, è necessario includere l'opzione --cli-binary-format raw-in-base64-out nel comando seguente se il payload Lambda non è codificato in base 64. L'opzione cli_binary_format è disponibile solo nella versione 2. Per informazioni su questa e altre impostazioni dei file, consulta Impostazioni dei AWS CLI config configfile supportate nella Guida per l'utente.AWS Command Line Interface

aws ssm register-task-with-maintenance-window ` --window-id "mw-0c50858d01EXAMPLE" ` --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ` --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" ` --description "A description for my LAMBDA example task" --task-type "LAMBDA" ` --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" ` --task-invocation-parameters '{\"Lambda\":{\"Payload\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\",\\\"targetType\\\":\\\"{{TARGET_TYPE}}\\\"}\",\"Qualifier\": \"$LATEST\"}}'

JSONcontenuto da usare con l'opzione --cli-input-json file:

{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_RestartMyInstances", "TaskType": "LAMBDA", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "Lambda": { "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE", "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }", "Qualifier": "$LATEST" } }, "Name": "My-Lambda-Task", "Description": "A description for my LAMBDA task", "Priority": 5 }

I seguenti esempi illustrano come registrare i task delle macchine a stati Step Functions con una finestra di manutenzione utilizzando l' AWS CLI.

Nota

Le attività della finestra di manutenzione supportano solo i flussi di lavoro delle macchine a stati Step Functions Standard. Non supportano i flussi di lavoro Express State Machine. Per informazioni sui tipi di flusso di lavoro delle macchine a stati, consulta Standard vs. Express Workflows nella Developer Guide.AWS Step Functions

Per questi esempi, l'utente che ha creato le macchine a stati Step Functions ha creato una macchina a stati denominata SSMMyStateMachine con un parametro denominato instanceId.

Importante

La politica AWS Identity and Access Management (IAM) per Maintenance Windows richiede che i nomi delle macchine a stati Step Functions abbiano come prefisso. SSM Prima di procedere alla registrazione di questo tipo di task, è necessario aggiornare il relativo nome in AWS Step Functions in modo da includere SSM. Ad esempio, se il nome della macchina a stati è MyStateMachine, modifica tale nome in SSMMyStateMachine.

AWS CLI comando:

Linux & macOS
aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \ --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE \ --task-type STEP_FUNCTIONS \ --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}", "Name":"{{INVOCATION_ID}}"}}' \ --priority 0 --max-concurrency 10 --max-errors 5 \ --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
PowerShell
aws ssm register-task-with-maintenance-window ` --window-id "mw-0c50858d01EXAMPLE" ` --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ` --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE ` --task-type STEP_FUNCTIONS ` --task-invocation-parameters '{\"StepFunctions\":{\"Input\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\"}\", \"Name\":\"{{INVOCATION_ID}}\"}}' ` --priority 0 --max-concurrency 10 --max-errors 5 ` --name "My-Step-Functions-Task" --description "A description for my Step Functions task"

JSONcontenuto da usare con l'opzione --cli-input-json file:

{ "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ] } ], "TaskArn": "SSM_MyStateMachine", "TaskType": "STEP_FUNCTIONS", "MaxConcurrency": "10", "MaxErrors": "10", "TaskInvocationParameters": { "StepFunctions": { "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }", "Name": "{{INVOCATION_ID}}" } }, "Name": "My-Step-Functions-Task", "Description": "A description for my Step Functions task", "Priority": 5 }