命令動作參考 - AWS CodePipeline

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

命令動作參考

命令動作可讓您在虛擬運算執行個體中執行 Shell 命令。當您執行動作時,動作組態中指定的命令會在個別容器中執行。所有指定為 CodeBuild 動作輸入成品的成品,都可以在執行命令的容器內使用。此動作可讓您在不先建立 CodeBuild 專案的情況下指定命令。如需詳細資訊,請參閱參考 OutputArtifact中的 ActionDeclaration和 。 AWS CodePipeline API

Commands 動作的考量

下列考量適用於 命令動作。

  • 命令動作使用與 CodeBuild 動作類似的 CodeBuild 資源,同時允許虛擬運算執行個體中的 shell 環境命令,而不需要關聯或建立建置專案。

    注意

    執行命令動作會在 中產生個別的費用 AWS CodeBuild。

  • 由於 中的命令動作 CodePipeline 使用 CodeBuild 資源,因此動作執行的建置將歸因於 中帳戶的建置限制 CodeBuild。由 Commands 動作執行的建置會計入該帳戶的並行建置限制。

  • 使用 Commands 動作建置的逾時為 55 分鐘,以 CodeBuild 建置為基礎。

  • 運算執行個體在 中使用隔離的建置環境 CodeBuild。

    注意

    由於在帳戶層級使用隔離的建置環境,執行個體可能會重複使用於另一個管道執行。

  • 除了多行格式之外,支援所有格式。輸入命令時,您必須使用單行格式。

  • 跨帳戶或跨區域動作不支援命令動作。

  • 對於此動作, CodePipeline 將擔任管道服務角色,並使用該角色允許在執行階段存取 資源。建議設定服務角色,以便將許可範圍縮小至動作層級。

  • 新增至 CodePipeline 服務角色的許可詳述於 將許可新增至 CodePipeline 服務角色

  • 在主控台中檢視日誌所需的許可詳述於 在 CodePipeline 主控台中檢視運算日誌所需的許可 中。

  • 與 中的其他動作不同 CodePipeline,您不會在動作組態中設定欄位;而是在動作組態之外設定動作組態欄位。

服務角色政策許可

CodePipeline 執行動作時, 會使用管道的名稱 CodePipeline 建立日誌群組,如下所示。這可讓您限制使用管道名稱記錄資源的許可範圍。

/aws/codepipeline/MyPipelineName

如果您使用的是現有的服務角色,若要使用命令動作,您需要為服務角色新增下列許可。

  • 日誌:CreateLogGroup

  • 日誌:CreateLogStream

  • 日誌:PutLogEvents

在服務角色政策陳述式中,將許可範圍縮小至管道層級,如下列範例所示。

{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" }

若要使用動作詳細資訊對話方塊頁面在主控台中檢視日誌,必須將檢視日誌的許可新增至主控台角色。如需詳細資訊,請參閱 中的主控台許可政策範例在 CodePipeline 主控台中檢視運算日誌所需的許可

動作類型

  • 類別:Compute

  • 擁有者:AWS

  • 提供者:Commands

  • 版本:1

組態參數

命令

必要:是

您可以為要執行Commands的動作提供 Shell 命令。在 主控台中,命令會在不同的行上輸入。在 中CLI,命令會以個別字串輸入。

注意

不支援多行格式,並會導致錯誤訊息。必須使用單行格式在命令欄位中輸入命令

下列詳細資訊提供用於命令動作的預設運算。如需詳細資訊,請參閱 使用者指南中的 CodeBuild建置環境運算模式和類型參考。

  • CodeBuild 映像:aws/codebuild/amazonlinux2-x86_64-standard:5.0

  • 運算類型:Linux Small

  • 環境 computeType 值:BUILD_GENERAL1_SMALL

  • 環境類型值:LINUX_CONTAINER

outputVariables

必要:否

指定要匯出之環境中變數的名稱。如需 CodeBuild 環境變數的參考,請參閱 CodeBuild 使用者指南 中的建置環境中的環境變數

檔案

必要:否

您可以提供要匯出為動作輸出成品的檔案。

檔案的支援格式與 CodeBuild 檔案模式相同。例如,**/針對所有檔案輸入 。如需詳細資訊,請參閱 CodeBuild 使用者指南 中的建置規格參考 CodeBuild

使用 Commands 動作編輯新管道的動作頁面

Input artifacts (輸入成品)

  • 成品數量: 1 to 10

輸出成品

  • 成品數量: 0 to 1

動作宣告 (範例)

YAML
name: Commands_action actionTypeId: category: Compute owner: AWS provider: Commands version: '1' runOrder: 1 configuration: {} commands: - ls - echo hello - 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}' outputArtifacts: - name: BuildArtifact files: - **/ inputArtifacts: - name: SourceArtifact outputVariables: - AWS_DEFAULT_REGION region: us-east-1 namespace: compute
JSON
{ "name": "Commands_action", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "runOrder": 1, "configuration": {}, "commands": [ "ls", "echo hello", "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}" ], "outputArtifacts": [ { "name": "BuildArtifact", "files": [ "**/" ] } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "outputVariables": [ "AWS_DEFAULT_REGION" ], "region": "us-east-1", "namespace": "compute" }

以下相關資源可協助您使用此動作。