簡體   English   中英

AWS Amplify cloudformation parameter.json 如何工作?

[英]How does AWS Amplify cloudformation parameter.json work?

我最近開始使用 AWS Amplify,並且有使用 vanilla cloudformation 的經驗。 除了parameters.json部分之外,大部分內容都有意義。

Amplify 似乎為我們使用的資源生成了 cloudformation 模板,但它也生成了一個parameters.json文件,我認為它相當於 cloudformation 的Parameters部分,但它似乎不是。

在 Amplify parameters.json ,內容僅在具有鍵值對的object上。 而在 cloudformation 中,參數具有如文檔中所述的定義語法。

同樣在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 存儲庫,但找不到。

有點晚,但可能仍然有用。 你在這里有幾個問題:

有誰知道它使用的是哪個 AuthRoleName 文件? 根據我在文檔中讀到的內容, amplify-meta.json 和 team-provider-info.json 都是自動生成的。

是的,兩者都是自動生成的。 主要區別是 team-provider-info.json 包含所有放大環境的參數(假設您有多個環境並且此文件在團隊成員之間共享),而 amplify-meta.json 僅包含與當前環境相關的信息檢出環境。 簡而言之, amplify-meta.json 中的值是當前使用的值。

AWS Amplify cloudformation parameter.json 如何工作?

Amplify 的工作方式是為每個函數/api 網關/存儲元素創建一個 cloudformation 模板(這是 Amplify Categories 的部分列表),每個迷你模板都有自己的 parameters.json 文件(你提到的那個)。 然后 amplify 會將所有這些文件合並到 amplify/backend/awscloudformation/nested-cloudformation-stack.yml(這是一個 json 文件!)下的單個模板中。 此文件將引用每個模板,因為它們會上傳到您的部署 S3 存儲桶(可在 amplify-meta.json 中找到)以及內聯包含的 parameters.json 文件的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM