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.
Configuración del reintento de etapa para una etapa fallida o acciones fallidas
Puede reintentar una etapa que haya fallado sin tener que volver a ejecutar una canalización desde el principio. Para ello, puede volver a intentar las acciones fallidas en una etapa o volver a intentar todas las acciones de la etapa empezando por la primera acción de la misma. Al volver a intentar las acciones fallidas en una etapa, todas las acciones que aún están en curso siguen funcionando y las fallidas se vuelven a activar. Al volver a intentar una etapa fallida desde la primera acción de la etapa, esta no puede tener ninguna acción en curso. Para poder volver a intentar una fase, es necesario que todas las acciones hayan fallado o que algunas hayan fallado y otras se hayan realizado correctamente.
importante
Al volver a intentar una etapa fallida, se vuelven a intentar todas las acciones de la etapa desde la primera acción de la etapa y, al reintentar las acciones fallidas, se reintentan todas las acciones fallidas de la etapa. Esto anula los artefactos de salida de las acciones que anteriormente se habían realizado correctamente en la misma ejecución.
Aunque se pueden anular los artefactos, se conserva el historial de ejecución de las acciones que anteriormente se habían realizado correctamente.
Si utiliza la consola para ver una canalización, aparece el botón Reintentar etapa o el botón Reintentar acciones fallidas donde las acciones con errores se pueden reintentar.
Si utiliza el AWS CLI, puede utilizar el get-pipeline-state comando para determinar si alguna acción ha fallado.
nota
En los casos siguientes, es posible que no se pueda reintentar las acciones:
-
Todas las acciones de la etapa se realizaron correctamente, por lo que la etapa no se encuentra en estado fallido.
-
La estructura global de la canalización cambió después de producirse el error en la etapa.
-
Ya se está intentando otro reintento en la etapa.
Temas
Consideraciones para el reintento de la etapa
Las consideraciones para el reintento de etapa son las siguientes:
-
Solo puede configurar el reintento automático en caso de error en la etapa para un reintento.
-
Puede configurar el reintento automático en caso de error en el escenario para todas las acciones, incluidas las acciones.
Source
Vuelva a intentar manualmente una etapa fallida
Puede volver a intentar manualmente una etapa fallida mediante la consola o. CLI
También puede configurar una etapa para que se reintente automáticamente en caso de error, como se detalla en. Configure una etapa para el reintento automático en caso de error
Vuelva a intentar manualmente una etapa fallida (consola)
Para volver a intentar una etapa fallida o realizar acciones fallidas en una etapa (consola)
-
Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en http://console.aws.amazon. com/codesuite/codepipeline/home
. Se muestran los nombres de todas las canalizaciones asociadas a tu AWS cuenta.
-
En Name, elija el nombre de la canalización.
-
Ubique la etapa con la acción que ha dado error y después elija una de las siguientes opciones.
-
Para volver a intentar todas las acciones de la etapa, seleccione Reintentar etapa.
-
Para volver a intentar solo las acciones fallidas de la fase, seleccione Reintentar acciones fallidas.
Si todas las acciones que se vuelven a intentar en la etapa se completan correctamente, la canalización se sigue ejecutando.
-
Vuelva a intentar manualmente una etapa fallida () CLI
Para volver a intentar una etapa fallida o realizar acciones fallidas en una etapa - CLI
Para volver AWS CLI a intentar todas las acciones o todas las acciones fallidas, ejecute el retry-stage-execution comando con los siguientes parámetros:
--pipeline-name <value> --stage-name <value> --pipeline-execution-id <value> --retry-mode ALL_ACTIONS/FAILED_ACTIONS
nota
Los valores que puede utilizar para retry-mode
son FAILED_ACTIONS
y ALL_ACTIONS
.
-
En una terminal (Linux, macOS o Unix) o el símbolo del sistema (Windows), ejecute el comando retry-stage-execution, tal y como se muestra en el siguiente ejemplo para una canalización denominada
MyPipeline
.aws codepipeline retry-stage-execution --pipeline-name MyPipeline --stage-name Deploy --pipeline-execution-id b59babff-5f34-EXAMPLE --retry-mode FAILED_ACTIONS
La salida devuelve el ID de ejecución:
{ "pipelineExecutionId": "b59babff-5f34-EXAMPLE" }
-
También puede ejecutar el comando con un archivo JSON de entrada. Primero debe crear un JSON archivo que identifique la canalización, la etapa que contiene las acciones fallidas y la última ejecución de la canalización en esa etapa. Ejecute el comando retry-stage-execution con el parámetro
--cli-input-json
. Para recuperar los detalles que necesitas para el JSON archivo, lo más fácil es usar el get-pipeline-state comando.-
En un terminal (Linux, macOS o Unix) o símbolo del sistema (Windows), ejecute el comando get-pipeline-state en una canalización. Por ejemplo, para una canalización llamada MyFirstPipeline, escribirías algo parecido a lo siguiente:
aws codepipeline get-pipeline-state --name
MyFirstPipeline
La respuesta al comando incluye información de estado de la canalización para cada etapa. En el siguiente ejemplo, la respuesta indica que una o más acciones han fallado en la etapa de ensayo (Staging):
{ "updated": 1427245911.525, "created": 1427245911.525, "pipelineVersion": 1, "pipelineName": "MyFirstPipeline", "stageStates": [ { "actionStates": [...], "stageName": "Source", "latestExecution": { "pipelineExecutionId": "9811f7cb-7cf7-SUCCESS", "status": "Succeeded" } },
{ "actionStates": [...], "stageName": "Staging", "latestExecution": { "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE", "status": "Failed" }
} ] } -
En un editor de texto sin formato, crea un archivo en el que grabarás lo siguiente, en JSON formato:
-
El nombre de la canalización que incluye las acciones fallidas
-
El nombre de la etapa que incluye las acciones fallidas
-
El ID de la última ejecución de la canalización en la etapa
-
El modo de volver a intentarlo.
En el MyFirstPipeline ejemplo anterior, el archivo tendría un aspecto similar al siguiente:
{ "pipelineName": "MyFirstPipeline", "stageName": "Staging", "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE", "retryMode": "FAILED_ACTIONS" }
-
-
Guarde el archivo con un nombre como
retry-failed-actions.json
. -
Llame el archivo que creó al ejecutar el comando retry-stage-execution. Por ejemplo:
importante
Asegúrese de incluir
file://
antes del nombre de archivo. Es obligatorio en este comando.aws codepipeline retry-stage-execution --cli-input-json file://retry-failed-actions.json
-
Para ver los resultados del reintento, abra la CodePipeline consola y elija la canalización que contenga las acciones que fallaron o vuelva a utilizar el get-pipeline-state comando. Para obtener más información, consulte Vea las canalizaciones y los detalles en CodePipeline.
-
Configure una etapa para el reintento automático en caso de error
Puede configurar una etapa para el reintento automático en caso de error. La etapa realizará un reintento y mostrará el estado del reintento en la etapa fallida en la página Ver canalización.
Puede configurar el modo de reintento especificando que la etapa debe reintentar automáticamente todas las acciones de la etapa fallida o solo las acciones fallidas de la etapa.
Configure una etapa para el reintento automático en caso de error (consola)
Puede usar la consola para configurar una etapa para el reintento automático.
Configure una etapa para el reintento automático (consola)
-
Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en http://console.aws.amazon. com/codesuite/codepipeline/home
. Se muestran los nombres y el estado de todas las canalizaciones asociadas a tu AWS cuenta.
-
En Nombre, elija el nombre de la canalización que desea editar.
-
En la página de detalles de la canalización, elija Edit.
-
En la página de edición, para la acción que desee editar, seleccione Editar etapa.
-
Seleccione Configuración de fase automatizada: y, a continuación, seleccione Activar el reintento automático en caso de fallo de fase. Guarda los cambios en tu canalización.
-
En la configuración de etapas automatizada: elige uno de los siguientes modos de reintento:
-
Para especificar que el modo reintentará todas las acciones de la etapa, seleccione Reintentar la etapa fallida.
-
Para especificar que el modo solo reintentará las acciones fallidas de la fase, seleccione Reintentar las acciones fallidas.
Guarda los cambios en tu canalización.
-
-
Una vez ejecutada la canalización, si se produce un error en la etapa, se realizará el reintento automático. Los siguientes ejemplos muestran una etapa de compilación que se ha reintentado automáticamente.
-
Para ver los detalles del reintento, elija. Aparece la ventana.
Configure una etapa para el reintento automático () CLI
Si desea configurar una etapa AWS CLI para que se reintente automáticamente en caso de error, utilice los comandos para crear o actualizar una canalización, tal y como se detalla en Crea una canalización, etapas y acciones y. Editar una canalización en CodePipeline
-
Abre una terminal (Linux, macOS o Unix) o una línea de comandos (Windows) y úsala AWS CLI para ejecutar el
update-pipeline
comando, especificando la condición de error en la estructura de canalización. En el siguiente ejemplo, se configura el reintento automático para un comando por etapas denominado:S3Deploy
{ "name": "S3Deploy", "actions": [ { "name": "s3deployaction", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "S3", "version": "1" }, "runOrder": 1, "configuration": { "BucketName": "static-website-bucket", "Extract": "false", "ObjectKey": "SampleApp.zip" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1" } ], "onFailure": { "result": "RETRY", "retryConfiguration": { "retryMode": "ALL_ACTIONS", }, }
Configure una etapa para el reintento automático ()AWS CloudFormation
Para configurar una etapa AWS CloudFormation para el reintento automático en caso de error, utilice el parámetro del ciclo de vida de la OnFailure
etapa. Utilice el RetryConfiguration
parámetro para configurar el modo de reintento.
OnFailure: Result: RETRY RetryConfiguration: RetryMode: ALL_ACTIONS
-
Actualice la plantilla como se muestra en el siguiente fragmento. El siguiente ejemplo configura el reintento automático para una etapa denominada:
Release
AppPipeline: Type: AWS::CodePipeline::Pipeline Properties: RoleArn: Ref: CodePipelineServiceRole Stages: - Name: Source Actions: - Name: SourceAction ActionTypeId: Category: Source Owner: AWS Version: 1 Provider: S3 OutputArtifacts: - Name: SourceOutput Configuration: S3Bucket: Ref: SourceS3Bucket S3ObjectKey: Ref: SourceS3ObjectKey RunOrder: 1 - Name: Release Actions: - Name: ReleaseAction InputArtifacts: - Name: SourceOutput ActionTypeId: Category: Deploy Owner: AWS Version: 1 Provider: CodeDeploy Configuration: ApplicationName: Ref: ApplicationName DeploymentGroupName: Ref: DeploymentGroupName RunOrder: 1 OnFailure: Result: RETRY RetryConfiguration: RetryMode: ALL_ACTIONS ArtifactStore: Type: S3 Location: Ref: ArtifactStoreS3Location EncryptionKey: Id: arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID Type: KMS DisableInboundStageTransitions: - StageName: Release Reason: "Disabling the transition until integration tests are completed" Tags: - Key: Project Value: ProjectA - Key: IsContainerBased Value: 'true'
Para obtener más información sobre la configuración del reintento de etapa en caso de error, consulte la sección siguiente de la OnFailureGuía del
StageDeclaration
AWS CloudFormation usuario.