【问题标题】:AWS SAM - Config TOML FileAWS SAM - 配置 TOML 文件
【发布时间】:2020-12-22 13:01:35
【问题描述】:

使用 AWS SAM 在堆栈上进行部署并通过 GitHub 操作进行部署,并尝试使用 Config TOML 文件并在部署命令中指定配置环境,但我遇到了似乎只是忽略的问题我在部署命令中指定的内容。我唯一能猜到我做错的事情是我不能真正使用这些,或者我把它放在错误的位置,但我非常感谢任何关于此事的帮助。在类似的示例或文档方面没有找到太多内容。

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"

再一次,似乎完全无视我尝试使用配置文件,我不确定我在这里缺少什么。

【问题讨论】:

    标签: aws-sam aws-sam-cli


    【解决方案1】:

    我自己是 sam cli 的新手,大约 2 分钟前遇到了这个问题并想通了。一开始有点混乱,但您应该知道在执行sam deploy 时正在读取 samconfig.toml 文件,您缺少的关键是您要部署的environment。在您的情况下,您已将其命名为 nonprod([nonprod.deploy.parameters] 基于此行)。您应该为部署运行的命令现在应该是 sam deploy --stack-name super-awesome-stack-name --config-env nonprod

    【讨论】:

    • 是的,这就是我上面的内容。 --config-file ./functions/function1/function1.toml \ --config-env nonprod \
    【解决方案2】:

    我的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:我在运行sam deploy 的根目录上有我的samconfig.toml,它就像一个魅力。

    【讨论】:

    • 不要将配置文件放在根目录下,将其放在与您的 sam 模板相同的文件夹中。这解决了我的问题
    【解决方案3】:

    请检查您是否添加了此标头[nonprod.deploy],然后是参数

    [nonprod.deploy]
    [nonprod.deploy.parameters]
    stack_name="super-awesome-stack-name"
    region="us-east-2"
    confirm_changeset=true
    cababilities="CABILITIES_IAM"
    

    【讨论】:

      【解决方案4】:

      对我有用的是指定 samconfig.toml 的 完整路径(而不是相对路径)

      sam deploy --config-file <ABSOLUTE_PATH_TO_CONFIG_FILE> --template-file <RELATIVE_OR_ABSOLUTE_PATH_TO_TEMPLATE_FILE>
      

      还有我的配置文件 (samconfig.toml)

      version = 0.1
      [default.deploy.parameters]
      stack_name = "xxx"
      s3_bucket = "xxx"
      s3_prefix = "xxx"
      region = "xxx"
      confirm_changeset = false
      capabilities = "CAPABILITY_IAM"
      image_repositories = []
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-29
        • 2021-02-02
        • 2022-09-24
        • 2019-05-23
        • 2020-08-30
        • 2019-09-01
        • 2019-08-27
        • 2022-01-13
        相关资源
        最近更新 更多