3

我正在从事一项有趣的任务,但到目前为止还无法解决。

配置:

  1. 用于在 SSM 中存储值的后端 AWS 代码管道 (@aws-cdk/aws-ssm)
  2. 前端的 AWS 代码管道,它构建了一个为 React App 构建项目的管道
  3. 带有 buildspec.yml 的 React App git 存储库,由 #2 的管道使用并部署到 S3

问题: 读取存储在 #1 中的值并将其注入 React App 的任何好方法?

我可以在 #2 中轻松阅读它,但该项目仅用于创建管道。因此,我认为前端需要在管道中执行一些特殊步骤,以便在构建或部署步骤期间更新 React App。

有什么绝妙的主意吗?:) 到目前为止我还没有。

谢谢!

buildspec.yml 代码:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 12
    commands:
      - yarn install
  build:
    commands:
      - yarn build

artifacts:
  base-directory: ./build
  files:
    - '**/*'

cache:
  paths:
    - './node_modules/**/*'


4

2 回答 2

1

好的,我已经设法使用 CDK 在 React App 中注入 Systems Manager 值。我没有找到使用初始设置(3 个存储库)的方法。我不得不将 #2 与 #3 合并(因此,前端反应应用程序应该与 cdk 一起使用)。

在此设置中,您可以读取 cdk 堆栈中的 Systems Manager 值并将其添加以在构建步骤期间与动态构建规范做出反应(来自代码的构建规范)。

于 2020-08-16T12:45:33.407 回答
0

我认为我的示例可能对您有用。我有 ECS 容器,docker 图像由 Jenkins 服务器构建并上传到 ECR。我使用 SSM Parameter Store 来存储环境变量。我该怎么办?

我的 ECS 容器是使用 cloudformation 模板部署的,当 Jenkins 完成将新的 docker 映像上传到 ECR 然后执行我的 Cloudformation 更新时,在我的 cloudformation 模板中我有宏(从 SSM Parameter Store 读取环境变量并将其放入的 python 函数在 cloudformation 模板中),因此 ECS 任务将使用我的 Parameter Store 的当前版本和最新的 docker 映像编译进行更新。您也可以从 Jenkins 读取 Parameter Store 值,但我更喜欢我的 Jenkins 中较少可能的权限。同样通过这种方式,可以更新 cloudformation(以修改基础架构组件等)并且已经实现了宏。

于 2020-08-13T15:27:25.037 回答