設定自動復原的階段 - AWS CodePipeline

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定自動復原的階段

您可以在管道中設定階段,以便在失敗時自動復原。當階段失敗時,階段會復原為最近的成功執行。如果先前的執行是在目前的配管結構版本中啟動的,配管才能復原至先前的執行。由於自動復原組態是管線定義的一部分,因此只有在管線階段中成功執行管線之後,您的管線階段才會自動回復。

設定自動復原的階段 (主控台)

您可以將階段復原至指定的先前成功執行。如需詳細資訊,請參閱 CodePipeline API 指南RollbackStage中的。

設定自動復原的階段 (主控台)
  1. 請登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 http://console.aws.amazon.com/codesuite/codepipeline/home

    會顯示與您 AWS 帳戶相關聯的所有管道的名稱和狀態。

  2. Name (名稱) 中,選擇您想編輯的管道名稱。

  3. 在管道詳細資訊頁面上,選擇 Edit (編輯)

  4. 在 [編] 頁面上,針對您要編輯的動作選擇 [編輯階段]。

  5. 選擇「設定階段失敗時自動復原」。將變更儲存至管道。

    在中配置復原階段的編輯螢幕範例 CodePipeline。

設定自動復原的階段 (CLI)

若要使用 AWS CLI 將失敗的階段設定為自動復原至最近成功的執行,請使用指令來建立或更新管線,如在中建立管線 CodePipeline和中所述在中編輯配管 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": "ROLLBACK" } }

    如需有關設定階段復原失敗條件的詳細資訊,請參閱 CodePipeline API 參考FailureConditions中的。

設定自動復原的階段 (AWS CloudFormation)

若要用 AWS CloudFormation 來設定階段,以便在失敗時自動復原,請使用OnFailure參數。失敗時,階段會自動回復到最近的成功執行。

OnFailure: Result: ROLLBACK
  • 如下面的代碼片段更新模板。下列範例會為名為的暫存設定自動復原: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: ROLLBACK 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'

    如需有關設定階段復原的失敗條件的詳細資訊,請參閱OnFailureAWS CloudFormation 使用指南》StageDeclaration中的〈〉中的〈