View a markdown version of this page

使用变量 - AWS CodePipeline

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用变量

CodePipeline 生成变量中的一些操作。要使用变量,请执行以下操作:

  • 将命名空间分配给某个操作,以使其生成的变量可用于下游操作配置。

  • 配置下游操作以使用该操作生成的变量。

    您可以查看每个操作执行的详细信息,以确定该操作在执行时生成的每个输出变量的值。

要查看使用变量的 step-by-step示例,请执行以下操作:

为操作配置变量

向管道添加操作时,您可以为其分配命名空间并将其配置为使用之前操作中的变量。

为操作配置变量(控制台)

此示例创建了一个包含 CodeCommit 源操作和 CodeBuild 生成操作的管道。该 CodeBuild 操作配置为使用该 CodeCommit 操作生成的变量。

如果未指定命名空间,则这些变量不可在操作配置中引用。使用控制台创建管道时,会自动生成每个操作的命名空间。

创建具有变量的管道
  1. 登录 AWS 管理控制台 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home。

  2. 选择 Create pipeline(创建管道)。为您的管道输入名称,然后选择 Next (下一步)。

  3. 在源中,在提供者中,选择CodeCommit。为源操作选择 CodeCommit 存储库和分支,然后选择 “下一步”。

  4. 在 “构建” 中,在 “提供者” 中选择CodeBuild。选择现有的 CodeBuild 构建项目名称或选择 “创建项目”。在 “创建构建项目” 上,创建生成项目,然后选择 “返回到” CodePipeline。

    在 Environment variables (环境变量) 下,选择 Add environment variables (添加环境变量)。例如,使用变量语法 #{codepipeline.PipelineExecutionId} 输入执行 ID,使用变量语法 #{SourceVariables.CommitId} 输入提交 ID。

    注意

    您可以在向导的任何操作配置字段中输入变量语法。

  5. 选择创建。

  6. 创建管道后,您可以查看由向导创建的命名空间。在管道上,选择要查看其命名空间的阶段所对应的图标。在此示例中,将显示源操作自动生成的命名空间 SourceVariables。

    示例:“操作信息”屏幕
编辑现有操作的命名空间
  1. 登录 AWS 管理控制台 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home。

  2. 选择要编辑的管道,然后选择 Edit (编辑)。对于源阶段,选择 Edit stage (编辑阶段)。添加动 CodeCommit 作。

  3. 在 Edit action (编辑操作) 中,查看 Variable namespace (变量命名空间) 字段。如果现有操作是以前创建或者未使用向导创建,则必须添加命名空间。在 Variable namespace (变量命名空间) 中,输入命名空间名称,然后选择 Save (保存)。

查看输出变量
  1. 登录 AWS 管理控制台 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home。

  2. 成功创建管道并运行后,您可以在操作执行详细信息页面上查看变量。有关信息,请参阅查看变量(控制台)。

为操作配置变量 (CLI)

使用create-pipeline命令创建管道或使用update-pipeline命令编辑管道时,可以在操作配置中进行 reference/use 变量。

如果未指定命名空间,则操作生成的变量不可在任何下游操作配置中引用。

使用命名空间配置操作
  1. 按照中 创建管道、阶段和操作 的步骤使用 CLI 创建管道。启动输入文件以提供带有 --cli-input-json 参数的 create-pipeline 命令。在管道结构中,添加 namespace 参数并指定名称,例如 SourceVariables。

    . . . { "inputArtifacts": [], "name": "Source", "region": "us-west-2", "namespace": "SourceVariables", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "CodeCommit" }, "outputArtifacts": [ . . .
  2. 使用类似于 MyPipeline.json 的名称保存文件。

  3. 在终端(Linux、macOS 或 Unix)或命令提示符 (Windows) 处,运行 create-pipeline 命令并创建管道。

    调用您运行 create-pipeline 命令时创建的文件。例如:

    aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
配置下游操作以使用变量
  1. 编辑输入文件以提供带有 --cli-input-json 参数的 update-pipeline 命令。在下游操作中,将变量添加到该操作的配置。变量由命名空间和键组成,以句点分隔。例如,要为管道执行 ID 和源提交 ID 添加变量,请为变量 #{codepipeline.PipelineExecutionId} 指定命名空间 codepipeline。为变量 #{SourceVariables.CommitId} 指定命名空间 SourceVariables。

    { "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifacts" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Execution_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },
  2. 使用类似于 MyPipeline.json 的名称保存文件。

  3. 在终端(Linux、macOS 或 Unix)或命令提示符 (Windows) 处,运行 create-pipeline 命令并创建管道。

    调用您运行 create-pipeline 命令时创建的文件。例如:

    aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json

查看输出变量

您可以查看操作执行详细信息,以查看该操作特定于每个执行的变量。

查看变量(控制台)

您可以使用控制台查看某个操作的变量。

  1. 登录 AWS 管理控制台 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home。

    将显示与您的 AWS 账户关联的所有管道的名称。

  2. 在名称中,选择管道的名称。

  3. 选择 View history (查看历史记录)。

  4. 管道成功运行后,您可以查看由源操作生成的变量。选择 View history (查看历史记录)。在管道执行的操作列表中选择 S ourc e 以查看该操作的 CodeCommit 操作执行详细信息。在操作详细信息屏幕的 Output variables (输出变量) 下查看变量。

    示例:源输出变量
  5. 管道成功运行后,您可以查看构建操作所使用的变量。选择 View history (查看历史记录)。在管道执行的操作列表中,选择 B uild 以查看该操作的 CodeBuild 操作执行详细信息。在操作详细信息页面上,查看 Action configuration (操作配置) 下的变量。此时将显示自动生成的命名空间。

    示例:操作配置变量

    默认情况下,Action configuration (操作配置) 显示变量语法。您可以选择 Show resolved configuration (显示已解析的配置) 以切换列表,显示在操作执行期间生成的值。

    示例:已解析的操作配置变量

查看变量 (CLI)

您可以使用 list-action-executions 命令查看操作的变量。

  1. 使用以下命令:

    aws codepipeline list-action-executions

    输出显示 outputVariables 参数,如此处所示。

    "outputVariables": { "BranchName": "main", "CommitMessage": "Updated files for test", "AuthorDate": "2019-11-08T22:24:34Z", "CommitId": "d99b0083cc10EXAMPLE", "CommitterDate": "2019-11-08T22:24:34Z", "RepositoryName": "variables-repo" },
  2. 使用以下命令:

    aws codepipeline get-pipeline --name <pipeline-name>

    在操作的操作配置中 CodeBuild ,您可以查看变量:

    { "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Execution_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

示例:在手动审批中使用变量

当您为操作指定命名空间,并且该操作生成输出变量时,可以添加手动审批,该审批将在审批消息中显示变量。此示例演示如何向手动审批消息中添加变量语法。

  1. 登录 AWS 管理控制台 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home。

    将显示与您的 AWS 账户关联的所有管道的名称。选择要向其添加审批的管道。

  2. 要编辑您的管道,请选择编辑。在源操作后添加手动审批。在操作名称中,输入审批操作的名称。

  3. 在 Action provider (操作提供程序) 中,选择 Manual approval (手动审批)。

  4. 在 “供审阅的网址” 中,将的变量语法CommitId添加到您 CodeCommit 的 URL 中。请确保您使用分配给源操作的命名空间。例如,具有默认命名空间 SourceVariables 的 CodeCommit 操作的变量语法为 #{SourceVariables.CommitId}。

    在评论的 CommitMessage 中,输入提交消息:

    Please approve this change. Commit message: #{SourceVariables.CommitMessage}
  5. 管道成功运行后,您可以在审批消息中查看变量值。

示例:使用带有 CodeBuild 环境 BranchName 变量的变量

向管道添加 CodeBuild 操作时,可以使用 CodeBuild 环境变量来引用来自上游源操作的BranchName输出变量。通过中操作的输出变量 CodePipeline,您可以创建自己的 CodeBuild环境变量以用于构建命令。

此示例说明如何将 GitHub 源操作中的输出变量语法添加到 CodeBuild 环境变量。本示例中的输出变量语法表示的 GitHub 源操作输出变量BranchName。操作成功运行后,变量解析为显示 GitHub 分支名称。

  1. 登录 AWS 管理控制台 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home。

    将显示与您的 AWS 账户关联的所有管道的名称。选择要向其添加审批的管道。

  2. 要编辑您的管道,请选择编辑。在包含您的 CodeBuild 操作的舞台上,选择编辑阶段。

  3. 选择图标以编辑您的 CodeBuild 操作。

  4. 在编辑操作页面的环境变量下,输入以下内容:

    • 在名称中,输入您的环境变量的名称。

    • 在值中,输入您的管道输出变量的变量语法,其中包括分配给您的源操作的命名空间。例如,具有默认命名空间的 GitHub操作的输出变量语法SourceVariables为#{SourceVariables.BranchName}。

    • 在类型中,选择纯文本。

  5. 在管道成功运行后,您可以看到所解析的输出变量如何成为环境变量中的值。选择下列选项之一:

    • CodePipeline 控制台:选择您的管道,然后选择 “历史记录”。选择最近的管道执行。

      • 在时间轴下,选择源的选择器。这是生成 GitHub 输出变量的源操作。选择查看执行详细信息。在输出变量下,查看此操作生成的输出变量列表。

      • 在时间轴下,选择构建的选择器。这是为构建项目指定 CodeBuild 环境变量的生成操作。选择查看执行详细信息。在 “操作配置” 下,查看您的 CodeBuild环境变量。选择显示已解析配置。您的环境变量值是 GitHub 源操作中已解析的BranchName输出变量。在此示例中,解析的值为 main。

        有关更多信息,请参阅 查看变量(控制台)。

    • CodeBuild 控制台:选择您的构建项目并选择构建运行的链接。在环境变量下,已解析的输出变量是 CodeBuild 环境变量的值。在此示例中,环境变量 Name 为BranchName,Value 是 GitHub 源操作中已解析的BranchName输出变量。在此示例中,解析的值为 main。

    显示控制台中已解析变量的屏幕截图