Variabili di sistema del servizio di automazione - 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à.

Variabili di sistema del servizio di automazione

I runbook dl servizio di automazione di AWS Systems Manager utilizzano le seguenti variabili. Per un esempio di come vengono utilizzate queste variabili, visualizza il testo JSON di origine del runbook AWS-UpdateWindowsAmi.

Per visualizzare l'origine JSON del runbook di AWS-UpdateWindowsAmi
  1. Aprire la console di AWS Systems Manager all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel pannello di navigazione, scegliere Documents (Documenti).

  3. Nell'elenco di documenti utilizzare la barra di ricerca o i numeri alla sua destra per scegliere il runbook AWS-UpdateWindowsAmi.

  4. Scegliere la scheda Content (Contenuti).

Variabili di sistema

I runbook del servizio di automazione supportano le seguenti variabili di sistema.

Variabile Informazioni

global:ACCOUNT_ID

L'ID dell'Account AWS dell'utente o del ruolo con il quale viene eseguita l'Automazione.

global:DATE

Data (al momento dell'esecuzione) nel formato aaaa-MM-gg.

global:DATE_TIME

Data e ora (al momento dell'aesecuzione) nel formato aaaa-MM-gg.

global:AWS_PARTITION

Partizione in cui si trova la risorsa. Per le Regioni AWS standard, la partizione è aws. Per risorse in altre partizioni, la partizione è aws-partitionname. Ad esempio, la partizione per le risorse nella regione GovCloud (Stati Uniti occidentali) di AWS è aws-us-gov.

global:REGION

La regione in cui viene eseguito il runbook. Ad esempio, us-east-2.

Variabili del servizio di automazione

I runbook del servizio di automazione supportano le seguenti variabili di automazione.

Variabile Informazioni

automation:EXECUTION_ID

L'identificatore univoco assegnato all'automazione corrente. Ad esempio, 1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c.

Terminologia

I seguenti termini descrivono come vengono risolte le variabili e i parametri.

Termine Definizione Esempio

ARN costante

Un Amazon Resource Name (ARN) valido senza variabili.

arn:aws:iam::123456789012:role/roleName

Parametro Runbook

Parametro definito a livello di runbook (ad esempio, instanceId). Il parametro viene utilizzato in una sostituzione di stringa di base. Il relativo valore è fornito all'avvio dell'esecuzione.

{ "description": "Create Image Demo", "version": "0.3", "assumeRole": "Your_Automation_Assume_Role_ARN", "parameters":{ "instanceId": { "type": "String", "description": "Instance to create image from" } }

Variabile di sistema

Variabile generica sostituita nel runbook quando una qualsiasi parte del runbook viene valutata.

"activities": [ { "id": "copyImage", "activityType": "AWS-CopyImage", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "ImageName": "{{imageName}}", "SourceImageId": "{{sourceImageId}}", "SourceRegion": "{{sourceRegion}}", "Encrypted": true, "ImageDescription": "Test CopyImage Description created on {{global:DATE}}" } } ]

Variabile del servizio di automazione

Variabile relativa all'automazione, sostituita nel runbook quando una qualsiasi parte del runbook viene valutata.

{ "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds": [ "{{LaunchInstance.InstanceIds}}" ], "Parameters": { "commands": [ "dir", "date", "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}” ] } } }

Parametro di Systems Manager

Variabile definita all'interno di AWS Systems Manager Parameter Store. Non è possibile farvi riferimento direttamente nell'input della fase. Potrebbero essere necessarie autorizzazioni per accedere al parametro.

description: Launch new Windows test instance schemaVersion: '0.3' assumeRole: '{{AutomationAssumeRole}}' parameters: AutomationAssumeRole: type: String default: '' description: >- (Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to run this runbook. LatestAmi: type: String default: >- {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}} description: The latest Windows Server 2016 AMI queried from the public parameter. mainSteps: - name: launchInstance action: 'aws:runInstances' maxAttempts: 3 timeoutSeconds: 1200 onFailure: Abort inputs: ImageId: '{{LatestAmi}}' ...

Scenari supportati

Scenario Commenti Esempio

ARN costante assumeRole al momento della creazione.

Viene eseguito un controllo delle autorizzazioni per verificare che l'utente che esegue la chiamata sia autorizzato a passare assumeRole.

{ "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "arn:aws:iam::123456789012:role/roleName", "parameters": { ...

Parametro del runbook fornito per AssumeRole quando viene avviata l'automazione.

Deve essere definito nell'elenco di parametri del runbook.

{ "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "{{dynamicARN}}", "parameters": { ...

Valore fornito per il parametro del runbook all'avvio.

Il cliente fornisce il valore da utilizzare per un parametro. Gli input di esecuzione forniti all'avvio devono essere definiti nell'elenco di parametri del runbook.

... "parameters": { "amiId": { "type": "String", "default": "ami-12345678", "description": "list of commands to run as part of first step" }, ...

Gli input per l'avvio dell'esecuzione dell'automazione includono: {"amiId" : ["ami-12345678"] }

Parametro di Systems Manager referenziato all'interno del contenuto del runbook.

La variabile esiste nell'account del cliente, o è un parametro pubblicamente accessibile, e AssumeRole per il runbook ha accesso alla variabile. Viene eseguito un controllo in fase di creazione per verificare che AssumeRole disponga dell'accesso. Non è possibile fare riferimento al parametro direttamente nell'input della fase.

... parameters: LatestAmi: type: String default: >- {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}} description: The latest Windows Server 2016 AMI queried from the public parameter. mainSteps: - name: launchInstance action: 'aws:runInstances' maxAttempts: 3 timeoutSeconds: 1200 onFailure: Abort inputs: ImageId: '{{LatestAmi}}' ...

Variabile di sistema a cui viene fatto riferimento nella definizione della fase

Una variabile di sistema viene sostituita nel runbook all'avvio dell'automazione. Il valore inserito nel runbook fa riferimento al momento in cui viene eseguita la sostituzione. Ad esempio, il valore di una variabile temporale inserita nella fase 1 sarà diverso da quello inserito nella fase 3 a causa del tempo intercorso tra le esecuzioni delle due fasi. Non è necessario che le variabili di sistema siano impostate nell'elenco di parametri del runbook.

... "mainSteps": [ { "name": "RunSomeCommands", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS:RunPowerShell", "InstanceIds": ["{{LaunchInstance.InstanceIds}}"], "Parameters": { "commands" : [ "echo {The time is now {{global:DATE_TIME}}}" ] } } }, ...

Variabile del servizio di automazione a cui viene fatto riferimento nella definizione della fase.

Non è necessario impostare le variabili del servizio di automazione nell'elenco di parametri del runbook. L'unica variabile del servizio di automazione è supportata è automation:EXECUTION_ID.

... "mainSteps": [ { "name": "invokeLambdaFunction", "action": "aws:invokeLambdaFunction", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "FunctionName": "Hello-World-LambdaFunction", "Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }" } } ...

Riferimento all'output della fase precedente nella definizione della fase successiva

Si tratta del reindirizzamento di un parametro. L'output di una fase precedente viene indicato con la sintassi {{stepName.OutputName}}. Questa sintassi non può essere utilizzata dal cliente per i parametri del runbook. Questo viene risolto quando viene eseguita la fase di riferimento. Il parametro non è elencato tra i parametri del runbook.

... "mainSteps": [ { "name": "LaunchInstance", "action": "aws:runInstances", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "ImageId": "{{amiId}}", "MinInstanceCount": 1, "MaxInstanceCount": 2 } }, { "name":"changeState", "action": "aws:changeInstanceState", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "InstanceIds": ["{{LaunchInstance.InstanceIds}}"], "DesiredState": "terminated" } } ...

Scenari non supportati

Scenario Commento Esempio

Parametro di Systems Manager fornito per assumeRole alla creazione

Non supportato.

... { "description": "Test all Automation resolvable parameters", "schemaVersion": "0.3", "assumeRole": "{{ssm:administratorRoleARN}}", "parameters": { ...

Parametro di Systems Manager a cui si fa riferimento nell'input della fase.

Restituisce un'eccezione InvalidDocumentContent al momento della creazione.

... mainSteps: - name: launchInstance action: 'aws:runInstances' maxAttempts: 3 timeoutSeconds: 1200 onFailure: Abort inputs: ImageId: '{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}' ...

Definizione della fase mediante variabili

La definizione di una fase nel runbook si basa su variabili.

... "mainSteps": [ { "name": "LaunchInstance", "action": "aws:runInstances", "{{attemptModel}}": 1, "onFailure": "Continue", "inputs": { "ImageId": "ami-12345678", "MinInstanceCount": 1, "MaxInstanceCount": 2 } ... User supplies input : { "attemptModel" : "minAttempts" }

Riferimento incrociato a parametri del runbook

L'utente fornisce un parametro di input all'avvio, che rappresenta un riferimento a un altro parametro nel runbook.

... "parameters": { "amiId": { "type": "String", "default": "ami-7f2e6015", "description": "list of commands to run as part of first step" }, "alternateAmiId": { "type": "String", "description": "The alternate AMI to try if this first fails". "default" : "{{amiId}}" }, ...

Espansione multilivello

Il runbook definisce una variabile che restituisce il nome di una variabile. Il nome è racchiuso tra i delimitatori della variabile ({{ }}) e viene espanso fino al valore della variabile/parametro.

... "parameters": { "firstParameter": { "type": "String", "default": "param2", "description": "The parameter to reference" }, "secondParameter": { "type": "String", "default" : "echo {Hello world}", "description": "What to run" } }, "mainSteps": [{ "name": "runFixedCmds", "action": "aws:runCommand", "maxAttempts": 1, "onFailure": "Continue", "inputs": { "DocumentName": "AWS-RunPowerShellScript", "InstanceIds" : "{{LaunchInstance.InstanceIds}}", "Parameters": { "commands": [ "{{ {{firstParameter}} }}"] } ... Note: The customer intention here would be to run a command of "echo {Hello world}"

Riferimento all'output da una fase del runbook con un altro tipo di variabile

L'utente fa riferimento all'output da una fase di un runbook precedente all'interno di una fase successiva. L'output ha un tipo di variabile che non soddisfa i requisiti dell'operazione nella fase successiva.

... mainSteps: - name: getImageId action: aws:executeAwsApi inputs: Service: ec2 Api: DescribeImages Filters: - Name: "name" Values: - "{{ImageName}}" outputs: - Name: ImageIdList Selector: "$.Images" Type: "StringList" - name: copyMyImages action: aws:copyImage maxAttempts: 3 onFailure: Abort inputs: SourceImageId: {{getImageId.ImageIdList}} SourceRegion: ap-northeast-2 ImageName: Encrypted Copies of LAMP base AMI in ap-northeast-2 Encrypted: true ... Note: You must provide the type required by the Automation action. In this case, aws:copyImage requires a "String" type variable but the preceding step outputs a "StringList" type variable.