将代码构建操作中创建的环境传递给代码管道中的下游操作

Pass environment created in codebuild action to downstream action in codepipeline

我是 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

get_date.py

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

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

version: 1
phases:
  install:
    runtime-version:
      python: 3.9
    commands:
      - python -m pip install --upgrade pip 
  build:
    commands:
      - python code/process_date.py

process_date.py

if __name__ == "__main__":
    # get current date somehow from previous action
    print(current_date)

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

非常感谢任何帮助。

CodeBuild 可以输出变量以用于您的 CodePipeline 中的其他阶段或操作。这些变量在您的 buildspec.yml.

中称为 CodeBuild action output variables and are defined using env/exported-variables

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