Variables système Automation - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Variables système Automation

Les runbooks Automation AWS Systems Manager utilisent les variables suivantes. Pour obtenir un exemple d'utilisation de ces variables, affichez la source JSON du runbook AWS-UpdateWindowsAmi.

Pour afficher la source JSON du runbook AWS-UpdateWindowsAmi
  1. Ouvrez la console AWS Systems Manager à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation, cliquez sur Documents.

  3. Dans la liste de documents, utilisez la barre de recherche ou les nombres à droite de la barre de recherche pour choisir le runbook AWS-UpdateWindowsAmi.

  4. Sélectionnez l'onglet Contenu.

Variables système

Les runbooks Automation prennent en charge actuellement les variables système suivantes.

Variable Détails

global:ACCOUNT_ID

L'ID de l'Compte AWS de l'utilisateur ou du rôle dans lequel Automation s'exécute.

global:DATE

Date (au moment de l'exécution) au format AAAA-MM-JJ.

global:DATE_TIME

Date et heure (au moment de l'exécution) au format AAAA-MM-JJ_HH.mm.ss.

global:AWS_PARTITION

Partition dans laquelle se trouve la ressource. Pour les Régions AWS standards, la partition est aws. Pour les ressources dans d'autres partitions, la partition est aws-partitionname. Par exemple, la partition des ressources dans la région AWS GovCloud (US-West) est aws-us-gov.

global:REGION

La région dans laquelle le runbook est exécuté. Par exemple, us-east-2.

Variables d'automatisation

Les runbooks Automation prennent en charge les variables d'automatisation suivantes.

Variable Détails

automation:EXECUTION_ID

Identifiant unique attribué à l'exécution de l'automatisation actuelle. Par exemple, 1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c.

Terminologie

Les conditions suivantes décrivent comment les variables et les paramètres sont résolus.

Durée Définition Exemple

ARN constant

Un Amazon Resource Name (ARN) valide, sans variables.

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

Paramètre runbook

Un paramètre défini au niveau du runbook (instanceId, par exemple). Le paramètre est utilisé dans un remplacement de chaîne de base. Sa valeur est fournie au moment du démarrage de l'exécution.

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

Variable système

Variable générale remplacée dans le runbook lors de l'évaluation d'une partie du runbook.

"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}}" } } ]

Variable d'automatisation

Variable relative à l'automatisation remplacée dans le runbook lors de l'évaluation d'une partie du runbook.

{ "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}}” ] } } }

Paramètre Systems Manager

Une variable définie dans AWS Systems Manager Parameter Store. Il ne peut pas être référencé directement dans l'entrée de l'étape. Des autorisations peuvent être requises pour accéder au paramètre.

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}}' ...

Scénarios pris en charge

Scénario Commentaires Exemple

ARN assumeRole constant lors de la création.

Un contrôle d'autorisation est effectué pour vérifier que l'utilisateur appelant est autorisé à passer le assumeRole donné.

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

Paramètre runbook fourni pour AssumeRole au démarrage de l'automatisation.

Doit être défini dans la liste des paramètres du runbook.

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

Valeur fournie pour le paramètre du runbook au démarrage.

Le client fournit la valeur à utiliser pour un paramètre. Toutes les entrées fournies au moment du démarrage doivent être définies dans la liste des paramètres du runbook.

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

Les entrées pour démarrer l'exécution d'Automation incluent : {"amiId" : ["ami-12345678"] }

Paramètre Systems Manager référencé dans le contenu du runbook.

La variable existe dans le compte du client, ou est un paramètre accessible publiquement, et le AssumeRole pour le runbook a accès à la variable. Un contrôle est effectué à la création pour confirmer que le AssumeRole y a accès. Le paramètre ne peut pas être référencé directement dans l'entrée de l'étape.

... 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}}' ...

Variable système référencée dans la définition de l'étape

Au démarrage de l'automatisation, une variable système est remplacée dans le runbook. La valeur injectée dans le runbook est relative au moment où la substitution se produit. En d'autres termes, la valeur d'une variable de temps injectée à l'étape 1 est différente de la valeur injectée à l'étape 3 en raison du temps nécessaire pour exécuter les étapes entre elles. Les variables système n'ont pas besoin d'être définies dans la liste des paramètres du 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}}}" ] } } }, ...

Variable d'automatisation référencée dans la définition de l'étape.

Les variables d'automatisation n'ont pas besoin d'être définies dans la liste des paramètres du runbook. La seule variable d'automatisation prise en charge est automation:EXECUTION_ID.

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

Reportez-vous à la sortie de l'étape précédente dans la définition de l'étape suivante.

Il s'agit de la redirection du paramètre. La sortie de l'étape précédente est référencée à l'aide de la syntaxe {{stepName.OutputName}}. Cette syntaxe ne peut pas être utilisée par le client pour les paramètres du runbook. Ceci est résolu lorsque l'étape de référence s'exécute. Le paramètre n'est pas répertorié dans les paramètres du 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" } } ...

Scénarios non pris en charge

Scénario Comment Exemple

Paramètre Systems Manager fourni pour assumeRole au moment de la création

Non pris en charge.

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

Paramètre Systems Manager directement référencé dans l'entrée de l'étape.

Renvoie une exception InvalidDocumentContent au moment de la création.

... 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}}' ...

Définition de l'étape des variables

La définition d'une étape du runbook est construite en variables.

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

Paramètres runbook de références croisées

L'utilisateur fournit un paramètre d'entrée au moment du démarrage qui est une référence à un autre paramètre du 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}}" }, ...

Extension à plusieurs niveaux

Le runbook définit une variable qui évalue le nom d'une variable. Elle se trouve dans les séparateurs de variables (c'est-à-dire {{ }}) et s'étend à la valeur de cette variable/ce paramètre.

... "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}"

Référencement de sortie à partir d'une étape de runbook qui est un autre type de variable

L'utilisateur fait référence à la sortie d'une étape d'un précédent runbook au sein d'une étape ultérieure. Le résultat est un type de variable qui ne respecte pas les exigences de l'action dans l'étape suivante.

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