本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用管道级变量
在本教程中,您将创建一个管道,在管道级别添加变量,然后运行输出变量值的 CodeBuild 生成操作。
重要
作为创建管道的一部分,客户提供的 S3 工件存储桶将 CodePipeline 用于项目。(这与用于 S3 源操作的存储桶不同。) 如果 S3 工件存储桶与您的管道账户位于不同的账户中,请确保 S3 工件存储桶归其所有 Amazon Web Services 账户 ,该存储桶是安全且可靠的。
先决条件
在开始之前,您必须执行以下操作:
-
创建 CodeCommit 存储库。
-
向存储库添加 .txt 文件。
步骤 1:创建管道并构建项目
在此部分中,您将使用以下操作创建管道:
-
与您的 CodeCommit 存储库建立连接的源阶段。
-
带有生成操作的 Amazon CodeBuild 生成阶段。
使用向导创建管道
-
登录 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/
。 -
在欢迎页面、入门页面或管道页面上,选择创建管道。
-
在步骤 1:选择管道设置的管道名称中,输入
MyVariablesPipeline
。 -
在管道类型中,保留默认选择 V2。管道类型有不同的特点和价格。有关更多信息,请参阅 管道类型。
-
在服务角色中,选择新建服务角色。
注意
如果您选择改为使用现有的 CodePipeline 服务角色,请确保已将
codeconnections:UseConnection
IAM权限添加到服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限。 -
在变量下,选择添加变量。在名称中,输入
timeout
。在默认值中,输入 1000。在“描述”中,输入以下描述:Timeout
。这将创建一个变量,当管道执行开始时,您可以在其中声明变量值。变量名必须匹配
[A-Za-z0-9@\-_]+
,可以是除空字符串之外的任何名称。 -
在高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。
注意
这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。
选择下一步。
-
在步骤 2:添加源阶段页面上,添加源阶段:
-
在源提供程序中,选择 Amazon CodeCommit。
-
在存储库名称和分支名称中,选择您的存储库和分支。
选择下一步。
-
-
在添加构建阶段,添加一个构建阶段:
-
在构建提供程序中,选择 Amazon CodeBuild。允许区域默认为管道区域。
-
选择创建项目。
-
在项目名称中,输入此构建项目的名称。
-
在环境映像中,选择托管映像。对于操作系统,选择 Ubuntu。
-
对于运行时,选择标准。对于映像,选择 aws/codebuild/standard:5.0。
-
对于服务角色,选择新建服务角色。
注意
记下您的 CodeBuild 服务角色的名称。在本教程的最后一步,您会用到此角色名称。
-
在构建规范下,为构建规范选择插入构建命令。选择切换到编辑器,然后将以下内容粘贴到构建命令。在 buildspec 中,客户变量
$CUSTOM_VAR1
将用于在构建日志中输出管道变量。您将在下一步骤中创建$CUSTOM_VAR1
输出变量作为环境变量。version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - echo $CUSTOM_VAR1 #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
-
选择 “继续” CodePipeline。这将返回到 CodePipeline控制台并创建一个使用您的构建命令进行配置的 CodeBuild 项目。构建项目使用服务角色来管理 Amazon Web Services 服务 权限。此步骤可能需要几分钟时间。
-
在环境变量 - 可选下,要创建环境变量作为将由管道级变量解析的构件操作的输入变量,请选择添加环境变量。这将创建在 buildspec 中指定为
$CUSTOM_VAR1
的变量。在名称中,输入CUSTOM_VAR1
。在值中,输入#{variables.timeout}
。在类型中,选择Plaintext
。环境变量的
#{variables.timeout}
值基于管道级变量命名空间variables
和步骤 6 中为管道timeout
创建的管道级变量。 -
选择下一步。
-
-
在步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步。
-
在步骤 5:审核中,选择创建管道。
步骤 2:发布更改并查看日志
-
管道成功运行后,在成功的构建阶段上,选择查看详细信息。
在详细信息页面上,选择日志选项卡。查看编 CodeBuild 译输出。这些命令将输出所输入变量的值。
-
在左侧导航窗格中,选择历史记录。
选择最近执行,然后选择变量选项卡。查看管道变量的解析值。