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à.
Usa le variabili nel tuo documento componente personalizzato
Le variabili forniscono un modo per etichettare i dati con nomi significativi che possono essere utilizzati in un'applicazione. È possibile definire variabili personalizzate con formati semplici e leggibili per flussi di lavoro complessi e farvi riferimento nel documento del componente dell'applicazione YAML per un componente. AWSTOE
Questa sezione fornisce informazioni per aiutarvi a definire le variabili per il AWSTOE componente nel documento del componente dell'applicazione YAML, tra cui sintassi, vincoli di nome ed esempi.
Costanti
Le costanti sono variabili immutabili che non possono essere modificate o sovrascritte una volta definite. Le costanti possono essere definite utilizzando i valori nella sezione di un documento. constants AWSTOE
Regole per i nomi delle costanti
La lunghezza del nome deve essere compresa tra 3 e 128 caratteri.
Il nome può contenere solo caratteri alfanumerici (a-z, 0-9) A-Z, trattini (-) o caratteri di sottolineatura (_).
Il nome deve essere univoco all'interno del documento.
Il nome deve essere specificato come stringa YAML.
Sintassi
constants: - <name>: type: <constant type> value: <constant value>
| Nome chiave | Richiesto | Descrizione |
|---|---|---|
|
|
Sì |
Nome della costante. Deve essere univoco per il documento (non deve essere uguale a nessun altro nome di parametro o costante). |
|
Sì | Valore della costante. |
|
Sì | Tipo di costante. Il tipo supportato èstring. |
Valori costanti di riferimento in un documento
Puoi fare riferimento alle costanti negli input step o loop all'interno del tuo documento YAML, come segue:
-
I riferimenti alle costanti fanno distinzione tra maiuscole e minuscole e il nome deve corrispondere esattamente.
-
Il nome deve essere racchiuso tra parentesi doppie arricciate.
{{MyConstant}} -
Gli spazi all'interno delle parentesi arricciate sono consentiti e vengono tagliati automaticamente. Ad esempio, tutti i seguenti riferimenti sono validi:
{{,MyConstant}}{{,MyConstant}}{{,MyConstant}}{{MyConstant}} -
Il riferimento nel documento YAML deve essere specificato come stringa (racchiusa tra virgolette singole o doppie).
Ad esempio: non
- {{è valido, in quanto non è identificato come stringa.MyConstant}}Tuttavia, i seguenti riferimenti sono entrambi validi:
- '{{eMyConstant}}'- "{{.MyConstant}}"
Esempi
Costante a cui si fa riferimento negli ingressi Step
name: Download AWS CLI version 2 schemaVersion: 1.0 constants: - Source: type: string value: https://awscli.amazonaws.com/AWSCLIV2.msi phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'
Costante referenziata negli ingressi in loop
name: PingHosts schemaVersion: 1.0 constants: - Hosts: type: string value: 127.0.0.1,amazon.com phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}
Parameters
I parametri sono variabili mutabili, con impostazioni che l'applicazione chiamante può fornire in fase di esecuzione. È possibile definire i parametri nella Parameters sezione del documento YAML.
Regole per i nomi dei parametri
La lunghezza del nome deve essere compresa tra 3 e 128 caratteri.
Il nome può contenere solo caratteri alfanumerici (a-z, 0-9) A-Z, trattini (-) o caratteri di sottolineatura (_).
Il nome deve essere univoco all'interno del documento.
Il nome deve essere specificato come stringa YAML.
Sintassi
parameters: - <name>: type: <parameter type> default: <parameter value> description: <parameter description>
Nome chiave |
Richiesto |
Descrizione |
|---|---|---|
|
Sì |
Nome del parametro. Deve essere univoco per il documento (non deve essere uguale a nessun altro nome di parametro o costante). |
|
Sì |
Il tipo di dati del parametro. I tipi supportati includono: |
|
No |
Il valore predefinito per il parametro. |
|
No |
Descrive il parametro. |
Valori dei parametri di riferimento in un documento
Puoi fare riferimento ai parametri negli input step o loop all'interno del tuo documento YAML, come segue:
-
I riferimenti ai parametri fanno distinzione tra maiuscole e minuscole e il nome deve corrispondere esattamente.
-
Il nome deve essere racchiuso tra parentesi graffe doppie.
{{MyParameter}} -
Gli spazi all'interno delle parentesi arricciate sono consentiti e vengono tagliati automaticamente. Ad esempio, tutti i seguenti riferimenti sono validi:
{{,MyParameter}}{{,MyParameter}}{{,MyParameter}}{{MyParameter}} -
Il riferimento nel documento YAML deve essere specificato come stringa (racchiusa tra virgolette singole o doppie).
Ad esempio: non
- {{è valido, in quanto non è identificato come stringa.MyParameter}}Tuttavia, i seguenti riferimenti sono entrambi validi:
- '{{eMyParameter}}'- "{{.MyParameter}}"
Esempi
Gli esempi seguenti mostrano come utilizzare i parametri nel documento YAML:
-
Fate riferimento a un parametro in Step Inputs:
name: Download AWS CLI version 2 schemaVersion: 1.0 parameters: - Source: type: string default: 'https://awscli.amazonaws.com/AWSCLIV2.msi' description: The AWS CLI installer source URL. phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi' -
Fate riferimento a un parametro negli ingressi del loop:
name: PingHosts schemaVersion: 1.0 parameters: - Hosts: type: string default: 127.0.0.1,amazon.com description: A comma separated list of hosts to ping. phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}
Sostituisci i parametri in fase di esecuzione
È possibile utilizzare l'--parametersopzione AWS CLI con una coppia chiave-valore per impostare il valore di un parametro in fase di esecuzione.
<name><value>Specificate la coppia chiave-valore del parametro come nome e valore, separati da un segno di uguale (=).
Più parametri devono essere separati da una virgola.
I nomi dei parametri che non si trovano nel documento del componente YAML vengono ignorati.
Il nome e il valore del parametro sono entrambi obbligatori.
Importante
I parametri dei componenti sono valori di testo semplice e vengono registrati. AWS CloudTrail Ti consigliamo di utilizzare AWS Secrets Manager o AWS Systems Manager Parameter Store per archiviare i tuoi segreti. Per ulteriori informazioni su Secrets Manager, vedi Cos'è Secrets Manager? nella Guida AWS Secrets Manager per l'utente. Per ulteriori informazioni su AWS Systems Manager Parameter Store, vedere AWS Systems Manager Parameter Store nella Guida AWS Systems Manager per l'utente.
Sintassi
--parametersname1=value1,name2=value2...
Opzione CLI |
Richiesto |
Description |
|---|---|---|
--parameters |
No |
Questa opzione accetta l'elenco delle coppie chiave-valore, con il nome del parametro come chiave. |
Esempi
Gli esempi seguenti mostrano come utilizzare i parametri nel documento YAML:
-
La coppia chiave-valore del parametro specificata in questa
--parameteropzione non è valida:--parameters ntp-server= -
Imposta una coppia chiave-valore di parametro con l'opzione in
--parameter: AWS CLI--parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com -
Imposta più coppie chiave-valore di parametri con l'opzione in
--parameter: AWS CLI--parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
Usa i parametri del Parameter Store di Systems Manager
È possibile fare riferimento ai parametri AWS Systems Manager Parameter Store (parametri SSM) nei documenti dei componenti aggiungendo alle variabili il prefisso. aws:ssm Ad esempio,
{{ aws:ssm:/my/param }}si risolve al valore del parametro SSM. /my/param
Questa funzionalità supporta i seguenti tipi di parametri SSM:
-
Stringa: esegue il mapping al tipo di AWSTOE stringa.
-
StringList — Esegue il mapping al AWSTOE
stringListtipo. -
SecureString — Esegue il mapping al tipo di AWSTOE stringa.
Per ulteriori informazioni su Parameter Store, vedere AWS Systems Manager Parameter Store nella Guida AWS Systems Manager per l'utente.
Puoi anche fare riferimento ai AWS Secrets Manager segreti utilizzando un parametro SecureString SSM. Ad esempio: {{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}. Per ulteriori informazioni, vedere Riferimento ai AWS Secrets Manager segreti dai parametri del Parameter Store.
Importante
Image Builder esclude la risoluzione SecureString dei parametri dai suoi registri. Tuttavia, l'utente è anche responsabile di garantire che le informazioni riservate non vengano registrate tramite i comandi immessi nel documento del componente. Ad esempio, se si utilizza il echo comando con una stringa sicura, il comando scrive un valore in chiaro nel registro.
Autorizzazioni IAM richieste
Per utilizzare i parametri Systems Manager nei componenti, il ruolo dell'istanza deve disporre dell'ssm:GetParameterautorizzazione per la risorsa parametrica ARN. Ad esempio:
Per accedere ai valori crittografati, sono inoltre necessarie le seguenti autorizzazioni:
-
Aggiungi
kms:DecryptperSecureStringparametri o AWS Secrets Manager valori crittografati con un servizio gestito AWS KMS key dal cliente. -
Aggiungi
secretsmanager:GetSecretValuese fai riferimento a un segreto di Secrets Manager.
Fai riferimento a un parametro SSM in un documento componente
L'esempio seguente mostra come fare riferimento a un parametro Systems Manager Parameter Store dei parametri di Systems Manager in un componente:
name: UseSSMParameterVariable description: This is a sample component document that prints out the value of an SSM Parameter. Never do this for a SecureString parameter. schemaVersion: 1.0 phases: - name: verify steps: - name: EchoParameterValue action: ExecuteBash inputs: commands: - echo "Log SSM parameter name:/my/test/param, value {{ aws:ssm:/my/test/param}}."
Risoluzione variabile dinamica di runtime per i parametri SSM
AWSTOE fornisce la seguente funzione integrata che è possibile utilizzare all'interno dei riferimenti alle variabili per manipolare o trasformare i valori in fase di esecuzione.
funzione di risoluzione
La resolve funzione risolve un riferimento variabile all'interno di un altro riferimento variabile, consentendo il riferimento dinamico al nome della variabile. Ciò è utile quando si lavora con parametri SSM in cui parte del percorso del parametro può essere variabile e passata come parametro del documento.
La resolve funzione supporta solo la risoluzione dinamica della parte relativa al nome di un parametro SSM.
Sintassi
L'dynamic_variableesempio seguente rappresenta il nome di un parametro SSM e deve essere uno dei seguenti:
-
Un riferimento a un parametro SSM (ad esempio,)
aws:ssm:/my/param -
Un riferimento a un parametro del documento componente (ad esempio,
)parameter-name
{{ aws:ssm:resolve(dynamic_variable) }}
Esempio: risolvi un parametro SSM in fase di esecuzione
L'esempio seguente mostra come utilizzare la resolve funzione in un documento del componente YAML:
name: SsmParameterTest description: This component verifies an SSM parameter variable reference with the echo command. schemaVersion: 1.0 parameters: - parameter-name: type: string description: "test" phases: - name: validate steps: - name: PrintDynamicVariable action: ExecuteBash inputs: commands: - echo "{{ aws:ssm:resolve(parameter-name) }}"
Usa le variabili di ambiente
AWSTOE può risolvere le variabili di ambiente del sistema operativo impostate sull'istanza di build o test. Per fare riferimento a una variabile di ambiente, aggiungete al nome della variabile il prefisso. env: Ad esempio, viene {{ env: risolto nel valore della variabile di MY_VAR }}MY_VAR ambiente sull'istanza.
AWSTOE corrisponde esattamente ai nomi delle variabili di ambiente. Un nome può contenere qualsiasi carattere valido per il sistema operativo, inclusi punti, spazi e parentesi. Ad esempio, {{ env:ProgramFiles(x86) }} è un riferimento valido in Windows.
L'esempio seguente mostra come fare riferimento a una variabile di ambiente in un componente:
name: UseEnvironmentVariable description: This sample component prints out the value of an environment variable. schemaVersion: 1.0 phases: - name: build steps: - name: EchoEnvironmentVariable action: ExecuteBash inputs: commands: - echo "The value of SOME_VAR is {{ env:SOME_VAR}}."
Variabili di ambiente fornite da Image Builder
Quando Image Builder esegue un componente su un'istanza di build o test, imposta variabili di ambiente che descrivono la build corrente dell'immagine. I componenti leggono questi valori con il prefisso AWSTOE
env: variabile descritto in precedenza in questo argomento.
Image Builder fornisce le seguenti variabili di ambiente.
Nome |
Description |
|---|---|
|
L'ID dell'esecuzione del flusso di lavoro per la build corrente dell'immagine. |
|
L'ID dell'esecuzione della fase del flusso di lavoro che esegue il componente. |
|
L'Amazon Resource Name (ARN) della versione di build dell'immagine creata da Image Builder. |
|
L'ARN della pipeline di immagini. Questo valore è una stringa vuota quando la build non viene eseguita da una pipeline. |
|
La fase corrente di creazione dell'immagine: Questa fase è distinta dalle fasi del documento AWSTOE componente ( |
|
La versione semantica dell'immagine (ad esempio, |
|
Il numero di versione di build dell'immagine (ad esempio, |
L'esempio seguente mostra come leggere le variabili di ambiente Image Builder in un componente:
name: UseImageBuilderEnvironmentVariables description: This sample component prints out Image Builder environment variable values. schemaVersion: 1.0 phases: - name: build steps: - name: EchoImageBuildValues action: ExecuteBash inputs: commands: - echo "Image phase: {{ env:IMAGE_PHASE }}." - echo "Image build version ARN: {{ env:IMAGE_BUILD_VERSION_ARN }}."
Utilizza le variabili IMDS (Instance Metadata)
AWSTOE può risolvere i valori dell'Amazon EC2 Instance Metadata Service (IMDS) sull'istanza di build o test. Per fare riferimento a un valore di metadati, inserisci il prefisso del percorso dei metadati con. aws:imds: Il percorso è relativo alla categoria di metadati dell'istanza. meta-data/ Ad esempio, si {{ aws:imds:instance-id }} risolve nell'ID dell'istanza. Il riferimento si {{ aws:imds:placement/region }} risolve in. Regione AWS
Percorsi di metadati non supportati
AWSTOE non supporta i percorsi iam/ e dei identity-credentials/ metadati. Questi percorsi restituiscono dati sensibili sulle credenziali. AWSTOE rifiuta i riferimenti ad essi quando convalida il documento componente.
Per ulteriori informazioni sui metadati delle istanze, consulta Use instance metadata to manage your EC2 istance nella Amazon EC2 User Guide.
L'esempio seguente mostra come fare riferimento a un valore IMDS in un componente:
name: UseInstanceMetadataVariable description: This sample component prints out the instance ID from IMDS. schemaVersion: 1.0 phases: - name: build steps: - name: EchoInstanceId action: ExecuteBash inputs: commands: - echo "The instance ID is {{ aws:imds:instance-id }}."
Usa variabili di contesto
AWSTOE fornisce variabili di contesto che descrivono l'esecuzione e l'istanza correnti. Per fare riferimento a una variabile di contesto, aggiungete alla chiave il prefisso. context: Ad esempio, {{ context:accountId }} si risolve nell'ID dell' AWS account.
AWSTOE fornisce le seguenti variabili di contesto.
Chiave |
Description |
|---|---|
|
L'ID dell' AWSTOE esecuzione corrente. |
|
L'ID dell' AWS account in cui viene eseguita l'istanza. |
|
Regione AWS Quello in cui viene eseguita l'istanza. |
|
La piattaforma del sistema operativo dell'istanza (ad esempio, |
|
Il nome del sistema operativo (ad esempio, |
|
La versione del sistema operativo (ad esempio, |
|
La data corrente in UTC, nel |
|
La data e l'ora correnti in UTC, nel formato RFC 3339 (ad esempio,). |
|
Un UUID versione 4 generato casualmente. |
|
Il nome host dell'istanza. |
|
Il nome della fase attualmente in esecuzione. |
|
Il nome della fase attualmente in esecuzione. |
Nota
Per ottenere l'ID dell'istanza, utilizzate la variabile IMDS {{ aws:imds:instance-id }} anziché una variabile di contesto.
L'esempio seguente mostra come fare riferimento alle variabili di contesto in un componente:
name: UseContextVariables description: This sample component prints out context variable values. schemaVersion: 1.0 phases: - name: build steps: - name: EchoContextValues action: ExecuteBash inputs: commands: - echo "Account: {{ context:accountId }}, OS: {{ context:osName }}."