View a markdown version of this page

Verwenden Sie dynamische Variablen in Ihrem Workflow-Dokument - EC2 Image Builder

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.

Verwenden Sie dynamische Variablen in Ihrem Workflow-Dokument

Sie können dynamische Variablen in Ihren Workflow-Dokumenten verwenden, um Werte darzustellen, die zur Laufzeit Ihres Image-Erstellungsprozesses variieren. Die Zeichenketteninterpolation für dynamische Variablen ermöglicht es Ihnen, JSONPath-Ausdrücke in strukturierte Inhalte wie JSON-Zeichenfolgen einzubetten. Dies ist besonders nützlich, wenn Sie Laufzeitwerte innerhalb komplexer Nutzlasten an Schrittaktionen wie oder übergeben müssen. ExecuteStateMachine WaitForAction

Um die Zeichenketteninterpolation für dynamische Variablen zu verwenden, schließen Sie JSONPath-Ausdrücke innerhalb Ihres Zeichenketteninhalts in doppelte geschweifte Klammern ein. "{{...}}" Nur JSONPath-Ausdrücke, die in doppelte geschweifte Klammern eingeschlossen sind, werden als Variablen verarbeitet. Alle JSONPath-Ausdrücke, die nicht in doppelte geschweifte Klammern eingeschlossen sind, werden als literaler Zeichenfolgeninhalt behandelt.

Syntax der dynamischen Workflow-Variablen von JSONPath

$.<document structure>.[<step name>.]<variable name>

Dynamische Variablenwerte werden als JSONPath-Selektoren mit Strukturknoten dargestellt, die die Zielvariable eindeutig identifizieren. Der erste Knoten nach dem Stamm ($) bezieht sich auf die Workflow-Dokumentstruktur, z. B. oderstepOutputs, im Fall von Image Builder-Systemvariablen,. imageBuilder Die folgende Liste enthält unterstützte JSONPath-Workflow-Dokumentstrukturknoten.

Knoten zur Dokumentstruktur
  • Parameter — Die Workflow-Parameter

  • StepOutputs — Ausgaben aus einem Schritt im selben Workflow-Dokument

  • WorkflowOutputs — Ausgaben aus einem Workflow-Dokument, das bereits ausgeführt wurde

  • imagebuilder — Image Builder-Systemvariablen

Die Knoten parameters und die stepOutputs Dokumentstrukturknoten enthalten einen optionalen Knoten für den Schrittnamen. Auf diese Weise wird sichergestellt, dass in allen Schritten eindeutige Variablennamen gelten.

Der letzte Knoten im JsonPath ist der Name der Zielvariablen, z. B. instanceId

Jeder Schritt kann mit diesen dynamischen JSONPath-Variablen auf die Ausgabe aller Aktionen früherer Schritte verweisen. Dies wird auch als Verkettung oder Referenzierung bezeichnet. Um auf die Ausgabe einer Aktion aus einem vorherigen Schritt zu verweisen, können Sie die folgende dynamische Variable verwenden.

$.stepOutputs.step-name.output-name
Wichtig

Wenn sich ein Eingabeparameter auf eine dynamische Variable bezieht, muss der Verkettungsindikator (.$) an das Ende des Parameternamens angehängt werden.

Beispiel 1: Indikator für die Verkettung von Eingabeparametern

Das folgende Beispiel zeigt einen Eingabeparameter, der zur Laufzeit mithilfe von Zeichenketteninterpolation eine dynamische Variable im Parameterwert auflöst.

- name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"

Beispiel 2: Zeichenketteninterpolation in dynamischen Variablen

Das folgende Beispiel zeigt, wie dynamische Variablen die Zeichenketteninterpolation verwenden, um Werte zur Laufzeit zu ermitteln.

- name: ValidateImageConfiguration action: ExecuteStateMachine inputs: stateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:ImageValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-east-1", "buildDate": "{{ $.imagebuilder.dateTime }}", "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}" }

In diesem Beispiel werden die JSONPath-Ausdrücke, die in doppelte geschweifte Klammern eingeschlossen sind, zur Laufzeit aufgelöst:

  • {{ $.stepOutputs.CreateImageFromInstance.imageId }}— Wird mit der tatsächlichen Bild-ID aus dem Schritt aufgelöst CreateImageFromInstance

  • {{ $.imagebuilder.dateTime }}— Wird mit dem aktuellen Build-Zeitstempel aufgelöst. Eine Liste der Image Builder-Systemvariablen, die Sie verwenden können, finden Verwenden Sie Image Builder-Systemvariablen Sie unter.

  • {{ $.stepOutputs.LaunchStep.instanceType }}- Entspricht dem Instanztyp, der in der verwendet wird LaunchStep

Die Literalzeichenfolgen wie "region": "us-east-1" bleiben unverändert.

Anmerkung

Die Zeichenketteninterpolation funktioniert mit jedem Zeichenketteninhalt in Ihrem Workflow-Dokument, einschließlich mehrzeiliger Zeichenketten, die den YAML-Operator pipe () verwenden. | Die Anforderung an geschweifte Klammern dient als Escape-Mechanismus, um klar zwischen JSONPath-Variablen und literalem Textinhalt zu unterscheiden.

Verwenden Sie Image Builder-Systemvariablen

Image Builder stellt die folgenden Systemvariablen bereit, die Sie in Ihrem Workflow-Dokument verwenden können. Dies sind schreibgeschützte Werte, die Image Builder zur Laufzeit auffüllt. Sie verweisen beispielsweise mit dem imagebuilder Dokumentstrukturknoten auf eine Systemvariable. $.imagebuilder.platform

Variablenname

Description

Typ

Beispielwert

Wolke WatchLogGroup

Der Name der CloudWatch Logs-Gruppe für Ausgabeprotokolle.

Format: /aws/imagebuilder/<recipe-name>

Zeichenfolge

/aws/imagebuilder/sampleImageRecipe

Wolke WatchLogStream

Der Name des CloudWatch Logs-Streams für Ausgabeprotokolle.

Zeichenfolge

1.0.0/1

sammeln ImageMetadata

Die Einstellung, die Image Builder festlegt, ob Instanzmetadaten erfasst werden sollen.

Boolesch

true | false

sammeln ImageScanFindings

Der aktuelle Wert der Einstellung, die es Image Builder ermöglicht, die Ergebnisse von Bildscans zu sammeln.

Boolesch

true | false

Bild BuildNumber

Die Build-Versionsnummer des Images.

Ganzzahl

1

imageId

Die AMI-ID des Basis-Images.

Zeichenfolge

ami-1234567890abcdef1

Name des Bilds

Der Name des Image.

Zeichenfolge

sampleImage

ImageType

Der Bildausgabetyp.

Zeichenfolge

AMI | Docker

Bild VersionNumber

Die Versionsnummer des Bildes.

Zeichenfolge

1.0.0

Instanz ProfileName

Der Name der Instanzprofilrolle, die Image Builder zum Starten von Build- und Testinstanzen verwendet.

Zeichenfolge

SampleImageBuilderInstanceProfileRole

platform

Die Betriebssystemplattform des Images, das erstellt wird.

Zeichenfolge

Linux | Windows | MacOS

S3-Protokolle

Ein JSON-Objekt, das die Konfiguration für die S3-Protokolle enthält, die Image Builder schreibt.

JSON-Objekt

{'S3Logs': {'s3 BucketName ':' ', 's3sample-bucket': KeyPrefix ''}} ib-logs

securityGroups

Die Sicherheitsgruppen-IDs, die für Build- und Testinstanzen gelten.

Liste [Zeichenfolge]

[sg-1234567890abcdef1, sg-11112222333344445]

Quelle ImageArn

Der Amazon-Ressourcenname (ARN) der Image Builder-Image-Ressource, die der Workflow für die Build- und Testphasen verwendet.

Zeichenfolge

arn:aws:imagebuilder: ::image//us-east-1111122223333sampleImage1.0.0/1

subnetId

Die ID des Subnetzes, in dem die Build- und Testinstanzen gestartet werden sollen.

Zeichenfolge

subnet-1234567890abcdef1

beenden InstanceOnFailure

Der aktuelle Wert der Einstellung, die Image Builder anweist, die Instanz bei einem Fehler zu beenden oder sie zur Problembehandlung beizubehalten.

Boolesch

true | false

Workflow/Phase

Die aktuelle Phase, die für die Workflow-Ausführung ausgeführt wird.

Zeichenfolge

Build | Test

workingDirectory

Der Pfad zum Arbeitsverzeichnis.

Zeichenfolge

/tmp