问题描述
使用 AWS SAM 在堆栈上进行部署并通过 GitHub 操作进行部署,并尝试使用 Config TOML 文件并在 deploy 命令中指定配置环境,但我遇到了似乎只是忽略的问题我在部署命令中指定的内容。我只能猜测我做错了的唯一一件事是我实际上无法使用这些或我将它放在错误的位置,但我将不胜感激任何有关此事的帮助。在类似示例或文档方面没有找到太多。
sam deploy --stack-name mySuperAwesomeStuff \
--region ${{ secrets.AWS_REGION }} \
--confirm-changeset \
--config-file ./functions/function1/function1.toml \
--config-env nonprod \
--template-file ./functions/function1/template.yaml
理想情况下,我希望将区域从那里取出并放入 TOML 文件以及堆栈名称。
我的 TOML 文件如下所示:
[nonprod.deploy.parameters]
stack_name="super-awesome-stack-name"
region="us-east-2"
confirm_changeset=true
cababilities="CABILITIES_IAM"
再一次,似乎完全无视我尝试使用配置文件,我不确定我在这里遗漏了什么。
解决方法
我的 samconfig.toml
顶部也有一个版本,比如
version = 0.1
[nonprod.deploy.parameters]
region = "us-east-2"
我怀疑这是 --config-file
属性的问题。我建议将配置重命名为 samconfig.toml
并将其放在根目录上,您正在运行 sam deploy
以查明 --config-file
的问题。
另外,我发现这说,--config-file
尚未实现
https://github.com/aws/aws-sam-cli/blob/develop/designs/sam-config.md#not-implemented
PS:我在运行 samconfig.toml
的根目录上安装了 sam deploy
,它的作用就像一个魅力。
我自己是 sam cli 的新手,遇到这个问题并在大约 2 分钟前解决了这个问题。一开始有点混乱,但是您应该知道在执行 sam deploy
时正在读取 samconfig.toml 文件,您缺少的关键是您要部署的 environment
。在您的情况下,您已将其命名为 nonprod
([nonprod.deploy.parameters] 基于此行)。您应该为部署运行的命令现在应该是 sam deploy --stack-name super-awesome-stack-name --config-env nonprod
。
请检查您是否添加了这个头文件[nonprod.deploy],然后是参数
[nonprod.deploy]
[nonprod.deploy.parameters]
stack_name="super-awesome-stack-name"
region="us-east-2"
confirm_changeset=true
cababilities="CABILITIES_IAM"