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à.
Mappatura degli obiettivi per un'automazione
Utilizza il parametro Targets
per definire velocemente quali risorse possono essere destinate a un'automazione. Ad esempio, se vuoi eseguire un'automazione che riavvii le istanze gestite, anziché selezionare manualmente decine di ID di istanza nella console o digitarli in un comando, puoi definire le istanze come destinazione specificando i tag di Amazon Elastic Compute Cloud (Amazon EC2) con il parametro Targets
.
Quando esegui un'automazione che utilizza una destinazione, AWS Systems Manager crea un'automazione figlio per ogni destinazione. Ad esempio, se come destinazione utilizzi i volumi di Amazon Elastic Block Store (Amazon EBS) mediante la specifica di tag e se tali tag restituiscono 100 volumi di Amazon EBS, Systems Manager crea 100 automazioni figlio. L'automazione padre risulta completa quando tutte le automazioni figlio raggiungono lo stato finale.
Nota
Qualsiasi opzione input parameters
specificata nel runtime (tempo di esecuzione) (nella sezione Input parameters (Parametri di input) della console oppure utilizzando l'opzione parameters
nella riga di comando) viene elaborata automaticamente da tutte le automazioni figlio.
Per definire le risorse come destinazione per un'automazione, puoi usare i tag, Resource Groups, e i valori dei parametri. Puoi inoltre utilizzare l'opzione TargetMaps
per utilizzare come destinazione più valori di parametro nella riga di comando o in un file. La sezione seguente descrive con maggiore dettaglio ciascuna di queste opzioni.
Definizione di un tag come destinazione
Puoi specificare un singolo tag come destinazione di un'automazione. Molte risorse di AWS supportano i tag, tra cui istanze di Amazon Elastic Compute Cloud (Amazon EC2) e di Amazon Relational Database Service (Amazon RDS), volumi e snapshot di Amazon Elastic Block Store (Amazon EBS), Resource Groups e bucket Amazon Simple Storage Service (Amazon S3), per citarne alcune. Per velocizzare l'esecuzione di un'automazione nelle risorse AWS, puoi definire un tag come destinazione. Un tag è una coppia chiave-valore, ad esempio Operating_System:Linux oppure Department:Finance. Se assegni un nome specifico a una risorsa, puoi anche possibile utilizzare la parola "Name" (Nome) come chiave e il nome della risorsa come valore.
Quando specifichi un tag come deatinazione di un'automazione, devi specificare anche un parametro di destinazione. Il parametro di destinazione utilizza l'opzione TargetParameterName
. Scegliendo un parametro di destinazione, definisci il tipo di risorsa su cui viene eseguita l'automazione. Il parametro di destinazione specificato con il tag deve essere un parametro valido definito nel runbook. Ad esempio, se vuoi definire come destinazione molte istanze di EC2 utilizzando i tag, devi scegliere il parametro di destinazione InstanceId
. Quando scegli questo parametro, definisci le instances (istanze) come il tipo di risorsa per l'automazione. Durante la creazione di un runbook personalizzato è necessario specificare, per Tipo di target, il valore /AWS::EC2::Instance
per garantire che vengano utilizzate solo le istanze. Altrimenti, verranno definite come target tutte le risorse con lo stesso tag. Quando definisci come destinazione le istanze con un tag, potrebbero essere incluse anche le istanze terminate.
Lo screenshot seguente utilizza il runbook di AWS-DetachEBSVolume
. Il parametro di destinazione logico è VolumeId
.

Il runbook di AWS-DetachEBSVolume
include anche una proprietà speciale chiamata Target type (Tipo di destinazione), impostata su /AWS::EC2::Volume
. Ciò significa che se la coppia tag-chiave Finance:TestEnv
restituisce tipi diversi di risorse, (ad esempio istanze di EC2, volumi di Amazon EBS e snapshot di Amazon EBS), verranno utilizzati solo i volumi di Amazon EBS.
Importante
I nomi dei parametri di destinazione fanno distinzione tra maiuscole e minuscole. Se esegui le automazioni utilizzando AWS Command Line Interface, (AWS CLI) or AWS Tools for Windows PowerShell, dovrai inserire il nome del parametro di destinazione esattamente come è stato definito nel runbook. In caso contrario, il sistema restituisce un errore di InvalidAutomationExecutionParametersException
. È possibile utilizzare l'operazione API DescribeDocument (DescriviDocumento) per visualizzare le informazioni sui parametri di destinazione disponibili in un runbook specifico. Di seguito è riportato un esempio di comando di AWS CLI che fornisce informazioni su documento di AWS-DeleteSnapshot
non valido.
aws ssm describe-document \ --name AWS-DeleteSnapshot
Di seguito sono elencati alcuni esempi di comandi della AWS CLI che definiscono le risorse come destinazioni mediante l'uso di un tag.
Esempio 1: definizione di un tag come destinazione mediante l'uso di una coppia chiave-valore per riavviare le istanze Amazon EC2
Questo esempio riavvia tutte le istanze Amazon EC2 contrassegnate mediante una chiave Department (Reparto) e un valore HumanResources (RisorseUmane). Il parametro di destinazione utilizza il parametro InstanceId (IDistanza) proveniente dal runbook. L'esempio utilizza un parametro aggiuntivo per eseguire l'automazione utilizzando un ruolo di servizio di automazione, definito anche assume role (ruolo presunto).
aws ssm start-automation-execution \ --document-name AWS-RestartEC2Instance \ --targets Key=tag:Department,Values=HumanResources \ --target-parameter-name InstanceId \ --parameters "AutomationAssumeRole=arn:aws:iam::111122223333:role/AutomationServiceRole"
Esempio 2: definizione di un tag come destinazione mediante l'uso di una coppia chiave-valore per eliminare gli snapshot di Amazon EBS
L'esempio seguente utilizza il runbook di AWS-DeleteSnapshot
per eliminare tutti gli snapshot con la chiave Name (Nome) e il valore January2018Backups. Il parametro di destinazione usa il parametro VolumeId (IDvolume).
aws ssm start-automation-execution \ --document-name AWS-DeleteSnapshot \ --targets Key=tag:Name,Values=January2018Backups \ --target-parameter-name VolumeId
Definizione di AWS Resource Groups come destinazione
Puoi specificare una singola risorsa di AWS come destinazione di un'automazione. Systems Manager crea un'automazione figlio per ogni oggetto nel gruppo di risorse di destinazione.
Si supponga, ad esempio, che il nome del Resource Groups sia PatchedAMIs. Questo gruppo di risorse include un elenco di 25 Amazon Machine Images (AMIs) Windows a cui vengono regolarmente applicate patch. Se esegui un'automazione che utilizza il runbook di AWS-CreateManagedWindowsInstance
e che ha questo gruppo di risorse come destinazione, Systems Manager creerà un'automazione figlio per ciascuna delle 25 AMIs. Ciò significa che definendo il gruppo di risorse PatchedAMIs come destinazione, l'automazione crea 25 istanze da un elenco di AMIs a cui sono state applicate patch. L'automazione padre risulta completa quando tutte le automazioni figlio hanno ultimato l'elaborazione o hanno raggiunto lo stato finale.
Il comando AWS CLI seguente è valido per l'esempio relativo al gruppo di risorse PatchAMIs. Il comando utilizza il parametro AmiId per l'opzione --target-parameter-name
. Il comando non include un parametro aggiuntivo che definisce il tipo di istanza da creare da ciascuna AMI. Il runbook di AWS-CreateManagedWindowsInstance
usa per impostazione predefinita il tipo di istanza t2.medium; per tale motivo, questo comando crea 25 istanze t2.medium di Amazon EC2 instances per Windows Server.
aws ssm start-automation-execution \ --document-name AWS-CreateManagedWindowsInstance \ --targets Key=ResourceGroup,Values=PatchedAMIs \ --target-parameter-name AmiId
La seguente console di esempio utilizza un gruppo di risorse denominato t2-micro-instances.

Definizione dei valori di parametro come destinazione
È anche possibile definire come destinazione un valore di parametro. A tale scopo, devi specificare ParameterValues
come chiave e quindi inserire il valore specifico di risorsa in cui vuoi eseguire l'automazione. Se specifichi più valori, Systems Manager esegue un'automazione figlio su ciascun valore specificato.
Supponiamo, ad esempio, che il runbook includa un parametro InstanceID (IDistanza). Se definisci i valori del parametro InstanceID (IDistanza) come destinazione quando esegui l'automazione, Systems Manager esegue un'automazione figlio per ogni valore di ID di istanza specificato. L'automazione padre risulta completa quando l'automazione termina l'esecuzione di ciascuna istanza specificata oppure se l'automazione ha esito negativo. Puoi definire come destinazione un massimo di 50 valori di parametro.
Nell'esempio seguente viene utilizzato il runbook di AWS-CreateImage
. Il nome di parametro di destinazione specificato è InstanceId (IDistanza). La chiave usa ParameterValues (Valori Parametri). I valori sono due ID di istanza di Amazon EC2. Questo comando crea un'automazione per ogni istanza, che genera un'AMI da ciascuna istanza.
aws ssm start-automation-execution --document-name AWS-CreateImage \ --target-parameter-name InstanceId \ --targets Key=ParameterValues,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE
Nota
AutomationAssumeRole
non è un parametro valido. Non scegliere questo elemento quando si esegue un'automazione che definisce un valore di parametro come destinazione.
Definizione delle mappe di valori di parametro come destinazione
L'opzione TargetMaps
potenzia la capacità di definire ParameterValues
come destinazione. Puoi inserire una serie di valori di parametro utilizzando TargetMaps
nella riga di comando. Puoi infine specificare un massimo di 50 valori di parametro nella riga di comando. Per eseguire comandi che specificano più di 50 valori di parametro, puoi inserire i valori in un file in formato JSON. Potrai quindi richiamare il file dalla riga di comando.
Nota
L'opzione TargetMaps
non è supportata nella console.
Usa il seguente formato per specificare più valori di parametro mediante l'opzione TargetMaps
in un comando. Sostituisci ciascun segnaposto delle risorse di esempio
con le tue informazioni.
aws ssm start-automation-execution \ --document-name
runbook name
\ --target-maps “parameter
=value
,parameter 2
=value
,parameter 3
=value
” “parameter 4
=value
,parameter 5
=value
,parameter 6
=value
”
Se vuoi immettere più di 50 valori di parametro per l'opzione TargetMaps
, specifica i valori in un file utilizzando il seguente formato JSON. L'utilizzo di un file in formato JSON migliora inoltre la leggibilità quando vengono specificati più valori di parametro.
[ {“parameter”: "value", “parameter 2”: "value", “parameter 3”: "value"}, {“parameter 4”: "value", “parameter 5”: "value", "parameter 6": "value"} ]
Salva il file con l'estensione .json. Puoi chiamare il file utilizzando il comando seguente. Sostituisci ciascun segnaposto delle risorse di esempio
con le tue informazioni.
aws ssm start-automation-execution \ --document-name
runbook name
\ –-parametersinput parameters
\ --target-mapspath to file/file name
.json
Puoi inoltre scaricare il file da un bucket Amazon Simple Storage Service (Amazon S3), a condizione che tu disponga dell'autorizzazione necessaria per leggere i dati dal bucket. Utilizza il seguente formato di comando. Sostituisci ciascun segnaposto delle risorse di esempio
con le tue informazioni.
aws ssm start-automation-execution \ --document-name
runbook name
\ --target-maps http://amzn-s3-demo-bucket.s3.amazonaws.com/file_name
.json
Ecco uno scenario di esempio che illustra l'opzione TargetMaps
. In questo scenario, un utente desidera creare istanze di Amazon EC2 di vari tipi da AMIs diverse. Per eseguire questa attività, l'utente crea un runbook denominato AMI_Testing. Questo runbook definisce due parametri di input: instanceType
e imageId
.
{ "description": "AMI Testing", "schemaVersion": "0.3", "assumeRole": "{{assumeRole}}", "parameters": { "assumeRole": { "type": "String", "description": "Role under which to run the automation", "default": "" }, "instanceType": { "type": "String", "description": "Type of EC2 Instance to launch for this test" }, "imageId": { "type": "String", "description": "Source AMI id from which to run instance" } }, "mainSteps": [ { "name": "runInstances", "action": "aws:runInstances", "maxAttempts": 1, "onFailure": "Abort", "inputs": { "ImageId": "{{imageId}}", "InstanceType": "{{instanceType}}", "MinInstanceCount": 1, "MaxInstanceCount": 1 } } ], "outputs": [ "runInstances.InstanceIds" ] }
L'utente specifica quindi i seguenti valori di parametro di destinazione in un file denominato AMI_instance_types.json
.
[ { "instanceType" : ["t2.micro"], "imageId" : ["ami-b70554c8"] }, { "instanceType" : ["t2.small"], "imageId" : ["ami-b70554c8"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] }, { "instanceType" : ["t2.medium"], "imageId" : ["ami-cfe4b2b0"] } ]
L'utente può eseguire l'automazione e creare le cinque istanze di EC2 definite nel file AMI_instance_types.json
con il comando seguente.
aws ssm start-automation-execution \ --document-name AMI_Testing \ --target-parameter-name imageId \ --target-maps file:///home/TestUser/workspace/runinstances/AMI_instance_types.json
Definizione di tutte le istanze Amazon EC2 come destinazione
È possibile eseguire un'automazione su tutte le istanze Amazon EC2 nell'Account AWS e nella Regione AWS correnti selezionando Tutte le istanze nell'elenco Destinazioni. Ad esempio, se desideri riavviare tutte le istanze Amazon EC2 del tuo Account AWS e della Regione AWS corrente, puoi scegliere il runbook AWS-RestartEC2Instance
, quindi scegliere Tutte le istanze dall'elenco Destinazioni.

Dopo aver scelto All instances (Tutte le istanze), Systems Manager popola il campo Instance (Istanza) con un asterisco (*) e rende il campo non disponibile per le modifiche (il campo è disabilitato). Systems Manager rende anche il campo InstanceId (IDistanza) nel campo Input Parameters (Parametri di input) non disponibile per le modifiche. Rendere questi campi non disponibili per le modifiche è un comportamento previsto se si sceglie di definire tutte le istanze come destinazione.