

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

# Utilizzate le variabili dinamiche nel documento del flusso di lavoro
<a name="wfdoc-dynamic-vars"></a>

È possibile utilizzare variabili dinamiche nei documenti del flusso di lavoro per rappresentare valori che variano in fase di esecuzione per il processo di creazione dell'immagine. L'interpolazione di stringhe per variabili dinamiche consente di incorporare espressioni JSONPath all'interno di contenuti strutturati come stringhe JSON. Ciò è particolarmente utile quando è necessario passare valori di runtime all'interno di payload complessi per eseguire azioni come o. `ExecuteStateMachine` `WaitForAction`

Per utilizzare l'interpolazione di stringhe per variabili dinamiche, racchiudi le espressioni JsonPath tra parentesi graffe doppie all'interno del contenuto della stringa. `"{{...}}"` Solo le espressioni JsonPath racchiuse tra parentesi graffe doppie vengono elaborate come variabili. Tutte le espressioni JSONPath non racchiuse tra parentesi graffe doppie vengono trattate come contenuto di stringhe letterali.

**Sintassi dinamica delle variabili del flusso di lavoro JsonPath**

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

I valori delle variabili dinamiche sono rappresentati come selettori JsonPath con nodi strutturali che identificano in modo univoco la variabile di destinazione. Il primo nodo dopo la radice ($) si riferisce alla struttura del documento del flusso di lavoro, ad esempio o`stepOutputs`, nel caso delle variabili di sistema di Image Builder,. `imageBuilder` L'elenco seguente contiene i nodi della struttura dei documenti del flusso di lavoro JSONPath supportati.

**Nodi della struttura del documento**
+ parametri: i parametri del flusso di lavoro
+ StepOutputs: restituisce i risultati di una fase dello stesso documento del flusso di lavoro
+ WorkflowOutputs: output da un documento del flusso di lavoro già in esecuzione
+ imagebuilder - Variabili di sistema di Image Builder

I `parameters` nodi della struttura `stepOutputs` del documento includono un nodo opzionale per il nome del passaggio. Questo aiuta a garantire nomi di variabili univoci in tutti i passaggi.

Il nodo finale di JSONPath è il nome della variabile di destinazione, ad esempio. `instanceId`

Ogni passaggio può fare riferimento all'output di qualsiasi azione del passaggio precedente con queste variabili dinamiche JsonPath. Questa operazione è nota anche come *concatenamento* o riferimento. Per fare riferimento all'output di un'azione precedente, è possibile utilizzare la seguente variabile dinamica.

```
$.stepOutputs.{{step-name}}.{{output-name}}
```

**Importante**  
Quando un parametro di input fa riferimento a una variabile dinamica, l'indicatore di concatenamento (`.$`) deve essere collegato alla fine del nome del parametro.

**Esempio 1: indicatore di concatenamento dei parametri di input**

L'esempio seguente mostra un parametro di input che utilizza l'interpolazione di stringhe per risolvere una variabile dinamica nel valore del parametro in fase di esecuzione.

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

**Esempio 2: interpolazione di stringhe in variabili dinamiche**

L'esempio seguente dimostra come le variabili dinamiche utilizzano l'interpolazione di stringhe per determinare i valori in fase di esecuzione.

```
- 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 questo esempio, le espressioni JsonPath racchiuse tra parentesi graffe doppie vengono risolte in fase di esecuzione:
+ `{{ $.stepOutputs.CreateImageFromInstance.imageId }}`- Risolve all'ID effettivo dell'immagine dal passaggio CreateImageFromInstance 
+ `{{ $.imagebuilder.dateTime }}`- Risolve al timestamp di compilazione corrente. [Usa le variabili di sistema di Image Builder](#wfdoc-ib-vars)Per un elenco delle variabili di sistema di Image Builder che è possibile utilizzare, vedere.
+ `{{ $.stepOutputs.LaunchStep.instanceType }}`- Risolve al tipo di istanza utilizzato in LaunchStep

Le stringhe letterali, ad esempio, rimangono invariate. `"region": "us-east-1"`

**Nota**  
L'interpolazione delle stringhe funziona con qualsiasi contenuto di stringhe nel documento del flusso di lavoro, incluse le stringhe multilinea che utilizzano l'operatore YAML pipe (). `|` Il requisito curly brace funge da meccanismo di fuga per distinguere chiaramente tra variabili JsonPath e contenuto di testo letterale.

## Usa le variabili di sistema di Image Builder
<a name="wfdoc-ib-vars"></a>

Image Builder fornisce le seguenti variabili di sistema che è possibile utilizzare nel documento del flusso di lavoro. Si tratta di valori di sola lettura che Image Builder compila in fase di esecuzione. Ad esempio, si fa riferimento a una variabile di sistema con il nodo della struttura del `imagebuilder` documento. `$.imagebuilder.platform`


|  Nome della variabile  |  Description  |  Tipo  |  Valore di esempio  | 
| --- | --- | --- | --- | 
| nuvola WatchLogGroup | Il nome del gruppo CloudWatch Logs per i log di output.<br />Formato: `/aws/imagebuilder/{{<recipe-name>}}` | Stringa | `/aws/imagebuilder/{{sampleImageRecipe}}` | 
| nuvola WatchLogStream | Il nome del flusso CloudWatch Logs per i log di output. | Stringa | {{1.0.0/1}} | 
| raccogliere ImageMetadata | L'impostazione che indica a Image Builder se raccogliere i metadati dell'istanza. | Booleano | `true` \| `false` | 
| raccogliere ImageScanFindings | Il valore corrente dell'impostazione che consente a Image Builder di raccogliere i risultati della scansione delle immagini. | Booleano | `true` \| `false` | 
| immagine BuildNumber | Il numero di versione di build dell'immagine. | Numero intero | {{1}} | 
| imageId | L'ID AMI dell'immagine di base. | Stringa | {{ami-1234567890abcdef1}} | 
| Nome dell'immagine | Il nome dell'immagine. | Stringa | {{sampleImage}} | 
| imageType | Il tipo di output dell'immagine. | Stringa | `AMI` \| `Docker` | 
| immagine VersionNumber | Il numero di versione dell'immagine. | Stringa | {{1.0.0}} | 
| istanza ProfileName | Il nome del ruolo del profilo dell'istanza utilizzato da Image Builder per avviare le istanze di compilazione e test. | Stringa | {{SampleImageBuilderInstanceProfileRole}} | 
| platform | La piattaforma del sistema operativo dell'immagine creata. | Stringa | `Linux` \| `Windows` \| `MacOS` | 
| Registri S3 | Un oggetto JSON che contiene la configurazione per i log S3 scritti da Image Builder. | Oggetto JSON | {'S3logs': {'s3 ':' ', 's3BucketName': {{sample-bucket}} '}} KeyPrefix {{ib-logs}} | 
| securityGroups | Gli ID dei gruppi di sicurezza che si applicano alle istanze di compilazione e test. | Elenco [Stringa] | {{[sg-1234567890abcdef1, sg-11112222333344445]}} | 
| Fonte ImageRan | L'Amazon Resource Name (ARN) della risorsa di immagine Image Builder utilizzata dal flusso di lavoro per le fasi di creazione e test. | Stringa | arn:aws:imagebuilder: ::image//{{us-east-1}}{{111122223333}}{{sampleImage}}{{1.0.0/1}} | 
| subnetId | L'ID della sottorete in cui avviare le istanze di build e test. | Stringa | {{subnet-1234567890abcdef1}} | 
| terminare InstanceOnFailure | Il valore corrente dell'impostazione che ordina a Image Builder di terminare l'istanza in caso di errore o di conservarla per la risoluzione dei problemi. | Booleano | `true` \| `false` | 
| Fase del flusso di lavoro | La fase corrente in esecuzione per l'esecuzione del flusso di lavoro. | Stringa | `Build` \| `Test` | 
| workingDirectory | Il percorso della directory di lavoro. | Stringa | `/tmp` | 