Sumber daya - AWS CloudFormation

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

Sumber daya

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

Sintaksis

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

JSON

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

YAML

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

Bidang sumber daya

ID 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 volume Amazon Elastic Block Store ke instans Amazon EC2, Anda mereferensikan ID logis untuk mengaitkan penyimpanan blok dengan instance.

Selain ID logis, sumber daya tertentu juga memiliki ID fisik, yang merupakan nama yang ditetapkan sebenarnya untuk sumber daya tersebut, seperti ID instans EC2 atau nama bucket S3. Gunakan ID fisik untuk mengidentifikasi sumber daya di luar AWS CloudFormation templat, tetapi hanya setelah sumber daya dibuat. Misalnya, anggaplah Anda memberikan sumber daya instans EC2 ID logis MyEC2Instance. Saat AWS CloudFormation membuat instance, AWS 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 nama DNS) dengan menggunakan konsol Amazon EC2. Untuk sumber daya yang mendukung nama kustom, Anda dapat menetapkan nama Anda sendiri (ID fisik) 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.

Jenis sumber daya

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

Properti sumber daya

Properti sumber daya adalah opsi tambahan yang dapat Anda tentukan untuk sumber daya. Misalnya, untuk setiap instans EC2, Anda harus menentukan ID Amazon Machine Image (AMI) untuk instans tersebut. Anda mendeklarasikan ID AMI sebagai properti dari instans, seperti yang ditunjukkan dalam 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 syarat di bagian Conditions dari templat.

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: {}