如何将 AWS 构建信息传递到使用 CDK 的容器构建?

问题描述 投票:0回答:1

我正在为我的容器化 Vite/React 项目构建 IaC 以部署到 AWS,但我遇到的问题是我无法将信息传递给容器的 buildargs,我需要覆盖我的 . vite 构建的 env 文件。

我采取的方法是使用 Cfn 导出,然后将其放入 DockerImageAsset 的 buildargs 中,然后将 arg 写入 Dockerfile 中的 env,并在构建之前使用 sed 命令将其打印到 .env。我已经设法让 Cognito 变量(例如 Cognito 域)发挥作用,因为它们的名称是可预测的,但后端负载均衡器的 DNS 以及 Cognito 应用程序客户端 ID 和用户池 ID 无法作为 CDK 合成器传播给出一个错误,告诉我不能在 buildarg 中使用令牌作为密钥,因为它在部署之前需要构建信息。

Cognito 用户池和应用程序客户端位于首先合成/部署的单独堆栈中,但这似乎并不重要,因为任何 cdk 合成器都会失败,即使使用 --exclusively 标志也是如此。

是否有其他可行的方法,或者我只是没有正确执行当前的方法?

amazon-web-services docker vite amazon-ecs aws-cdk
1个回答
0
投票

如果您在部署的第一个堆栈上创建 CfnOutput,您可以运行从 cdk.out 文件夹读取堆栈的输出,类似于

cat cdk.out/outputs.json

它会打印一个结构类似于

的json
{
  "<stack-name>": {
     "<outputname>": "<outputvalue>"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.