本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料元素和參數
本主題說明SSM文件中使用的資料元素。用於建立文件的結構描述版本會定義文件接受的語法和資料元素。建議命令文件使用結構描述版本 2.2 或更新版本。Automation Runbook 使用結構描述版本 0.3。此外,Automation Runbook 支援使用 Markdown (一種標示語言),可讓您新增維基樣式的描述至文件內,以及在文件內新增個別步驟。如需關於使用 Markdown 的詳細資訊,請參閱《AWS Management Console 入門指南》中的在主控台中使用 Markdown。
下節說明您可以包含在SSM文件中的資料元素。
頂層資料元素
- schemaVersion
-
要使用的結構描述版本。
類型:版本
必要:是
- description
-
您提供來描述文件用途的資訊。您也可以使用此欄位來指定參數是否需要執行文件的值,或者提供參數的值是否為選用項目。您可以在本主題的範例中看到必要參數和選用參數。
類型:字串
必要:否
- parameters
-
一種結構,定義文件接受的參數。
對於您經常使用的參數,我們建議您將這些參數儲存在中Parameter Store,功能 AWS Systems Manager。然後,您可以在文件中定義參考 Parameter Store 參數作為預設值的參數。若要參考 Parameter Store 參數,請使用下列語法。
{{ssm:
parameter-name
}}您可以使用參考 Parameter Store 參數的參數,方式與任何其他文件參數相同。在下列範例中,
commands
參數的預設值是 Parameter Store 參數myShellCommands
。透過將commands
參數指定為runCommand
字串,文件會執行在myShellCommands
參數中儲存的命令。注意
您在文件的
parameters
部分可以參考String
和StringList
Parameter Store 參數。您無法參考SecureString
Parameter Store 參數。如需有關 Parameter Store 的詳細資訊,請參閱「AWS Systems Manager Parameter Store」。
類型:結構
parameters
結結構接受下列的欄位和數值:-
type
:(必要) 允許的值包括:String
、StringList
、Integer
、Boolean
、MapList
和StringMap
。若要查看每個類型的範例,在下一個部分請參閱 SSM 文件參數 type 範例。注意
指令類型文件僅支援
String
和StringList
參數類型。 -
description
(選用) 參數說明。 -
default
:(選擇性) 在 Parameter Store 中預設的參數值或參考值。 -
allowedValues
:(選擇性) 參數允許的值陣列。定義參數的允許值會驗證使用者輸入。如果使用者輸入不允許的值,則無法開始執行。 -
allowedPattern
:(選擇性) 規則運算式,可驗證使用者輸入是否符合參數定義的模式。如果使用者輸入不符合允許的模式,則無法開始執行。注意
Systems Manager 執行兩次
allowedPattern
驗證。當您使用文檔時,第一次驗證是使用 Java 正則表達式庫在API級別執行的。在處理文件之前,藉由使用 GO Regexp 程式庫 ,在 SSM Agent 上執行第二次驗證。 -
displayType
: (選擇性) 用於textarea
在中顯示 atextfield
或 a AWS Management Console。textfield
是單行文字方塊。textarea
是多行文字區域。 -
minItems
:(選擇性) 允許項目數量的最小值。 -
maxItems
:(選擇性) 允許項目數量的最大值。 -
minChars
:(選擇性) 允許參數字元數量的最小值。 -
maxChars
:(選擇性) 允許參數字元數量的最大值。
必要:否
-
- variables
-
(僅限結構描述版本 0.3) 您可以在 Automation 執行手冊中的整個步驟中參考或更新的值。變數類似於參數,但有一個非常重要的差異。參數值在執行手冊的內容中是靜態的,但變數的值可以在執行手冊的內容中進行變更。更新變數的值時,資料類型必須與定義的資料類型相符。如需有關在自動化操作中更新變數值的資訊,請參閱 aws:updateVariable - 更新執行手冊變數的值
類型:布爾 | 整數 MapList | 字符串 | StringList | StringMap
必要:否
- runtimeConfig
-
(結構描述 1.2 版) 一個或多個 Systems Manager 外掛程式套用的執行個體組態。不能保證外掛程式按順序執行。
類型:字典 < 字串,> PluginConfiguration
必要:否
- mainSteps
-
(僅限結構描述版本 0.3、2.0 和 2.2) 可以包含多個步驟 (外掛程式) 的物件。外掛程式在步驟中定義。步驟會按文件中列出的順序執行。
類型:字典 < 字串,> PluginConfiguration
必要:是
- outputs
-
(僅限結構描述版本 0.3) 執行此文件所產生的資料,可用於其他程序。例如,如果您的文件建立了新文件AMI,您可以指定 "CreateImage。 ImageId"作為輸出值,然後使用此輸出在後續的自動化執行中建立新的執行個體。如需輸出的詳細資訊,請參閱 使用動作輸出作為輸入。
類型:字典 < 字串,> OutputConfiguration
必要:否
- files
-
(僅限結構描述 0.3) 連接至文件並在自動化執行期間執行的指令碼檔案 (及其檢查總和)。僅適用於包含
aws:executeScript
動作,以及已在一或多個步驟中指定附件的文件。對於腳本運行時支持,自動化手冊支持腳本為 Python 3.7,Python 3.8, PowerShell 核心 6.0 和 PowerShell 7.0。如需有關在 Automation Runbook 中包含指令碼的詳細資訊,請參閱 在執行手冊中使用指令碼 和 使用文件建置器建立執行手冊。
建立包含附件的自動化工作流程簿時,您還必須使用
--attachments
選項 (用於 AWS CLI) 或Attachments
(用於API和SDK) 來指定附件檔案。您可以為本機檔案和存放在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的檔案指定檔案位置。如需詳細資訊,請參閱 AWS Systems Manager API參考檔中的附件。類型:字典 < 字串,> FilesConfiguration
必要:否
SSM 文件參數 type
範例
SSM文件中的參數類型是靜態的。這意味著參數類型在定義後便無法變更。將參數與SSM文件外掛程式搭配使用時,無法在外掛程式的輸入中動態變更參數類型。例如,您無法在 aws:runShellScript
外掛程式的 runCommand
輸入中參考 Integer
參數,因為此輸入接受字串或字串清單。若要對外掛程式輸入使用參數,參數類型必須與接受的類型相符。例如,您必須為 aws:updateSsmAgent
外掛程式的 allowDowngrade
輸入指定 Boolean
類型參數。如果您的參數類型與外掛程式的輸入類型不相符,則SSM文件無法驗證,且系統不會建立文件。當在其他外掛程式或 AWS Systems Manager 自動化動作的輸入內下游使用參數時,也會發生這種情況。例如,您無法參考 aws:runDocument
外掛程式 documentParameters
輸入中的 StringList
參數。即使下游SSM文件參數類型是參數且符合您參考的StringList
參數,documentParameters
輸入也會接受字串對映。
將參數與自動化動作搭配使用時,在大多數情況下建立SSM文件時不會驗證參數類型。只有當您使用aws:runCommand
動作時,才會在建立SSM文件時驗證參數類型。在所有其他情況下,則會在執行動作之前驗證動作的輸入之時,在自動化執行期間進行參數驗證。例如,如果您的輸入參數是 a,String
而您將其參考為aws:runInstances
動作MaxInstanceCount
輸入的值,則會建立SSM文件。不過,執行文件時,自動化會在驗證 aws:runInstances
動作時會失敗,因為 MaxInstanceCount
輸入需要 Integer
.
以下是每個參數 type
的範例。
- 字串
-
一連串零或多個 Unicode 字元以雙引號框住。例如,"i-1234567890abcdef0"。使用反斜線逸出。
- StringList
-
由逗號分隔的字串項目清單。例如,["cd 〜", "pwd"]。
- Boolean
-
僅接受
true
或false
。不接受「true」或 0。 - Integer
-
整數號碼。不接受十進位小數,例如 3.14159 或以雙引號括住的號碼,例如 "3"。
- StringMap
-
金鑰與值的映射。金鑰和值必須是字串。例如,{"Env": "Prod"}。
- MapList
-
StringMap 物件清單。
檢視SSM命令文件內容
若要預覽 AWS Systems Manager (SSM) Command 文件的必要參數和選用參數,除了文件執行的動作外,您還可以在 Systems Manager 主控台中檢視文件的內容。
檢視SSM命令文件內容的步驟
在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 在導覽窗格中,選擇 Documents (文件)。
-
在搜尋方塊中,選取 Document type (文件類型),然後選取 Command (命令)。
-
選擇文件名稱,然後選擇 Content (內容) 標籤。
-
在內容欄位中,檢閱文件的可用參數和動作步驟。
例如,下圖顯示 (1)
version
與 (2)allowDowngrade
是AWS-UpdateSSMAgent
文件的可選參數,並且文件執行的第一個操作是 (3)aws:updateSsmAgent
。