本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在自訂元件文件中使用變數
變數提供了一種方法,以有意義的名稱來標記資料,這些名稱可用於整個應用程式。您可以為複雜的工作流程定義具有簡單易讀格式的自訂變數,並在元件的 YAML 應用程式元件文件中參考這些變數。 AWS TOE
本節提供的資訊可協助您在 YAML 應用程式 AWS TOE 元件文件中定義元件的變數,包括語法、名稱條件約束和範例。
參數
參數是可變變數,具有呼叫應用程式可在執行階段提供的設定。您可以在 YAML 文件的Parameters
區段中定義參數。
參數名稱的規則
名稱長度必須介於 3 到 128 個字元之間。
名稱只能包含英數字元 (a-z、A-Z、0-9)、破折號 (-) 或底線 (_)。
名稱在文件中必須是唯一的。
名稱必須指定為 YAML 字串。
語法
parameters: - <name>: type: <parameter type> default: <parameter value> description: <parameter description>
金鑰名稱 |
必要 |
描述 |
---|---|---|
|
是 |
參數名稱。對於文檔必須是唯一的(它不能與任何其他參數名稱或常量相同)。 |
|
是 |
參數的資料類型。支援的類型包括: |
|
否 |
參數的預設值。 |
|
否 |
描述參數。 |
參照文件中的參數值
您可以在 YAML 文件內的步驟或迴圈輸入中參考參數,如下所示:
-
參數參照區分大小寫,且名稱必須完全相符。
-
名稱必須用雙大括號括起來
{{
MyParameter
}}
。 -
大括號內允許空格,並且會自動修剪。例如,下列所有參照都是有效的:
{{
,MyParameter
}}{{
,MyParameter
}}{{
,MyParameter
}}{{
MyParameter
}} -
YAML 文件中的參考必須指定為字串 (以單引號或雙引號括住)。
例如:
- {{
無效,因為它未標識為字符串。MyParameter
}}但是,下列參照都是有效的:
- '{{
和MyParameter
}}'- "{{
。MyParameter
}}"
範例
下列範例說明如何在 YAML 文件中使用參數:
-
請參照步驟輸入中的參數:
name: Download AWS CLI version 2 schemaVersion: 1.0 parameters: - Source: type: string default: 'https://awscli.amazonaws.com/AWSCLIV2.msi' description: The AWS CLI installer source URL. phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'
-
參考循環輸入中的參數:
name: PingHosts schemaVersion: 1.0 parameters: - Hosts: type: string default: 127.0.0.1,amazon.com description: A comma separated list of hosts to ping. phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}
在執行階段覆寫參數
您可以使用中的--parameters
選項搭 AWS CLI 配鍵值配對,在執行階段設定參數值。
將參數鍵值配對指定為名稱和值,並以等號 (<name>=<value>) 分隔。
多個參數必須以逗號分隔。
在 YAML 元件文件中找不到的參數名稱會被忽略。
參數名稱和值都是必需的。
重要
元件參數是純文字值,並已登入 AWS CloudTrail。我們建議您使用 AWS Secrets Manager 或 AWS Systems Manager 參數存放區來儲存您的秘密。如需有關 Secrets Manager 的詳細資訊,請參閱什麼是 Secrets Manager? 在《AWS Secrets Manager 使用者指南》中。若要取得有關 AWS Systems Manager 參數存放區的更多資訊,請AWS Systems Manager 參閱AWS Systems Manager 使用指南中的參數存放區
語法
--parameters
name1
=value1
,name2
=value2
...
CLI 選項 |
必要 |
描述 |
---|---|---|
-參數 |
否 |
此選項會取得索引鍵值對清單,並以參數名稱做為索引鍵。 |
範例
下列範例說明如何在 YAML 文件中使用參數:
-
在此
--parameter
選項中指定的參數鍵值對無效:--parameters ntp-server=
-
使用以下
--parameter
選項設定一個參數鍵值對: AWS CLI--parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
-
使用以下
--parameter
選項設定多個參數鍵值對: AWS CLI--parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
常數
常量是不可變的變量,一旦定義不能被修改或覆蓋。常數可以使用 AWS TOE 文檔的constants
部分中的值來定義。
常數名稱的規則
名稱長度必須介於 3 到 128 個字元之間。
名稱只能包含英數字元 (a-z、A-Z、0-9)、破折號 (-) 或底線 (_)。
名稱在文件中必須是唯一的。
名稱必須指定為 YAML 字串。
語法
constants: - <name>: type: <constant type> value: <constant value>
金鑰名稱 | 必要 | 描述 |
---|---|---|
|
是 |
常數的名稱。對於文檔必須是唯一的(它不能與任何其他參數名稱或常量相同)。 |
|
是 | 常數的值。 |
|
是 | 常數的類型。支援的類型為string 。 |
引用文檔中的常量值
您可以在 YAML 文件內的步驟或迴圈輸入中參考常數,如下所示:
-
常量引用區分大小寫,並且名稱必須完全匹配。
-
名稱必須用雙大括號括起來
{{
MyConstant
}}
。 -
大括號內允許空格,並且會自動修剪。例如,下列所有參照都是有效的:
{{
,MyConstant
}}{{
,MyConstant
}}{{
,MyConstant
}}{{
MyConstant
}} -
YAML 文件中的參考必須指定為字串 (以單引號或雙引號括住)。
例如:
- {{
無效,因為它未標識為字符串。MyConstant
}}但是,下列參照都是有效的:
- '{{
和MyConstant
}}'- "{{
。MyConstant
}}"
範例
步驟輸入中參照的常數
name: Download AWS CLI version 2 schemaVersion: 1.0 constants: - Source: type: string value: https://awscli.amazonaws.com/AWSCLIV2.msi phases: - name: build steps: - name: Download action: WebDownload inputs: - source: '{{ Source }}' destination: 'C:\Windows\Temp\AWSCLIV2.msi'
循環輸入中引用的常量
name: PingHosts schemaVersion: 1.0 constants: - Hosts: type: string value: 127.0.0.1,amazon.com phases: - name: build steps: - name: Ping action: ExecuteBash loop: forEach: list: '{{ Hosts }}' delimiter: ',' inputs: commands: - ping -c 4 {{ loop.value }}