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.
Agregue una acción interregional en CodePipeline
AWS CodePipeline incluye una serie de acciones que ayudan a configurar los recursos de creación, prueba e implementación para el proceso de lanzamiento automatizado. Puedes añadir acciones a tu canalización que estén en una AWS región diferente a la tuya. Cuando un Servicio de AWS es el proveedor de una acción y este type/provider tipo de acción se encuentra en una AWS región diferente a la de tu canalización, se trata de una acción interregional.
nota
Cross-region Las acciones son compatibles y solo se pueden crear en AWS las regiones en las que están respaldadas. CodePipeline Para obtener una lista de las AWS regiones compatibles CodePipeline, consulteCuotas en AWS CodePipeline.
Puedes usar la consola o CloudFormation añadir acciones interregionales en las canalizaciones. AWS CLI
nota
CodePipeline Es posible que algunos tipos de acción solo estén disponibles en determinadas AWS regiones. Ten en cuenta también que puede haber AWS regiones en las que esté disponible un tipo de acción, pero no haya un AWS proveedor específico para ese tipo de acción.
Al crear o editar una canalización, debe tener un bucket de artefactos en la región de la canalización, así como un bucket de artefactos por cada región en la que tiene previsto ejecutar una acción. Para obtener más información sobre el parámetro ArtifactStores, consulte CodePipeline referencia de estructura de tuberías.
nota
CodePipeline gestiona la copia de artefactos de una AWS región a otras regiones al realizar acciones entre regiones.
Si utilizas la consola para crear una canalización o acciones entre regiones, los grupos de artefactos predeterminados se configuran en las regiones CodePipeline en las que tengas acciones. Cuando usas el AWS CLI SDK o un SDK para crear una canalización o acciones interregionales, proporcionas el depósito de artefactos para cada región en la que tengas acciones. CloudFormation
nota
Debes crear el depósito de artefactos y la clave de cifrado en la misma AWS región que la acción interregional y en la misma cuenta que tu canalización.
No puede crear acciones entre regiones para los siguientes tipos de acciones:
-
Acciones de código fuente
-
Third-party acciones
-
Acciones personalizadas
nota
Al utilizar la acción de invocación de Lambda entre regiones CodePipeline, el estado de la ejecución de Lambda que utiliza el PutJobSuccessResult y PutJobFailureResult debe enviarse a la AWS región en la que esté presente la función Lambda y no a la región en la que exista. CodePipeline
Cuando una canalización incluye una acción interregional como parte de una etapa, solo CodePipeline replica los artefactos de entrada de la acción interregional desde la región de canalización a la región de la acción.
nota
La región del proceso y la región en la que se mantienen tus recursos de detección de cambios en los CloudWatch eventos siguen siendo las mismas. La región en la que se aloja la canalización no cambia.
Gestiona las acciones interregionales en una canalización (consola)
Puede usar la CodePipeline consola para agregar una acción interregional a una canalización existente. Para crear una canalización nueva con acciones entre regiones mediante el asistente de creación de canalizaciones, consulte Creación de una canalización personalizada (consola).
En la consola, puede crear una acción interregional en una fase de tramitación seleccionando el proveedor de la acción y el campo Región, que muestra los recursos que ha creado en esa región para ese proveedor. Al añadir una acción interregional, CodePipeline utiliza un depósito de artefactos independiente en la región de la acción. Para obtener más información sobre los buckets de artefactos entre regiones, consulte CodePipeline referencia de estructura de tuberías.
Añade una acción interregional a una fase de tramitación (consola)
Utilice la consola para añadir una acción entre regiones a una canalización.
nota
Si la canalización se está ejecutando al guardar los cambios, esa ejecución no se completa.
Para añadir una acción entre regiones
-
Inicie sesión en la consola en http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Seleccione la canalización y, a continuación, elija Edit (Editar).
-
En la parte inferior del diagrama, elija + Add stage (Añadir etapa) si va a añadir una etapa nueva o elija Edit stage (Editar etapa) si desea añadir la acción a una etapa existente.
-
En Edit: <Stage> (Editar: <etapa>), elija + Add action group (Añadir grupo de acciones) para añadir una acción en serie. O elija + Add action (Añadir acción) para añadir una acción en paralelo.
-
En la página Edit action (Editar acción):
-
En Action name (Nombre de la acción), escriba un nombre para la acción entre regiones.
-
En Action provider (Proveedor de acción), elija el proveedor de la acción.
-
En Región, elige la AWS región en la que creaste o planeas crear el recurso para la acción. Al seleccionar la región, los recursos disponibles para esa región se muestran para su selección. El campo Región designa dónde se crean los AWS recursos para este tipo de acción y tipo de proveedor. Este campo solo se muestra en el caso de las acciones en las que el proveedor de la acción es un Servicio de AWS. El campo Región se establece de forma predeterminada en la misma Región de AWS que la canalización.
-
En Input artifacts (Artefactos de entrada), elija la entrada apropiada de la etapa anterior. Por ejemplo, si la etapa anterior es una etapa de origen, elija SourceArtifact.
-
Rellene todos los campos obligatorios para el proveedor de la acción que está configurando.
-
En Output artifacts (Artefactos de salida), elija la salida apropiada para la etapa siguiente. Por ejemplo, si la siguiente etapa es una etapa de despliegue, elija BuildArtifact.
-
Seleccione Save.
-
-
En Edit: <Stage> (Editar: <etapa>), elija Done (Listo).
-
Seleccione Save.
Edite una acción interregional en una fase de canalización (consola)
Utilice la consola para editar una acción entre regiones existente en una canalización.
nota
Si la canalización se está ejecutando al guardar los cambios, esa ejecución no se completa.
Para editar una acción entre regiones
-
Inicie sesión en la consola en http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Seleccione la canalización y, a continuación, elija Edit (Editar).
-
Elija Edit stage (Editar etapa).
-
En Edit: <Stage> (Editar: <etapa>), elija el icono para editar una acción existente.
-
En la página Edit action (Editar acción), realice los cambios oportunos en los campos.
-
En Edit: <Stage> (Editar: <etapa>), elija Done (Listo).
-
Seleccione Save.
Eliminar una acción interregional de una fase de canalización (consola)
Utilice la consola para eliminar una acción entre regiones existente de una canalización.
nota
Si la canalización se está ejecutando al guardar los cambios, esa ejecución no se completa.
Para eliminar una acción entre regiones
-
Inicie sesión en la consola en http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Seleccione la canalización y, a continuación, elija Edit (Editar).
-
Elija Edit stage (Editar etapa).
-
En Edit: <Stage> (Editar: <etapa>), elija el icono para eliminar una acción existente.
-
En Edit: <Stage> (Editar: <etapa>), elija Done (Listo).
-
Seleccione Save.
Agregar una acción interregional a una canalización (CLI)
Puede utilizarla AWS CLI para agregar una acción interregional a una canalización existente.
Para crear una acción interregional en una fase de canalización con AWS CLI, debes añadir la acción de configuración junto con un campo opcionalregion. También debes haber creado ya un depósito de artefactos en la región de la acción. En lugar de proporcionar el parámetro artifactStore de la canalización de región única, utilice el parámetro artifactStores para incluir un listado de los buckets de artefactos de cada región.
nota
En este tutorial y en sus ejemplos, RegionA se muestra la región en la que se creó la canalización. Tiene acceso al bucket de RegionA Amazon S3 que se utiliza para almacenar los artefactos de la canalización y al rol de servicio que utiliza. CodePipeline RegionBes la región en la que se crean la CodeDeploy aplicación, el grupo de implementación y el rol de servicio CodeDeploy que utilizan.
Requisitos previos
Tiene que haber creado lo siguiente:
-
Una canalización en
RegionA. -
Ha llegado un cubo de artefactos de Amazon S3.
RegionB -
Los recursos para su acción, como la CodeDeploy aplicación y el grupo de implementación para una acción de implementación entre regiones, están en.
RegionB
Agregue una acción interregional a una canalización (CLI)
Utilice la AWS CLI para agregar una acción interregional a una canalización.
Para añadir una acción entre regiones
-
En el caso de una canalización
RegionA, ejecuta el get-pipeline comando para copiar la estructura de la canalización en un archivo JSON. Por ejemplo, para una canalización denominadaMyFirstPipeline, escriba el siguiente comando:aws codepipeline get-pipeline --nameMyFirstPipeline>pipeline.jsonEste comando no devuelve nada, pero el archivo creado debería aparecer en el directorio en el que se ejecutó el comando.
-
Añada el campo
regionpara añadir una nueva etapa con la acción entre regiones que incluya la región y los recursos de la acción. En el siguiente ejemplo de JSON, se agrega una etapa de implementación con una acción de implementación interregional en la que el proveedor se encuentra CodeDeploy en una nueva regiónus-east-1.{ "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "RegionB", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name", "DeploymentGroupName": "name" }, "runOrder": 1 } -
En la estructura de la canalización, elimine el campo
artifactStorey añada el mapaartifactStoresde su nueva acción entre regiones. El mapeo debe incluir una entrada para cada AWS región en la que realices acciones. Para cada entrada del mapa, los recursos deben estar en la AWS región correspondiente. En el ejemplo siguiente,ID-Aes el ID de la clave de cifrado deRegionAyID-Bes el ID de la clave de cifrado deRegionB."artifactStores":{ "RegionA":{ "encryptionKey":{ "id":"ID-A", "type":"KMS" }, "location":"Location1", "type":"S3" }, "RegionB":{ "encryptionKey":{ "id":"ID-B", "type":"KMS" }, "location":"Location2", "type":"S3" } }En el ejemplo siguiente de JSON se muestra el bucket de us-west-2 como
my-storage-buckety añade el nuevo bucket de us-east-1 denominadomy-storage-bucket-us-east-1."artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } }, -
Si está trabajando con la estructura de la canalización recuperada mediante el comando get-pipeline, elimine las líneas
metadatadel archivo JSON. De lo contrario, el comando update-pipeline no puede utilizarlo. Elimine las líneas"metadata": { }y los campos"updated","created"y"pipelineARN".Por ejemplo, quite las siguientes líneas de la estructura:
"metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }Guarde el archivo.
-
Para aplicar los cambios, ejecute el comando update-pipeline especificando el archivo JSON:
importante
Asegúrese de incluir
file://antes del nombre de archivo. Es obligatorio en este comando.aws codepipeline update-pipeline --cli-input-json file://pipeline.jsonEste comando devuelve la estructura completa de la canalización editada. El resultado es similar al siguiente.
{ "pipeline": { "version": 4, "roleArn": "ARN", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "CodeCommit" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "configuration": { "PollForSourceChanges": "false", "BranchName": "main", "RepositoryName": "MyTestRepo" }, "runOrder": 1 } ] }, { "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "us-east-1", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name", "DeploymentGroupName": "name" }, "runOrder": 1 } ] } ], "name": "AnyCompanyPipeline", "artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } } } }nota
El comando update-pipeline detiene la canalización. Si se está ejecutando una revisión en la canalización al ejecutar el comando update-pipeline, dicha ejecución se detiene. Debe iniciar manualmente la canalización para ejecutar dicha revisión en la canalización actualizada. Utilice el comando
start-pipeline-executionpara iniciar manualmente la canalización. -
Tras actualizar la canalización, la acción interregional se muestra en la consola.
Añade una acción interregional a una canalización (CloudFormation)
Se puede usar CloudFormation para agregar una acción interregional a una canalización existente.
Para añadir una acción interregional con CloudFormation
-
Añada el parámetro
Regional recursoActionDeclarationen la plantilla, tal y como se muestra en este ejemplo:ActionDeclaration: Type: Object Properties: ActionTypeId: Type: ActionTypeId Required: true Configuration: Type: Map InputArtifacts: Type: Array ItemType: Type: InputArtifact Name: Type: String Required: true OutputArtifacts: Type: Array ItemType: Type: OutputArtifact RoleArn: Type: String RunOrder: Type: IntegerRegion:Type: String -
En
Mappings, añada el mapa de región como se muestra en este ejemplo para una asignación denominadaSecondRegionMapque asigne valores a las clavesRegionAyRegionB. En el recursoPipeline, en el campoartifactStore, añada el mapaartifactStorespara la nueva acción entre regiones tal y como se indica a continuación:Mappings: SecondRegionMap:RegionA: SecondRegion: "RegionB"RegionB: SecondRegion: "RegionA" ... Properties: ArtifactStores: - Region:RegionBArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionB- Region:RegionAArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionAEn el siguiente ejemplo de YAML, se muestra el
RegionAbucket comous-west-2y se agrega el nuevoRegionBbucket:eu-central-1Mappings: SecondRegionMap: us-west-2: SecondRegion: "eu-central-1" eu-central-1: SecondRegion: "us-west-2" ... Properties: ArtifactStores: - Region: eu-central-1 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-eu-central-1 - Region: us-west-2 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-us-west-2 -
Guarde la plantilla actualizada en el equipo local y luego abra la consola de CloudFormation .
-
Seleccione la pila y luego elija Create Change Set for Current Stack (Crear conjuntos de cambios para la pila actual).
-
Cargue la plantilla y, a continuación, consulte los cambios indicados en CloudFormation. Estos son los cambios que se realizan en la pila. Debería ver los nuevos recursos en la lista.
-
Elija Ejecutar.