将 codebuild 操作中创建的环境传递给 codepipeline 中的下游操作

ers*_*rsh 2 xcodebuild amazon-web-services aws-codepipeline aws-codebuild

我是 codepipeline 的新手,我在 codepipeline 的构建阶段有多个操作,其中 1 个构建规范类似于下面的内容,我想在 python 文件中动态创建一个下游操作所需的变量。

version: 1
phases:
  install:
    runtime-version:
      python: 3.9
    commands:
      - python -m pip install --upgrade pip 
  build:
    commands:
      - python code/get_date.py
Run Code Online (Sandbox Code Playgroud)

获取日期.py

import datetime
if __name__ == "__main__":
    current_date = strftime("%Y-%m-%d %H:%M:%S", gmtime())
Run Code Online (Sandbox Code Playgroud)

然后我有第二个构建规范文件,它在第二个操作中运行

version: 1
phases:
  install:
    runtime-version:
      python: 3.9
    commands:
      - python -m pip install --upgrade pip 
  build:
    commands:
      - python code/process_date.py
Run Code Online (Sandbox Code Playgroud)

进程日期.py

if __name__ == "__main__":
    # get current date somehow from previous action
    print(current_date)
Run Code Online (Sandbox Code Playgroud)

我该如何完成这样的事情?最好的推荐是什么?我会使用输出工件或变量吗?它们是如何在阶段之间传递这样的值的?

非常感谢任何帮助。

Mar*_*cin 5

CodeBuild 可以输出要在 CodePipeline 中的其他阶段或操作中使用的变量。这些变量称为CodeBuild 操作输出变量,并使用env/exported-variables在您的buildspec.yml.

使用变量AWS 文档中描述了如何在 CP 中消费和使用这些变量的一般信息。

  • 如何在 codebuild 的 python 脚本中创建这些变量以供导出?我需要做任何事情来写入环境变量吗? (2认同)