AWS Systems Manager
ユーザーガイド

SSM ドキュメントの構文

ドキュメントの構文は作成に使用するスキーマのバージョンによって定義されます。バージョン 2.2 以降のスキーマを使用することをお勧めします。このスキーマバージョンを使用したドキュメントには、次の最上位要素が含まれます。これらの要素で指定できるプロパティの詳細については、「最上位の要素」を参照してください。

  • schemaVersion: 使用するスキーマバージョン。

  • Description: ドキュメントの目的を説明するために提供する情報。

  • Parameters: ドキュメントで受け入れるパラメータ。頻繁に参照するパラメータの場合は、そのパラメータを Systems Manager パラメータストア に保存してそこを参照することをお勧めします。ドキュメントのこのセクションで String および StringList Systems Manager パラメータを参照できます。ドキュメントのこのセクションで Secure String Systems Manager パラメータを参照することはできません。詳細については、「AWS Systems Manager パラメータストア」を参照してください。

  • mainSteps: 複数のステップ (プラグイン) を含めることができるオブジェクト。ステップには、1 つまたは複数のアクション、任意の前提条件、アクションの一意の名前、これらのアクションの入力 (パラメータ) が含まれます。サポートされているプラグインとプラグインのプロパティのリストについては、「SSM ドキュメントプラグインの参照」を参照してください。

    重要

    アクションの名前にスペースを含めることはできません。名前にスペースが含まれる場合、InvalidDocumentContent エラーが発生します。

スキーマバージョン 2.2

次の例では、JSON のスキーマバージョン 2.2 のドキュメントの最上位要素を示します。

{ "schemaVersion":"2.2", "description":"A description of the document.", "parameters":{ "parameter 1":{ "one or more parameter properties" }, "parameter 2":{ "one or more parameter properties" }, "parameter 3":{ "one or more parameter properties" } }, "mainSteps":[ { "action":"plugin 1", "name":"A name for this action.", "inputs":{ "name":"{{ input 1 }}", "name":"{{ input 2 }}", "name":"{{ input 3 }}", } } ] }

YAML スキーマバージョン 2.2 の例

Run Command で次の YAML ドキュメントを使用すると、1 つ以上のインスタンスのホスト名を返すことができます。

--- schemaVersion: '2.2' description: Sample document mainSteps: - action: aws:runPowerShellScript name: runPowerShellScript inputs: runCommand: - hostname

スキーマバージョン 2.2 の前提条件パラメータの例

スキーマバージョン 2.2 ではクロスプラットフォームのサポートを提供します。つまり、単一の SSM ドキュメント内で異なるプラグインに異なるオペレーティングシステムを指定できます。クロスプラットフォームのサポートは、次の例のようにステップ内で preconditionパラメータを使用します。

{ "schemaVersion":"2.2", "description":"cross-platform sample", "mainSteps":[ { "action":"aws:runPowerShellScript", "name":"PatchWindows", "precondition":{ "StringEquals":[ "platformType", "Windows" ] }, "inputs":{ "runCommand":[ "cmds" ] } }, { "action":"aws:runShellScript", "name":"PatchLinux", "precondition":{ "StringEquals":[ "platformType", "Linux" ] }, "inputs":{ "runCommand":[ "cmds" ] } } ] }

スキーマバージョンの例 2.2

ステートマネージャー で次の YAML ドキュメントを使用すると、ClamAV のウイルス対策ソフトウェアをダウンロードしてインストールできます。ステートマネージャー は特定の設定を強化します。これは、ステートマネージャー 関連付けが実行されるごとに、ClamAV ソフトウェアがインストールされているかをシステムが調べることを意味しています。インストールされていない場合には、ステートマネージャー はこのドキュメントを返します。

--- schemaVersion: '2.2' description: State Manager Bootstrap Example parameters: {} mainSteps: - action: aws:runShellScript name: configureServer inputs: runCommand: - sudo yum install -y httpd24 - sudo yum --enablerepo=epel install -y clamav

スキーマバージョン 2.0 YAML インベントリの例

ステートマネージャー で次の YAML ドキュメントを使用すると、インスタンスに関するインベントリメタデータを収集できます。

--- schemaVersion: '2.2' description: Software Inventory Policy Document. parameters: applications: type: String default: Enabled description: "(Optional) Collect data for installed applications." allowedValues: - Enabled - Disabled awsComponents: type: String default: Enabled description: "(Optional) Collect data for AWS Components like amazon-ssm-agent." allowedValues: - Enabled - Disabled networkConfig: type: String default: Enabled description: "(Optional) Collect data for Network configurations." allowedValues: - Enabled - Disabled windowsUpdates: type: String default: Enabled description: "(Optional) Collect data for all Windows Updates." allowedValues: - Enabled - Disabled instanceDetailedInformation: type: String default: Enabled description: "(Optional) Collect additional information about the instance, including the CPU model, speed, and the number of cores, to name a few." allowedValues: - Enabled - Disabled customInventory: type: String default: Enabled description: "(Optional) Collect data for custom inventory." allowedValues: - Enabled - Disabled mainSteps: - action: aws:softwareInventory name: collectSoftwareInventoryItems inputs: applications: "{{ applications }}" awsComponents: "{{ awsComponents }}" networkConfig: "{{ networkConfig }}" windowsUpdates: "{{ windowsUpdates }}" instanceDetailedInformation: "{{ instanceDetailedInformation }}" customInventory: "{{ customInventory }}"

スキーマバージョン 2.2 AWS ConfigureAWSPackage の例

次の例は AWS-ConfigureAWSPackage ドキュメントを示します。mainSteps セクションは action ステップに aws:configurePackage プラグインを含みます。

注記

Linux オペレーティングシステムでは、AWSSupport-EC2Rescue パッケージ、および AmazonCloudWatchAgent パッケージのみがサポートされています。

{ "schemaVersion": "2.2", "description": "Install or uninstall the latest version or specified version of an AWS package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver, IntelSriovDriver, AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.", "parameters": { "action": { "description": "(Required) Specify whether or not to install or uninstall the package.", "type": "String", "allowedValues": [ "Install", "Uninstall" ] }, "name": { "description": "(Required) The package to install/uninstall.", "type": "String", "allowedPattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9] [-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^ [a-zA-Z][a-zA-Z0-9\\-_]{0,39}$" }, "version": { "description": "(Optional) A specific version of the package to install or uninstall. If installing, the system installs the latest published version, by default. If uninstalling, the system uninstalls the currently installed version, by default. If no installed version is found, the latest published version is downloaded, and the uninstall action is run.", "type": "String", "default": "latest" } }, "mainSteps": [{ "action": "aws:configurePackage", "name": "configurePackage", "inputs": { "name": "{{ name }}", "action": "{{ action }}", "version": "{{ version }}" } }] }

スキーマバージョン 1.2

次の例では、スキーマバージョン 1.2 のドキュメントの最上位要素を示します。

{ "schemaVersion":"1.2", "description":"A description of the Systems Manager document.", "parameters":{ "parameter 1":{ "one or more parameter properties" }, "parameter 2":{ "one or more parameter properties" }, "parameter 3":{ "one or more parameter properties" } }, "runtimeConfig":{ "plugin 1":{ "properties":[ { "one or more plugin properties" } ] } } }

スキーマバージョン 1.2 の例

次の例は AWS-RunShellScript Systems Manager ドキュメントを示します。runtimeConfig セクションには aws:runShellScript プラグインが含まれます。

{ "schemaVersion":"1.2", "description":"Run a shell script or specify the commands to run.", "parameters":{ "commands":{ "type":"StringList", "description":"(Required) Specify a shell script or a command to run.", "minItems":1, "displayType":"textarea" }, "workingDirectory":{ "type":"String", "default":"", "description":"(Optional) The path to the working directory on your instance.", "maxChars":4096 }, "executionTimeout":{ "type":"String", "default":"3600", "description":"(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 3600 (1 hour). Maximum is 172800 (48 hours).", "allowedPattern":"([1-9][0-9]{0,3})|(1[0-9]{1,4})|(2[0-7][0-9]{1,3})|(28[0-7][0-9]{1,2})|(28800)" } }, "runtimeConfig":{ "aws:runShellScript":{ "properties":[ { "id":"0.aws:runShellScript", "runCommand":"{{ commands }}", "workingDirectory":"{{ workingDirectory }}", "timeoutSeconds":"{{ executionTimeout }}" } ] } } }