教程:使用管道级变量 - Amazon CodePipeline
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

教程:使用管道级变量

在本教程中,您将创建一个管道,在管道级别添加变量,然后运行输出变量值的 CodeBuild 生成操作。

重要

作为创建管道的一部分,客户提供的 S3 工件存储桶将 CodePipeline 用于项目。(这与用于 S3 源操作的存储桶不同。) 如果 S3 工件存储桶与您的管道账户位于不同的账户中,请确保 S3 工件存储桶归其所有 Amazon Web Services 账户 ,该存储桶是安全且可靠的。

先决条件

在开始之前,您必须执行以下操作:

  • 创建 CodeCommit 存储库。

  • 向存储库添加 .txt 文件。

步骤 1:创建管道并构建项目

在此部分中,您将使用以下操作创建管道:

  • 与您的 CodeCommit 存储库建立连接的源阶段。

  • 带有生成操作的 Amazon CodeBuild 生成阶段。

使用向导创建管道
  1. 登录 CodePipeline 控制台,网址为https://console.aws.amazon.com/codepipeline/

  2. 欢迎页面、入门页面或管道页面上,选择创建管道

  3. 步骤 1:选择管道设置管道名称中,输入 MyVariablesPipeline

  4. 管道类型中,保留默认选择 V2。管道类型有不同的特点和价格。有关更多信息,请参阅 管道类型

  5. 服务角色中,选择新建服务角色

    注意

    如果您选择改为使用现有的 CodePipeline 服务角色,请确保已将codeconnections:UseConnectionIAM权限添加到服务角色策略中。有关 CodePipeline 服务角色的说明,请参阅为 CodePipeline 服务角色添加权限

  6. 变量下,选择添加变量。在名称中,输入 timeout。在默认值中,输入 1000。在“描述”中,输入以下描述:Timeout

    这将创建一个变量,当管道执行开始时,您可以在其中声明变量值。变量名必须匹配 [A-Za-z0-9@\-_]+,可以是除空字符串之外的任何名称。

  7. 高级设置下,保留原定设置值。在构件存储中,选择默认位置以将默认构件存储(如指定为默认值的 Amazon S3 项目存储桶)用于为管道选择的区域中的管道。

    注意

    这不是源代码的源存储桶。这是管道的项目存储。每个管道都需要一个单独的构件存储,例如 S3 存储桶。

    选择下一步

  8. 步骤 2:添加源阶段页面上,添加源阶段:

    1. 源提供程序中,选择 Amazon CodeCommit

    2. 存储库名称分支名称中,选择您的存储库和分支。

    选择下一步

  9. 添加构建阶段,添加一个构建阶段:

    1. 构建提供程序中,选择 Amazon CodeBuild。允许区域默认为管道区域。

    2. 选择创建项目

    3. 项目名称中,输入此构建项目的名称。

    4. 环境映像中,选择托管映像。对于操作系统,选择 Ubuntu

    5. 对于运行时,选择标准。对于映像,选择 aws/codebuild/standard:5.0

    6. 对于服务角色,选择新建服务角色

      注意

      记下您的 CodeBuild 服务角色的名称。在本教程的最后一步,您会用到此角色名称。

    7. 构建规范下,为构建规范选择插入构建命令。选择切换到编辑器,然后将以下内容粘贴到构建命令。在 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
    8. 选择 “继续” CodePipeline。这将返回到 CodePipeline控制台并创建一个使用您的构建命令进行配置的 CodeBuild 项目。构建项目使用服务角色来管理 Amazon Web Services 服务 权限。此步骤可能需要几分钟时间。

    9. 环境变量 - 可选下,要创建环境变量作为将由管道级变量解析的构件操作的输入变量,请选择添加环境变量。这将创建在 buildspec 中指定为 $CUSTOM_VAR1 的变量。在名称中,输入 CUSTOM_VAR1。在中,输入 #{variables.timeout}。在类型中,选择 Plaintext

      环境变量的#{variables.timeout}值基于管道级变量命名空间variables和步骤 6 中为管道timeout创建的管道级变量。

    10. 选择下一步

  10. 步骤 4:添加部署阶段页面上,选择跳过部署阶段,并通过再次选择跳过接受警告消息。选择下一步

  11. 步骤 5:审核中,选择创建管道

步骤 2:发布更改并查看日志

  1. 管道成功运行后,在成功的构建阶段上,选择查看详细信息

    在详细信息页面上,选择日志选项卡。查看编 CodeBuild 译输出。这些命令将输出所输入变量的值。

  2. 在左侧导航窗格中,选择历史记录

    选择最近执行,然后选择变量选项卡。查看管道变量的解析值。