本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS::Include
轉換程序
使用AWS::Include
轉換,這是由主控的巨集 AWS CloudFormation,將樣板內容插入範本中。AWS::Include
轉換可讓您對 Amazon S3 儲存貯體中的範本程式碼片段建立參考。當建立變更集或使用變更集更新 CloudFormation 堆疊和範本參考時AWS::Include
,會在範本中的轉換位置 CloudFormation 插入指定檔案的內容。AWS::Include
函數的行為與程式設計語言中的 include
、copy
或 import
指令類似。
例如,您可能需要在一或多個 CloudFormation 範本中重複使用的 Lambda 函數。
用量
您可以在範本中的任何位置使用AWS::Include
轉換,但 CloudFormation範本參數區段或範本版本欄位除外。舉例來說,您可以在映射區段中使用 AWS::Include
。
範本最上層的語法
若要在範本的最上層包含 AWS::Include
轉換,請在 Transform
區段中使用下列語法。
JSON
{ "Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location" : "s3://
amzn-s3-demo-bucket
/MyFileName
.json" } } }
YAML
Transform: Name: 'AWS::Include' Parameters: Location: '
s3://amzn-s3-demo-bucket/MyFileName.yaml
'
轉換程序內嵌於範本區段時的語法
若要包含內嵌於區段的轉換,請使用 Fn::Transform
內部函數和下列語法。
JSON
{ "Fn::Transform" : { "Name" : "AWS::Include", "Parameters" : { "Location": "
s3://amzn-s3-demo-bucket/MyFileName.json
" } } }
YAML
'Fn::Transform': Name: 'AWS::Include' Parameters: Location: s3://
amzn-s3-demo-bucket
/MyFileName.yaml
參數
位置
該位置是 Amazon S3URI,在 S3 儲存貯體中具有特定檔案名稱。例如:s3://
。amzn-s3-demo-bucket
/MyFile.yaml
備註
使用 AWS::Include
時,請謹記下列考量。如需有關使用巨集的一般考量,請參閱建立 CloudFormation 巨集定義時的考量
-
我們目前支持 Amazon S3URI,但不支持其他 Amazon S3 格式(如 Amazon S3ARN)。它必須是一個 Amazon S3 存儲桶,而不是類似 GitHub 存儲庫的東西。
-
任何可以存取 Amazon S3 的人都URL可以在其範本中包含程式碼片段。
-
您的範本程式碼片段必須有效JSON。
-
您的範本程式碼片段必須是有效的索引鍵–值物件,例如
"KeyName": "keyValue"
。 -
您無法用
AWS::Include
來參考也使用AWS::Include
的範本程式碼片段。 -
若您變更程式碼片段,堆疊並不會自動取得這些變更。如需取得這些變更,請使用更新後的程式碼片段來更新堆疊。更新堆疊時,務必確認加入的程式碼片段不會在您不知悉的情況下有所變更。請查看變更集,即可在更新堆疊前進行驗證。
-
建立範本和程式碼片段時,您可以混合YAML使用JSON範本語言。
-
我們目前不支援在程式碼片段中使用速記符號。YAML
-
您可以提供 Amazon S3 URI 的
AWS::Include
跨區域複寫。存取跨區域複寫物件時,請務必檢查 Amazon S3 儲存貯體的名稱。如需詳細資訊,請參閱跨區域複寫。
範例
以下範例會說明如何使用 AWS::Include
轉換程序來執行等待條件控點。
JSON和YAML版本都使用下列等待條件程式碼片段。將檔案另存為single_wait_condition.yaml
,並將其存放在 S3 儲存貯體中。Replace (取代) amzn-s3-demo-bucket
使用您的實際存儲桶名稱。
WebServerWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle'
JSON
{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://
amzn-s3-demo-bucket
/single_wait_condition.yaml" } } } }
YAML
Resources: MyWaitHandle: Type: 'AWS::CloudFormation::WaitConditionHandle' 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: "s3://
amzn-s3-demo-bucket
/single_wait_condition.yaml"