翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
失敗したステージまたは失敗したアクションのステージ再試行の設定
パイプラインを最初から再実行することなく、失敗したステージを再試行できます。そのためには、ステージ内の失敗したアクションを再試行するか、ステージ内の最初のアクションから始めてステージ内のすべてのアクションを再試行します。ステージ内の失敗したアクションを再試行する場合、進行中のすべてのアクションはそのまま動作し続け、失敗したアクションは再度トリガーされます。失敗したアクションのあるステージ内で最初のアクションから再試行する場合、ステージに進行中のアクションがないことが必要です。ステージを再試行するには、すべてのアクションが失敗しているか、一部のアクションが失敗して他のアクションが成功している必要があります。
重要
失敗したステージを再試行すると、そのステージ内の最初のアクションからすべてのアクションが再試行されます。失敗したアクションを再試行すると、ステージ内のすべての失敗したアクションが再試行されます。これにより、同じ実行内で以前に成功したアクションの出力アーティファクトは上書きされます。
アーティファクトが上書きされても、以前に成功したアクションの実行履歴は保持されます。
コンソールを使用してパイプラインを表示している場合、再試行できるステージに [ステージの再試行] ボタンまたは [失敗したアクションの再試行] ボタンが表示されます。
を使用している場合は AWS CLI、 get-pipeline-state コマンドを使用して、アクションが失敗したかどうかを判断できます。
注記
次の場合は、ステージを再試行できないことがあります。
-
ステージ内のすべてのアクションが成功したため、ステージが失敗ステータスになっていない。
-
ステージが失敗した後、パイプライン全体の構造が変更された。
-
ステージで別の再試行がすでに進行中です。
ステージ再試行に関する考慮事項
ステージ再試行に関する考慮事項は次のとおりです。
-
自動再試行は、1 回の再試行に対してのみ設定できます。
-
Source
アクションを含むすべてのアクションに対して、ステージでの自動再試行失敗を設定できます。
失敗したステージを手動で再試行する
コンソールまたは を使用して、失敗したステージを手動で再試行できますCLI。
「」で説明されているように、障害時に自動的に再試行するようにステージを設定することもできます障害発生時の自動再試行のステージを設定する。
失敗したステージを手動で再試行する (コンソール)
失敗したステージまたはステージ内の失敗したアクションを再試行するには
-
にサインイン AWS Management Console し、http://console.aws.amazon.com/codesuite/codepipeline/home
で CodePipeline コンソールを開きます。 AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。
-
[Name] で、パイプラインの名前を選択します。
-
失敗したアクションのあるステージを見つけ、次のいずれかを選択します。
-
ステージ内のすべてのアクションを再試行するには、[ステージの再試行] を選択します。
-
ステージ内の失敗したアクションのみを再試行するには、[失敗したアクションの再試行] を選択します。
再試行したアクションがすべて正常に完了した場合、パイプラインは続行されます。
-
失敗したステージを手動で再試行する (CLI)
失敗したステージまたは失敗したアクションをステージで再試行するには - CLI
を使用してすべてのアクションまたは失敗したすべてのアクション AWS CLI を再試行するには、次のパラメータを使用して retry-stage-execution コマンドを実行します。
--pipeline-name <value> --stage-name <value> --pipeline-execution-id <value> --retry-mode ALL_ACTIONS/FAILED_ACTIONS
注記
retry-mode
に使用できる値は FAILED_ACTIONS
と ALL_ACTIONS
です。
-
ターミナル (Linux、macOS、UNIX) またはコマンドプロンプト (Windows) で、retry-stage-execution コマンドを実行します。次の例では、
MyPipeline
という名前のパイプラインに対して実行しています。aws codepipeline retry-stage-execution --pipeline-name MyPipeline --stage-name Deploy --pipeline-execution-id b59babff-5f34-EXAMPLE --retry-mode FAILED_ACTIONS
出力は実行 ID を返します。
{ "pipelineExecutionId": "b59babff-5f34-EXAMPLE" }
-
JSON 入力ファイルを使用して コマンドを実行することもできます。まず、パイプライン、失敗したアクションを含むステージ、そのステージでの最新のパイプライン実行を識別するJSONファイルを作成します。その後、retry-stage-execution コマンドに
--cli-input-json
パラメータを指定して実行します。JSON ファイルに必要な詳細を取得するには、 get-pipeline-state コマンドを使用するのが最も簡単です。-
ターミナル (Linux、macOS、UNIX) またはコマンドプロンプト (Windows) で、パイプラインの get-pipeline-state コマンドを実行します。例えば、 という名前のパイプラインの場合 MyFirstPipeline、次のようなものを入力します。
aws codepipeline get-pipeline-state --name
MyFirstPipeline
コマンドに対する応答には、各ステージのパイプラインの状態情報が含まれます。以下の例では、応答は [Staging] ステージで 1 つ以上のアクションが失敗したことを示しています。
{ "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" }
} ] } -
プレーンテキストエディタで、次のJSON形式を記録するファイルを作成します。
-
失敗したアクションを含むパイプラインの名前
-
失敗したアクションを含むステージの名前
-
ステージでの最新のパイプラインの実行 ID
-
再試行モード
前の MyFirstPipeline 例では、ファイルは次のように表示されます。
{ "pipelineName": "MyFirstPipeline", "stageName": "Staging", "pipelineExecutionId": "3137f7cb-7cf7-EXAMPLE", "retryMode": "FAILED_ACTIONS" }
-
-
retry-failed-actions.json
のような名前でファイルを保存します。 -
retry-stage-execution コマンドを実行したときに作成したファイルを呼び出します。例:
重要
ファイル名の前に必ず
file://
を含めてください。このコマンドでは必須です。aws codepipeline retry-stage-execution --cli-input-json file://retry-failed-actions.json
-
再試行の結果を表示するには、 CodePipeline コンソールを開き、失敗したアクションを含むパイプラインを選択するか、 get-pipeline-state コマンドを再度使用します。詳細については、「でパイプラインと詳細を表示する CodePipeline」を参照してください。
-
障害発生時の自動再試行のステージを設定する
障害時に自動再試行を行うステージを設定できます。ステージは再試行を 1 回実行し、パイプラインの表示ページで失敗したステージに再試行ステータスを表示します。
再試行モードを設定するには、ステージが失敗したステージのすべてのアクションを自動的に再試行するか、ステージ内の失敗したアクションのみを自動的に再試行するように指定します。
障害発生時の自動再試行のステージを設定する (コンソール)
コンソールを使用して、自動再試行のステージを設定できます。
自動再試行のステージを設定する (コンソール)
-
にサインイン AWS Management Console し、http://console.aws.amazon.com/codesuite/codepipeline/home
で CodePipeline コンソールを開きます。 AWS アカウントに関連付けられているすべてのパイプラインの名前とステータスが表示されます。
-
[Name] で、編集するパイプラインの名前を選択します。
-
パイプライン詳細ページで、[編集] を選択します。
-
編集ページで、編集するアクションでステージの編集 を選択します。
-
自動ステージ設定: を選択し、ステージ失敗時に自動再試行を有効にする を選択します。パイプラインに変更を保存します。
-
自動ステージ設定: で、次のいずれかの再試行モードを選択します。
-
モードがステージ内のすべてのアクションを再試行するように指定するには、失敗したステージを再試行する を選択します。
-
モードがステージで失敗したアクションのみを再試行するように指定するには、失敗したアクションを再試行する を選択します。
パイプラインに変更を保存します。
-
-
パイプラインの実行後、ステージの障害が発生した場合、自動再試行が試行されます。次の例は、自動的に再試行されたビルドステージを示しています。
-
再試行の詳細を表示するには、 を選択します。ウィンドウが表示されます。
自動再試行のステージを設定する (CLI)
を使用して、障害時に自動的に再試行するようにステージ AWS CLI を設定するには、 コマンドを使用して、 パイプライン、ステージ、アクションを作成するおよび で説明されているパイプラインを作成または更新しますでパイプラインを編集する CodePipeline。
-
ターミナル (Linux、macOS または Unix) またはコマンドプロンプト (Windows) を開き、 AWS CLI を使用して
update-pipeline
コマンドを実行し、パイプライン構造で障害条件を指定します。次の例では、 という名前のステージに自動再試行を設定します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", }, }
自動再試行のステージを設定する (AWS CloudFormation)
AWS CloudFormation を使用して、障害時の自動再試行のステージを設定するには、OnFailure
ステージライフサイクルパラメータを使用します。RetryConfiguration
パラメータを使用して再試行モードを設定します。
OnFailure: Result: RETRY RetryConfiguration: RetryMode: ALL_ACTIONS
-
次のスニペットに示すようにテンプレートを更新します。次の例では、 という名前のステージの自動再試行を設定します
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'
障害発生時のステージ再試行の設定の詳細については、AWS CloudFormation 「 ユーザーガイド
StageDeclaration
」のOnFailure「」を参照してください。