Systemvariablen für Automation - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Systemvariablen für Automation

AWS Systems Manager-Automation-Runbooks verwenden die folgenden Variablen. Ein Beispiel für die Verwendung dieser Variablen erhalten Sie, wenn Sie die JSON-Quelle des AWS-UpdateWindowsAmi-Runbooks anzeigen.

So zeigen Sie die JSON-Quelle des AWS-UpdateWindowsAmi-Runbooks an
  1. Öffnen Sie die AWS Systems Manager-Konsole unter https://console.aws.amazon.com/systems-manager/.

  2. Wählen Sie im Navigationsbereich die Option Documents (Dokumente) aus.

  3. Wählen Sie in der Dokumentliste entweder über die Suchleiste oder die Zahlen rechts neben der Suchleiste das Runbook AWS-UpdateWindowsAmi aus.

  4. Wählen Sie die Registerkarte Content aus.

Systemvariablen

Automation-Runbooks unterstützen die folgenden Variablen.

Variable Details

global:ACCOUNT_ID

Die AWS-Konto-ID des Benutzers oder der Rolle, in dem die Automatisierung ausgeführt wird.

global:DATE

Das Datum (zur Ausführungszeit) im Format yyyy-MM-dd.

global:DATE_TIME

Das Datum und die Uhrzeit (zur Ausführungszeit) im Format yyyy-MM-dd_HH.mm.ss.

global:AWS_PARTITION

Die Partition, in der sich die Ressource befindet. Für Standard-AWS-Regionen lautet die Partition aws. Für Ressourcen in anderen Partitionen lautet die Partition aws-partitionname. Beispielsweise ist die Partition für Ressourcen in der AWS-GovCloud (US-West)-Region aws-us-gov.

global:REGION

Die Region, in der das Runbook ausgeführt wird. Beispiel: us-east-2.

Variablen für Automation

Automation-Runbooks unterstützen die folgenden Automatisierungsvariablen.

Variable Details

automation:EXECUTION_ID

Die eindeutige ID, die der aktuellen Automatisierung zugewiesen ist. Zum Beispiel 1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c.

Terminologie

Die folgenden Bedingungen beschreiben, wie Variablen und Parameter gelöst werden.

Begriff Definition Beispiel

Konstanter ARN

Ein gültiger Amazon-Ressourcenname (ARN) ohne Variablen.

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

Runbook-Parameter

Ein auf der Runbook-Ebene definierter Parameter (z. B. instanceId). Der Parameter wird in einer grundlegenden Zeichenfolgenersetzung verwendet. Sein Wert wird zur Startausführungszeit bereitgestellt.

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

Systemvariable

Eine allgemeine Variable, die in das Runbook eingefügt wird, wenn ein beliebiger Teil des Runbooks bewertet wird.

"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 für Automation

Eine Variable, die sich auf die Automatisierung bezieht, die in das Runbook eingefügt wird, wenn ein Teil des Runbooks bewertet wird.

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

Systems Manager-Parameter

Eine in AWS Systems Manager Parameter Store definierte Variable. Eine direkte Referenzierung in der Schritteingabe ist nicht möglich. Eventuell sind für den Zugriff auf den Parameter Berechtigungen erforderlich.

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

Unterstützte Szenarien

Szenario Kommentare Beispiel

Konstanter ARN assumeRole beim Erstellen.

Es wird eine Autorisierungsprüfung durchgeführt, um zu bestätigen, dass der aufrufende Benutzer über die Berechtigung zum Übergeben der Rolle assumeRole verfügt.

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

Der Runbook-Parameter wird für AssumeRole bereitgestellt, wenn die Automatisierung gestartet wird.

Muss in der Parameterliste des Runbooks definiert werden.

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

Für Runbookparameter beim Start bereitgestellter Wert.

Der Kunde stellt den für einen Parameter zu verwendenden Wert bereit. Alle zur bereitgestellten Eingaben müssen in der Parameterliste des Runbooks definiert sein.

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

Eingaben zum Start der Automation-Ausführung umfassen : {"amiId" : ["ami-12345678"] }

Systems Manager Parameter, auf den im Runbook-Inhalt verwiesen wird.

Die Variable existiert im Kundenkonto oder ist ein öffentlich zugänglicher Parameter und die AssumeRole für das Runbook hat Zugriff auf die Variable. Beim Erstellen wird eine Überprüfung durchgeführt, um zu bestätigen, dass AssumeRole Zugriff hat. Der Parameter kann nicht direkt in der Schritteingabe referenziert werden.

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

Die Systemvariable, auf die in der Definition des Schritts verwiesen wird

Eine Systemvariable wird beim Start der Automatisierung in das Runbook eingefügt. Der in das Runbook eingefügte Wert steht in Relation zum Zeitpunkt des Einfügens. Das bedeutet, dass der Wert einer Zeitvariable, die in Schritt 1 eingefügt wurde, aufgrund der erforderlichen Zeit für die Ausführung der Schritte vom in Schritt 3 eingefügten Wert abweicht. Systemvariablen müssen nicht in der Parameterliste des Runbooks festgelegt werden.

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

Die Automation-Variable, auf die in der Definition des Schritts verwiesen wird.

Automation-Variablen müssen nicht in der Parameterliste des Runbooks festgelegt werden. Die einzige unterstützte AAutomation-Variable ist automation:EXECUTION_ID.

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

Weitere Informationen finden Sie in der Ausgabe des vorherigen Schritts in der Definition des nächsten Schritts.

Dies ist die Parameterumleitung. Mithilfe der Syntax {{stepName.OutputName}} wird auf die Ausgabe eines vorherigen Schritts verwiesen. Diese Syntax kann vom Kunden nicht für Runbookparameter verwendet werden. Dies wird behoben, wenn der verweisende Schritt ausgeführt wird. Der Parameter ist nicht in der Liste der Parameter des Runbooks aufgeführt.

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

Nicht unterstützte Szenarien

Szenario Kommentar Beispiel

Systems Manager Parameter bereitgestellt für assumeRole beim Erstellen

Nicht unterstützt

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

System Manager-Parameter, der direkt in der Schritteingabe referenziert wird.

Gibt eine InvalidDocumentContent-Ausnahme zur Erstellungszeit zurück.

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

Variablenschrittdefinition

Die Definition eines Schritts im Runbook wird anhand von Variablen zusammengestellt.

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

Querverweise auf Runbook-Parameter

Der Benutzer liefert zur Startzeit einen Eingabeparameter, der ein Verweis auf einen anderen Parameter im Runbook ist.

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

Multi-Level-Expansion

Das Runbook definiert eine Variable, die den Namen einer Variablen ergibt. Dieser befindet sich in den Variablentrennzeichen (d. h. {{ }}) und wird auf den Wert dieser Variable/dieses Parameters erweitert.

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

Verweis auf die Ausgabe aus einem Runbook-Schritt, bei dem es sich um einen anderen Variablentyp handelt

Der Benutzer verweist auf die Ausgabe eines vorherigen Runbook-Schritts in einem späteren Schritt. Die Ausgabe ist ein Variablentyp, der nicht den Anforderungen der Aktion des nachfolgenden Schritts erfüllt.

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