Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de variables en su documento de componentes personalizados
Las variables proporcionan una forma de etiquetar los datos con nombres significativos que se pueden usar en toda la aplicación. Puedes definir variables personalizadas con formatos sencillos y legibles para flujos de trabajo complejos y hacer referencia a ellas en el documento del componente de la aplicación YAML de un TOE de AWS componente.
En esta sección, se proporciona información que te ayudará a definir las variables de tu TOE de AWS componente en el documento de componentes de la aplicación YAML, incluida la sintaxis, las restricciones de nombres y algunos ejemplos.
Constantes
Las constantes son variables inmutables que no se pueden modificar ni anular una vez definidas. Las constantes se pueden definir mediante los valores de la constants
sección de un TOE de AWS documento.
Reglas de nomenclatura de constantes
El nombre debe tener entre 3 y 128 caracteres de extensión.
El nombre solo puede contener caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) o guiones bajos (_).
El nombre debe ser único dentro del documento.
El nombre debe estar especificado como una cadena YAML.
Sintaxis
constants: - <name>: type: <constant type> value: <constant value>
Nombre de la clave | Obligatorio | Descripción |
---|---|---|
|
Sí |
Nombre de la constante. Debe ser único para el documento (no debe coincidir con ningún otro nombre de parámetro o constante). |
|
Sí | Valor de la constante. |
|
Sí | Tipo de la constante. El tipo admitido es string . |
Valores constantes de referencia en un documento
Puede hacer referencia a las constantes en entradas escalonadas o en bucle dentro de su documento YAML, de la siguiente manera:
-
Las referencias constantes distinguen mayúsculas y minúsculas y el nombre debe coincidir exactamente.
-
El nombre debe estar entre corchetes dobles.
{{
MyConstant
}}
-
Se permiten espacios dentro de las llaves y se recortan automáticamente. Por ejemplo, todas las referencias siguientes son válidas:
{{
,MyConstant
}}{{
,MyConstant
}}{{
,MyConstant
}}{{
MyConstant
}} -
La referencia del documento YAML debe especificarse como una cadena (entre comillas simples o dobles).
Por ejemplo:
- {{
no es válido, ya que no se identifica como una cadena.MyConstant
}}Sin embargo, las siguientes referencias son válidas:
- '{{
yMyConstant
}}'- "{{
.MyConstant
}}"
Ejemplos
Constante referenciada en las entradas escalonadas
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'
Constante referenciada en las entradas de bucle
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 }}
Parámetros
Los parámetros son variables mutables, con ajustes que la aplicación que realiza la llamada puede proporcionar en el tiempo de ejecución. Puede definir los parámetros en la sección Parameters
del documento YAML.
Reglas para nombres de parámetros
El nombre debe tener entre 3 y 128 caracteres de extensión.
El nombre solo puede contener caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) o guiones bajos (_).
El nombre debe ser único dentro del documento.
El nombre debe estar especificado como una cadena YAML.
Sintaxis
parameters: - <name>: type: <parameter type> default: <parameter value> description: <parameter description>
Nombre de la clave |
Obligatorio |
Descripción |
---|---|---|
|
Sí |
El nombre del parámetro. Debe ser único para el documento (no debe coincidir con ningún otro nombre de parámetro o constante). |
|
Sí |
El tipo de datos del parámetro. Los tipos admitidos incluyen: |
|
No |
El valor predeterminado para el parámetro. |
|
No |
Describe el parámetro. |
Valores de parámetros de referencia en un documento
Puede hacer referencia a los parámetros en entradas escalonadas o en bucle dentro de su documento YAML, de la siguiente manera:
-
Las referencias de parámetros distinguen mayúsculas y minúsculas y el nombre debe coincidir exactamente.
-
El nombre debe estar entre
{{
MyParameter
}}
corchetes dobles. -
Se permiten espacios dentro de las llaves y se recortan automáticamente. Por ejemplo, todas las referencias siguientes son válidas:
{{
,MyParameter
}}{{
,MyParameter
}}{{
,MyParameter
}}{{
MyParameter
}} -
La referencia del documento YAML debe especificarse como una cadena (entre comillas simples o dobles).
Por ejemplo:
- {{
no es válido, ya que no se identifica como una cadena.MyParameter
}}Sin embargo, las siguientes referencias son válidas:
- '{{
yMyParameter
}}'- "{{
.MyParameter
}}"
Ejemplos
En los siguientes ejemplos, se muestra cómo utilizar los parámetros del documento YAML:
-
Consulte un parámetro en las entradas escalonadas:
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'
-
Consulte un parámetro en las entradas de bucle:
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 }}
Anulación de los parámetros en tiempo de ejecución
Puede utilizar la --parameters
opción AWS CLI con un par clave-valor para establecer el valor de un parámetro en tiempo de ejecución.
Especifique el par clave-valor del parámetro como nombre y valor, separados por un signo igual (<name>=<value>).
Varios parámetros deben estar separados por una coma.
Se ignoran los nombres de los parámetros que no se encuentran en el documento de componentes de YAML.
Tanto el nombre como el valor del parámetro son obligatorios.
importante
Los parámetros del componente son valores de texto sin formato y se registran en AWS CloudTrail. Le recomendamos que utilice AWS Secrets Manager nuestro almacén de AWS Systems Manager parámetros para almacenar sus secretos. Para obtener más información sobre Secrets Manager, consulte ¿Qué es Secrets Manager? en la Guía del usuario de AWS Secrets Manager . Para obtener más información acerca del almacén de parámetros de AWS Systems Manager , consulte Almacén de parámetros de AWS Systems Manager en la Guía del usuario de AWS Systems Manager .
Sintaxis
--parameters
name1
=value1
,name2
=value2
...
Opción de la CLI |
Obligatorio |
Descripción |
---|---|---|
--parámetros |
No |
Esta opción toma una lista de pares clave-valor, con el nombre del parámetro como clave. |
Ejemplos
En los siguientes ejemplos, se muestra cómo utilizar los parámetros del documento YAML:
-
El par clave-valor del parámetro especificado en esta opción
--parameter
no es válido:--parameters ntp-server=
-
Establezca un par clave-valor de un parámetro con la opción
--parameter
en el AWS CLI:--parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
-
Establezca varios pares clave-valor de parámetros con la opción
--parameter
en el AWS CLI:--parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
Utilice los parámetros del almacén de parámetros de Systems Manager
Puede hacer referencia a los AWS Systems Manager parámetros del almacén de parámetros (parámetros SSM) en los documentos de sus componentes añadiendo el prefijo a las variables. aws:ssm
Por ejemplo:
{{ aws:ssm:/my/param }}
se resuelve en el valor del parámetro SSM. /my/param
Esta función admite los siguientes tipos de parámetros de SSM:
-
Cadena: se asigna al tipo de TOE de AWS cadena.
-
StringList — Se asigna al TOE de AWS
stringList
tipo. -
SecureString — Se asigna al tipo de TOE de AWS cadena.
Para obtener más información sobre el almacén de parámetros, consulte el almacén de AWS Systems Manager parámetros en la Guía del AWS Systems Manager usuario.
También puede hacer referencia a AWS Secrets Manager los secretos mediante un parámetro SecureString
SSM. Por ejemplo: {{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}
. Para obtener más información, consulte Hacer referencia a AWS Secrets Manager los secretos de los parámetros del almacén de parámetros.
importante
Image Builder excluye la resolución de SecureString
parámetros de sus registros. Sin embargo, también es responsable de garantizar que la información confidencial no se registre mediante los comandos incluidos en el documento del componente. Por ejemplo, si utiliza el echo
comando con una cadena segura, el comando escribirá un valor de texto simple en el registro.
Permisos de IAM necesarios
Para usar los parámetros de Systems Manager en sus componentes, su rol de instancia debe tener el ssm:GetParameter
permiso para el ARN del recurso de parámetros. Por ejemplo:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:
111122223333
:parameter/ImageBuilder-*" } ] }
Para acceder a los valores cifrados, también necesitarás los siguientes permisos:
-
Agregue
kms:Decrypt
SecureString
parámetros o AWS Secrets Manager valores cifrados con un administrador por el cliente AWS KMS key. -
secretsmanager:GetSecretValue
Añádelo si haces referencia a un secreto de Secrets Manager.
Haga referencia a un parámetro SSM en un documento de componentes
El siguiente ejemplo muestra cómo hacer referencia a un parámetro del almacén de parámetros de Systems Manager de los parámetros de Systems Manager de 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
}}."
Resolución dinámica de variables de tiempo de ejecución para los parámetros de SSM
AWSTOE proporciona la siguiente función integrada que puede utilizar en las referencias de variables para manipular o transformar valores en tiempo de ejecución.
función de resolución
La resolve
función resuelve una referencia de variable dentro de otra referencia de variable, lo que permite hacer referencias dinámicas a nombres de variables. Esto resulta útil cuando se trabaja con parámetros de SSM, en los que parte de la ruta del parámetro puede ser variable y transferirse como parámetro del documento.
La resolve
función solo admite la resolución dinámica de la parte del nombre de un parámetro de SSM.
Sintaxis
El dynamic_variable
ejemplo siguiente representa el nombre de un parámetro SSM y debe ser uno de los siguientes:
-
Una referencia de parámetro SSM (por ejemplo,)
aws:ssm:
/my/param
-
Una referencia de parámetros de un documento de componentes (por ejemplo,
)parameter-name
{{ aws:ssm:resolve(
dynamic_variable
) }}
Ejemplo: resolver un parámetro SSM en tiempo de ejecución
En el siguiente ejemplo, se muestra cómo utilizar la resolve
función en un documento de componentes de 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) }}"