Resources - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Resources

ResourcesBagian wajib mendeklarasikan AWS sumber daya yang ingin Anda sertakan dalam tumpukan, seperti EC2 instans Amazon atau bucket Amazon S3.

Sintaks

Bagian Resources terdiri dari nama kunci Resources. Templat semu berikut menguraikan bagian Resources:

JSON

"Resources" : { "Logical ID of resource" : { "Type" : "Resource type", "Properties" : { Set of properties } } }

YAML

Resources: Logical ID of resource: Type: Resource type Properties: Set of properties

Bidang sumber daya

Logical ID (juga disebut nama logis)

ID logis harus berupa alfanumerik (A-Za-z0-9) dan unik dalam templat. Gunakan nama logis untuk mereferensikan sumber daya di bagian lain dari templat. Misalnya, jika Anda ingin memetakan EBS volume Amazon ke EC2 instans Amazon, Anda mereferensikan logika IDs untuk mengaitkan penyimpanan blok dengan instance.

Selain ID logis, sumber daya tertentu juga memiliki ID fisik, yang merupakan nama aktual yang ditetapkan untuk sumber daya tersebut, seperti ID EC2 instance atau nama bucket S3. Gunakan fisik IDs untuk mengidentifikasi sumber daya di luar CloudFormation templat, tetapi hanya setelah sumber daya dibuat. Misalnya, Anda memberikan sumber daya EC2 instance ID logis dariMyEC2Instance. Saat CloudFormation membuat instance, CloudFormation secara otomatis menghasilkan dan menetapkan ID fisik (sepertii-28f9ba55) ke instance. Anda dapat menggunakan ID fisik ini untuk mengidentifikasi instance dan melihat propertinya (seperti DNS nama) dengan menggunakan EC2 konsol Amazon. Untuk sumber daya yang mendukung nama kustom, Anda dapat menetapkan nama Anda sendiri (fisikIDs) untuk membantu Anda mengidentifikasi sumber daya dengan cepat. Misalnya, Anda dapat menamakan bucket S3 yang menyimpan log sebagai MyPerformanceLogs. Untuk informasi selengkapnya, lihat Jenis nama.

Type

Jenis sumber daya mengidentifikasi jenis sumber daya yang Anda deklarasi. Misalnya, AWS::EC2::Instance mendeklarasikan sebuah EC2 instance. Untuk daftar semua jenis sumber daya, lihat AWS referensi jenis sumber daya dan properti.

Properties

Properti sumber daya adalah opsi tambahan yang dapat Anda tentukan untuk sumber daya. Misalnya, untuk setiap EC2 instance, Anda harus menentukan ID Amazon Machine Image (AMI) untuk instance tersebut. Anda mendeklarasikan AMI ID sebagai properti instance, seperti yang ditunjukkan pada contoh berikut:

contoh JSON
"Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-0ff8a91507f77f867" } } }
contoh YAML
Resources: MyEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-0ff8a91507f77f867"

Jika sumber daya tidak mengharuskan properti dideklarasikan, hilangkan bagian properti dari sumber daya itu.

Nilai properti dapat berupa string literal, daftar string, Boolean, referensi parameter, referensi semu, atau nilai yang dikembalikan oleh fungsi. Contoh berikut menunjukkan kepada Anda cara mendeklarasikan jenis nilai properti yang berbeda:

contoh JSON
"Properties" : { "String" : "one-string-value", "Number" : 123, "LiteralList" : [ "first-value", "second-value" ], "Boolean" : true, "ReferenceForOneValue" : { "Ref" : "MyLogicalResourceName" } , "FunctionResultWithFunctionParams" : { "Fn::Join" : [ "%", [ "Key=", { "Ref" : "MyParameter" } ] ] } }
contoh YAML
Properties: String: OneStringValue String: A longer string value Number: 123 LiteralList: - "[first]-string-value with a special characters" - "[second]-string-value with a special characters" Boolean: true ReferenceForOneValue: Ref: MyLogicalResourceName ReferenceForOneValueShortCut: !Ref MyLogicalResourceName FunctionResultWithFunctionParams: !Sub | Key=%${MyParameter}

Anda dapat secara bersyarat membuat sumber daya dengan mengaitkan suatu syarat dengannya. Anda harus menentukan kondisi di bagian Kondisi template.

Contoh

Contoh berikut menunjukkan deklarasi sumber daya. Ini mendefinisikan dua sumber daya. Sumber daya MyInstance mencakup sumber daya MyQueue sebagai bagian dari properti UserData nya:

JSON

"Resources" : { "MyInstance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [ "Queue=", { "Ref" : "MyQueue" } ] ] } }, "AvailabilityZone" : "us-east-1a", "ImageId" : "ami-0ff8a91507f77f867" } }, "MyQueue" : { "Type" : "AWS::SQS::Queue", "Properties" : { } } }

YAML

Resources: MyInstance: Type: "AWS::EC2::Instance" Properties: UserData: "Fn::Base64": !Sub | Queue=${MyQueue} AvailabilityZone: "us-east-1a" ImageId: "ami-0ff8a91507f77f867" MyQueue: Type: "AWS::SQS::Queue" Properties: {}