Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sumber daya
Resources
Bagian 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 sebagaiMyPerformanceLogs
. 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: {}