Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso de funciones de anulación de parámetros con canalizaciones de CodePipeline

Modo de enfoque
Uso de funciones de anulación de parámetros con canalizaciones de CodePipeline - AWS CloudFormation

En una fase de CodePipeline, puede especificar anulaciones de parámetros para acciones de AWS CloudFormation. Las anulaciones de parámetros le permiten especificar valores de parámetros de pantalla que anulan los valores de un archivo de configuración de plantilla. AWS CloudFormation proporciona funciones para ayudarle a especificar valores dinámicos (valores que son desconocidos hasta que se ejecuta la canalización).

Fn::GetArtifactAtt

La función Fn::GetArtifactAtt recupera el valor de un atributo de un artefacto de entrada, como el nombre del bucket de S3 donde se almacena el artefacto. Utilice esta función para especificar los atributos de un artefacto, como su nombre de archivo o el nombre del bucket de Amazon S3.

Cuando ejecuta una canalización, CodePipeline copia y escribe los archivos en el almacén de artefactos de la canalización (un bucket de S3). CodePipeline genera los nombres de archivo en el almacén de artefactos. Estos nombres de archivos son desconocidos antes de ejecutar la canalización.

Por ejemplo, en la canalización, podría tener una fase de origen en la que CodePipeline copia el código fuente de su función de AWS Lambda en el almacén de artefactos. En la siguiente fase, dispone de una plantilla de AWS CloudFormation que crea la función de Lambda, pero AWS CloudFormation requiere el nombre de archivo para crear la función. Debe utilizar la función Fn::GetArtifactAtt para transferir los nombres de archivo y bucket de S3 exactos.

Sintaxis

Utilice la siguiente sintaxis para recuperar un valor de atributo de un artefacto.

{ "Fn::GetArtifactAtt" : [ "artifactName", "attributeName" ] }
artifactName

El nombre del artefacto de entrada. Debe declarar este artefacto como entrada para la acción asociada.

attributeName

El nombre del atributo de artefacto cuyo valor desea recuperar. Para más detalles acerca de cada atributo de artefacto, consulte la siguiente sección de atributos.

Ejemplo

Las siguientes anulaciones de parámetros especifican los parámetros BucketName y ObjectKey al recuperar el nombre del bucket de S3 y el nombre de archivo del artefacto LambdaFunctionSource. Este ejemplo presupone que CodePipeline copió el código fuente de la función de Lambda y lo guardó como un artefacto, por ejemplo, como parte de una fase de origen.

{ "BucketName" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "BucketName"]}, "ObjectKey" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "ObjectKey"]} }

Atributos

Puede recuperar los siguientes atributos para un artefacto.

BucketName

El nombre del bucket de S3 donde se almacena el artefacto.

ObjectKey

El nombre del archivo .zip que contiene el artefacto que CodePipeline genera, como 1ABCyZZ.zip.

URL

La URL de Amazon Simple Storage Service (Amazon S3) del artefacto, como https://s3.us-west-2.amazonaws.com/artifactstorebucket-yivczw8jma0c/test/TemplateSo/1ABCyZZ.zip.

Fn::GetParam

La función Fn::GetParam devuelve un valor de un par clave-valor en un archivo con formato JSON. El archivo JSON debe estar incluido en un artefacto.

Utilice esta función para recuperar los valores de salida desde una pila de AWS CloudFormation y usarlos como entrada para otra acción. Por ejemplo, si especifica un nombre de archivo de salida para una acción de AWS CloudFormation, CodePipeline guarda la salida en un archivo JSON y luego lo agrega al archivo .zip del artefacto de salida. Utilice la función Fn::GetParam para recuperar el valor de salida y úselo como entrada para otra acción.

Sintaxis

Utilice la siguiente sintaxis para recuperar un valor de un par clave-valor.

{ "Fn::GetParam" : [ "artifactName", "JSONFileName", "keyName" ] }
artifactName

El nombre del artefacto, que debe incluirse como artefacto de entrada para la acción asociada.

JSONFileName

El nombre de un archivo JSON contenido en el artefacto.

keyName

El nombre de la clave cuyo valor desea recuperar.

Ejemplos

Los siguientes ejemplos muestran cómo utilizar la función Fn::GetParam en una anulación de parámetros.

Sintaxis

La siguiente anulación de parámetros especifica el parámetro WebSiteURL recuperando el valor de la clave URL del archivo stack-output.json que está en el artefacto WebStackOutput.

{ "WebSiteURL" : { "Fn::GetParam" : ["WebStackOutput", "stack-output.json", "URL"]} }

Fragmentos de plantillas de AWS CloudFormation

En los siguientes fragmentos de plantilla de AWS CloudFormation, provenientes de una canalización de CodePipeline, se muestra cómo transferir salidas de la pila. Estos fragmentos muestran dos etapas de definición de la canalización. La primera etapa crea una pila y guarda sus salidas en el archivo TestOutput.json en el artefacto StackAOutput. Estos valores se especifican con las propiedades OutputFileName y OutputArtifacts.

El nombre del artefacto de entrada de origen para las etapas es TemplateSource. El nombre de archivo de la plantilla de pila es teststackA.yaml y el nombre de archivo del archivo de configuración es test-configuration.json. En ambas etapas, estos valores se especifican con las propiedades TemplateConfiguration y TemplatePath, como se muestra a continuación:

TemplateConfiguration: TemplateSource::test-configuration.json TemplatePath: TemplateSource::teststackA.yaml
ejemplo Etapa de creación de pila A
- Name: CreateTestStackA Actions: - Name: CloudFormationCreate ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' Configuration: ActionMode: CREATE_UPDATE Capabilities: CAPABILITY_IAM OutputFileName: TestOutput.json RoleArn: !GetAtt [CFNRole, Arn] StackName: StackA TemplateConfiguration: TemplateSource::test-configuration.json TemplatePath: TemplateSource::teststackA.yaml InputArtifacts: - Name: TemplateSource OutputArtifacts: - Name: StackAOutput RunOrder: '1'

En una fase siguiente, la pila B utiliza las salidas de la pila A. En la propiedad ParameterOverrides, el ejemplo utiliza la función Fn::GetParam para especificar el parámetro StackBInputParam. El valor resultante es el valor asociado a la clave StackAOutputName.

ejemplo Etapa de creación de pila B
- Name: CreateTestStackB Actions: - Name: CloudFormationCreate ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' Configuration: ActionMode: CREATE_UPDATE Capabilities: CAPABILITY_IAM RoleArn: !GetAtt [CFNRole, Arn] StackName: StackB TemplateConfiguration: TemplateSource::test-configuration.json TemplatePath: TemplateSource::teststackB.yaml ParameterOverrides: | { "StackBInputParam" : { "Fn::GetParam" : ["StackAOutput", "TestOutput.json", "StackAOutputName"]} } InputArtifacts: - Name: TemplateSource - Name: StackAOutput RunOrder: '1'

Véase también

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con estos parámetros.

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.