【问题标题】:How does AWS Amplify cloudformation parameter.json work?AWS Amplify cloudformation parameter.json 如何工作?
【发布时间】:2019-12-30 15:53:33
【问题描述】:

我最近开始使用 AWS Amplify,并且有使用 vanilla cloudformation 的经验。除了parameters.json 部分之外,大部分内容都是有意义的。

似乎 Amplify 会为我们使用的资源生成 cloudformation 模板,但它也会生成一个 parameters.json 文件,我认为它相当于 cloudformation 的 Parameters 部分,但似乎不是。

在 Amplify parameters.json 中,内容就在 object 上,带有键值对。而在 cloudformation 中,参数具有定义的语法,如 in the docs 所述。

同样在parameters.json 中,它似乎能够以与cloudformation 模板相同的方式进行Ref 调用。有谁知道什么是解析parameters.json 文件并将Ref 替换为实际值?

例如在storage 类别中,parameters.json 文件有这样的键

"authRoleName": {
    "Ref": "AuthRoleName"
},

AuthRoleName 似乎在backend 目录下的amplify-meta.json 中都有定义,但它也在amplify 目录下的team-provider-info.json 中定义。

有人知道它使用的是哪个AuthRoleName 文件吗?根据我在文档中阅读的内容,amplify-meta.jsonteam-provider-info.json 都是自动生成的。

出现了很多这样的问题,因为我很好奇是否可以在 cloudformation UI 中手动执行 CF 中自动生成的 CF 模板。当我尝试复制参数部分和元数据部分时,语法无效。

这让我想到 amplify 正在使用它自己的解析器来生成最终的 CF 模板并在 CF 中执行它。我尝试通过 cli repo 搜索,但找不到。

【问题讨论】:

  • 天哪,好问题。抱歉,这是一个自以为是的非答案,但我很想看到这个答案。如何使用和修改 Amplify 创建的 CFN 资源在我看来是这个产品的一个巨大差距,好像没有人考虑到开发者可能会改变主意或犯错误。
  • @Khon 你找到答案了吗?我也对这个话题感兴趣。

标签: amazon-web-services amazon-cloudformation aws-amplify


【解决方案1】:

有点晚,但可能仍然有用。您在这里有几个问题:

有人知道它使用的是哪个 AuthRoleName 文件吗?根据我在文档中阅读的内容,amplify-meta.json 和 team-provider-info.json 都是自动生成的。

是的,两者都是自动生成的。主要区别在于 team-provider-info.json 包含所有放大环境的参数(假设您有多个环境并且此文件在团队成员之间共享),而 amplify-meta.json 仅包含与当前相关的信息检查环境。简而言之,amplify-meta.json 中的值就是当前使用的值。

AWS Amplify cloudformation parameter.json 如何工作?

放大的工作方式是为每个功能/api网关/存储元素创建一个cloudformation模板(这是放大类别的部分列表),每个迷你模板都有自己的parameters.json文件(你提到的那个) .然后 amplify 会将所有这些文件合并到 amplify/backend/awscloudformation/nested-cloudformation-stack.yml 下的单个模板中(这是一个 json 文件!)。该文件将在每个模板上传到您的部署 S3 存储桶时引用它们(可以在 amplify-meta.json 中找到)以及内联包含的 parameters.json 文件的内容。

【讨论】:

    猜你喜欢
    • 2013-01-05
    • 2020-03-10
    • 2019-08-06
    • 2020-03-05
    • 2020-08-07
    • 2021-08-25
    • 2020-08-17
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多