本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用变量
CodePipeline 生成变量中的一些操作。要使用变量,请执行以下操作:
-
将命名空间分配给某个操作,以使其生成的变量可用于下游操作配置。
-
配置下游操作以使用该操作生成的变量。
您可以查看每个操作执行的详细信息,以确定该操作在执行时生成的每个输出变量的值。
要查看使用变量的 step-by-step 示例,请执行以下操作:
-
有关使用上游操作 (CodeCommit) 中的变量并生成输出变量的 Lambda 操作的教程,请参阅。教程:将变量与 Lambda 调用操作一起使用
-
有关引用上游 AWS CloudFormation 操作堆栈输出变量的 CloudFormation 操作的教程,请参阅教程:创建使用 AWS CloudFormation 部署操作中的变量的管道。
-
有关手动批准操作的示例,其消息文本引用了解析为提 CodeCommit 交 ID 和提交消息的输出变量,请参阅示例:在手动审批中使用变量。
-
有关带有可解析为 GitHub 分支名称的环境变量的 CodeBuild 操作示例,请参阅示例:使用带有 CodeBuild 环境 BranchName变量的变量。
-
CodeBuild actions 将所有作为构建一部分导出的环境变量生成为变量。有关更多信息,请参阅 CodeBuild 操作输出变量。有关可在中使用的环境变量的列表 CodeBuild,请参阅《AWS CodeBuild 用户指南》中的构建环境中的环境变量。
为操作配置变量
向管道添加操作时,您可以为其分配命名空间并将其配置为使用之前操作中的变量。
为操作配置变量(控制台)
此示例创建了一个包含 CodeCommit 源操作和 CodeBuild 生成操作的管道。该 CodeBuild 操作配置为使用该 CodeCommit 操作生成的变量。
如果未指定命名空间,则这些变量不可在操作配置中引用。使用控制台创建管道时,会自动生成每个操作的命名空间。
创建具有变量的管道
登录 AWS Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 -
选择 Create pipeline(创建管道)。为您的管道输入名称,然后选择 Next (下一步)。
-
在源中,在提供者中,选择CodeCommit。为源操作选择 CodeCommit 存储库和分支,然后选择 “下一步”。
-
在 “构建” 中,在 “提供者” 中选择CodeBuild。选择现有的 CodeBuild 构建项目名称或选择 “创建项目”。在 “创建构建项目” 上,创建生成项目,然后选择 “返回到” CodePipeline。
在 Environment variables (环境变量) 下,选择 Add environment variables (添加环境变量)。例如,使用变量语法
#{codepipeline.PipelineExecutionId}
输入执行 ID,使用变量语法#{SourceVariables.CommitId}
输入提交 ID。注意
您可以在向导的任何操作配置字段中输入变量语法。
-
选择创建。
-
创建管道后,您可以查看由向导创建的命名空间。在管道上,选择要查看其命名空间的阶段所对应的图标。在此示例中,将显示源操作自动生成的命名空间
SourceVariables
。
编辑现有操作的命名空间
登录 AWS Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 -
选择要编辑的管道,然后选择 Edit (编辑)。对于源阶段,选择 Edit stage (编辑阶段)。添加动 CodeCommit 作。
-
在 Edit action (编辑操作) 中,查看 Variable namespace (变量命名空间) 字段。如果现有操作是以前创建或者未使用向导创建,则必须添加命名空间。在 Variable namespace (变量命名空间) 中,输入命名空间名称,然后选择 Save (保存)。
查看输出变量
登录 AWS Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 -
成功创建管道并运行后,您可以在操作执行详细信息页面上查看变量。有关信息,请参阅查看变量(控制台)。
为变量配置操作 (CLI)
在使用 create-pipeline 命令创建管道时,或者使用 update-pipeline 命令编辑管道时,您可以在操作配置中引用/使用变量。
如果未指定命名空间,则操作生成的变量不可在任何下游操作配置中引用。
使用命名空间配置操作
-
按照中的步骤创建管道、阶段和操作使用创建管道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": [ . . . -
使用类似于
MyPipeline.json
的名称保存文件。 -
在终端(Linux、macOS 或 Unix)或命令提示符 (Windows) 处,运行 create-pipeline 命令并创建管道。
调用您运行 create-pipeline 命令时创建的文件。例如:
aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
配置下游操作以使用变量
-
编辑输入文件以提供带有
--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 } ] },
-
使用类似于
MyPipeline.json
的名称保存文件。 -
在终端(Linux、macOS 或 Unix)或命令提示符 (Windows) 处,运行 create-pipeline 命令并创建管道。
调用您运行 create-pipeline 命令时创建的文件。例如:
aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
查看输出变量
您可以查看操作执行详细信息,以查看该操作特定于每个执行的变量。
查看变量(控制台)
您可以使用控制台查看某个操作的变量。
登录 AWS Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 将显示与您的 AWS 账户关联的所有管道的名称。
-
在名称中,选择管道的名称。
-
选择 View history (查看历史记录)。
-
管道成功运行后,您可以查看由源操作生成的变量。选择 View history (查看历史记录)。在管道执行的操作列表中选择 S ourc e 以查看该操作的 CodeCommit 操作执行详细信息。在操作详细信息屏幕的 Output variables (输出变量) 下查看变量。
-
管道成功运行后,您可以查看构建操作所使用的变量。选择 View history (查看历史记录)。在管道执行的操作列表中,选择 B uild 以查看该操作的 CodeBuild 操作执行详细信息。在操作详细信息页面上,查看 Action configuration (操作配置) 下的变量。此时将显示自动生成的命名空间。
默认情况下,Action configuration (操作配置) 显示变量语法。您可以选择 Show resolved configuration (显示已解析的配置) 以切换列表,显示在操作执行期间生成的值。
查看变量 (CLI)
您可以使用 list-action-executions 命令查看操作的变量。
-
使用以下命令:
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" },
-
使用以下命令:
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 } ] },
示例:在手动审批中使用变量
当您为操作指定命名空间,并且该操作生成输出变量时,可以添加手动审批,该审批将在审批消息中显示变量。此示例演示如何向手动审批消息中添加变量语法。
登录 AWS Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 将显示与您的 AWS 账户关联的所有管道的名称。选择要向其添加审批的管道。
-
要编辑您的管道,请选择编辑。在源操作后添加手动审批。在操作名称中,输入审批操作的名称。
-
在 Action provider (操作提供程序) 中,选择 Manual approval (手动审批)。
-
在 f URLor re view 中,将的变量语法
CommitId
添加到您的 CodeCommit URL。请确保您使用分配给源操作的命名空间。例如,具有默认命名空间的 CodeCommit操作的变量语法SourceVariables
为#{SourceVariables.CommitId}
。在评论的
CommitMessage
中,输入提交消息:Please approve this change. Commit message: #{SourceVariables.CommitMessage}
-
管道成功运行后,您可以在审批消息中查看变量值。
示例:使用带有 CodeBuild 环境 BranchName变量的变量
向管道添加 CodeBuild 操作时,可以使用 CodeBuild 环境变量来引用来自上游源操作的BranchName
输出变量。通过中操作的输出变量 CodePipeline,您可以创建自己的 CodeBuild环境变量以用于构建命令。
此示例说明如何将 GitHub 源操作中的输出变量语法添加到 CodeBuild 环境变量。本示例中的输出变量语法表示的 GitHub 源操作输出变量BranchName
。操作成功运行后,变量解析为显示 GitHub 分支名称。
登录 AWS Management Console 并打开 CodePipeline 控制台,网址为 http://console.aws.amazon.com/codesuite/codepipeline/home
。 将显示与您的 AWS 账户关联的所有管道的名称。选择要向其添加审批的管道。
-
要编辑您的管道,请选择编辑。在包含您的 CodeBuild 操作的舞台上,选择编辑阶段。
-
选择图标以编辑您的 CodeBuild 操作。
-
在编辑操作页面的环境变量下,输入以下内容:
-
在名称中,输入您的环境变量的名称。
-
在值中,输入您的管道输出变量的变量语法,其中包括分配给您的源操作的命名空间。例如,具有默认命名空间的 GitHub操作的输出变量语法
SourceVariables
为#{SourceVariables.BranchName}
。 -
在类型中,选择纯文本。
-
-
在管道成功运行后,您可以看到所解析的输出变量如何成为环境变量中的值。选择以下操作之一:
-
CodePipeline 控制台:选择您的管道,然后选择 “历史记录”。选择最近的管道执行。
-
在时间轴下,选择源的选择器。这是生成 GitHub 输出变量的源操作。选择查看执行详细信息。在输出变量下,查看此操作生成的输出变量列表。
-
在时间轴下,选择构建的选择器。这是为构建项目指定 CodeBuild 环境变量的生成操作。选择查看执行详细信息。在 “操作配置” 下,查看您的 CodeBuild环境变量。选择显示已解析配置。您的环境变量值是 GitHub 源操作中已解析的
BranchName
输出变量。在此示例中,解析的值为main
。有关更多信息,请参阅 查看变量(控制台)。
-
-
CodeBuild 控制台:选择您的构建项目并选择构建运行的链接。在环境变量下,已解析的输出变量是 CodeBuild 环境变量的值。在此示例中,环境变量 Name 为
BranchName
,Value 是 GitHub 源操作中已解析的BranchName
输出变量。在此示例中,解析的值为main
。
-