メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::SSM::Document

AWS::SSM::Document リソースは、インスタンス設定を記述する Amazon EC2 Systems Manager (SSM) ドキュメントを作成します。このドキュメントは、インスタンスでのコマンドの設定と実行に使用できます。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::SSM::Document", "Properties" : { "Content" : JSON object, "DocumentType" : String } }

YAML

Copy
Type: "AWS::SSM::Document" Properties: Content: JSON object DocumentType: String

プロパティ

Content

インスタンス設定を記述する JSON オブジェクト。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「SSM ドキュメントの作成」を参照してください。

注記

Content プロパティは、非文字列化プロパティです。自動化アクションの詳細については、Amazon EC2 Systems Manager ユーザーガイドの「Systems Manager Automation アクション」を参照してください。

Required: Yes

Type: JSON object

更新に伴う要件: 置換

DocumentType

コマンドの実行、ソフトウェアのブートストラップ、タスクの自動化などの目的別に作成するドキュメントのタイプ。有効な値については、Amazon EC2 Systems Manager API Reference の「CreateDocument」アクションを参照してください。

Required: No

Type: String

更新に伴う要件: 置換

戻り値

参照番号

AWS::SSM::Document リソースの論理 ID を組み込み Ref 関数に渡すと、関数は SSM ドキュメント名 (ssm-myinstanceconfig-ABCNPH3XCAO6 など) を返します。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

以下の SSM ドキュメントでは、AWS Directory Service 内のディレクトリにインスタンスを結合します。3 つのランタイム設定パラメーターは、インスタンスを結合するディレクトリを指定します。ドキュメントとインスタンスを関連付ける場合、これらのパラメーター値を指定します。

JSON

Copy
"document" : { "Type" : "AWS::SSM::Document", "Properties" : { "Content" : { "schemaVersion":"1.2", "description":"Join instances to an AWS Directory Service domain.", "parameters":{ "directoryId":{ "type":"String", "description":"(Required) The ID of the AWS Directory Service directory." }, "directoryName":{ "type":"String", "description":"(Required) The name of the directory; for example, test.example.com" }, "dnsIpAddresses":{ "type":"StringList", "default":[ ], "description":"(Optional) The IP addresses of the DNS servers in the directory. Required when DHCP is not configured. Learn more at http://docs.aws.amazon.com/directoryservice/latest/simple-ad/join_get_dns_addresses.html", "allowedPattern":"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" } }, "runtimeConfig":{ "aws:domainJoin":{ "properties":{ "directoryId":"{{ directoryId }}", "directoryName":"{{ directoryName }}", "dnsIpAddresses":"{{ dnsIpAddresses }}" } } } } } }

YAML

Copy
document: Type: "AWS::SSM::Document" Properties: Content: schemaVersion: "1.2" description: "Join instances to an AWS Directory Service domain." parameters: directoryId: type: "String" description: "(Required) The ID of the AWS Directory Service directory." directoryName: type: "String" description: "(Required) The name of the directory; for example, test.example.com" dnsIpAddresses: type: "StringList" default: [] description: "(Optional) The IP addresses of the DNS servers in the directory. Required when DHCP is not configured. Learn more at http://docs.aws.amazon.com/directoryservice/latest/simple-ad/join_get_dns_addresses.html" allowedPattern: "((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" runtimeConfig: aws:domainJoin: properties: directoryId: "{{ directoryId }}" directoryName: "{{ directoryName }}" dnsIpAddresses: "{{ dnsIpAddresses }}"

以下の例は、SSM ドキュメントをインスタンスと関連付ける方法を示しています。DocumentName プロパティは SSM ドキュメントを指定し、AssociationParameters プロパティはランタイム設定パラメーターの値を指定します。

JSON

Copy
"myEC2" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : {"Ref" : "myImageId"}, "InstanceType" : "t2.micro", "SsmAssociations" : [ { "DocumentName" : {"Ref" : "document"}, "AssociationParameters" : [ { "Key" : "directoryId", "Value" : [ { "Ref" : "myDirectory" } ] }, { "Key" : "directoryName", "Value" : ["testDirectory.example.com"] }, { "Key" : "dnsIpAddresses", "Value" : { "Fn::GetAtt" : ["myDirectory", "DnsIpAddresses"] } } ] } ], "IamInstanceProfile" : {"Ref" : "myInstanceProfile"}, "NetworkInterfaces" : [ { "DeviceIndex" : "0", "AssociatePublicIpAddress" : "true", "SubnetId" : {"Ref" : "mySubnet"} } ], "KeyName" : {"Ref" : "myKeyName"} } }

YAML

Copy
myEC2: Type: "AWS::EC2::Instance" Properties: ImageId: Ref: "myImageId" InstanceType: "t2.micro" SsmAssociations: - DocumentName: Ref: "document" AssociationParameters: - Key: "directoryId" Value: - Ref: "myDirectory" - Key: "directoryName" Value: - "testDirectory.example.com" - Key: "dnsIpAddresses" Value: Fn::GetAtt: - "myDirectory" - "DnsIpAddresses" IamInstanceProfile: Ref: "myInstanceProfile" NetworkInterfaces: - DeviceIndex: "0" AssociatePublicIpAddress: "true" SubnetId: Ref: "mySubnet" KeyName: Ref: "myKeyName"

このページの内容: