Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Format spesifikasi
CloudFormation membuat spesifikasi untuk setiap jenis sumber daya, seperti AWS::S3::Bucket
atauAWS::EC2::Instance
. Bagian berikut menjelaskan format dan setiap bidang dalam spesifikasi.
Bagian spesifikasi
Definisi formal untuk setiap jenis sumber daya diatur menjadi tiga bagian utama: PropertyTypes
, ResourceSpecificationVersion
, dan ResourceTypes
, seperti yang ditunjukkan dalam contoh berikut:
{ "PropertyTypes": { Property specifications }, "ResourceSpecificationVersion": "
Specification version number
", "ResourceTypes": { Resource specification } }
PropertyTypes
-
Untuk sumber daya yang memiliki properti dalam properti (disebut juga sebagai subproperti), daftar spesifikasi subproperti, seperti properti yang diperlukan, jenis nilai diperbolehkan untuk setiap properti, dan perilaku pembaruannya. Untuk informasi selengkapnya, lihat Spesifikasi properti.
Jika sumber daya tidak memiliki subproperti, bagian ini dihilangkan.
ResourceSpecificationVersion
-
Versi spesifikasi sumber daya. Format versi adalah
, di mana setiap rilis menambahkan nomor versi. Semua sumber daya memiliki nomor versi yang sama terlepas dari apakah sumber daya diperbarui atau tidak.majorVersion
.minorVersion
.patch
CloudFormation menambah nomor tambalan saat layanan membuat perbaikan bug yang kompatibel ke belakang, seperti memperbaiki tautan dokumentasi yang rusak. Saat CloudFormation menambahkan sumber daya atau properti yang kompatibel ke belakang, itu menambah nomor versi minor. Misalnya, versi spesifikasi yang lebih baru dapat menambahkan properti sumber daya tambahan untuk mendukung fitur baru dari suatu AWS layanan.
Perubahan kompatibel ke belakang menambah nomor versi utama. Perubahan ketidaksesuaian mundur dapat diakibatkan oleh perubahan spesifikasi sumber daya, seperti perubahan nama pada suatu bidang, atau perubahan pada sumber daya, seperti membuat properti sumber daya opsional menjadi wajib.
ResourceTypes
-
Daftar sumber daya dan informasi tentang setiap sumber daya properti, seperti nama properti, properti yang diperlukan, dan perilaku pembaruannya. Untuk informasi selengkapnya, lihat Spesifikasi sumber daya.
catatan
Jika Anda melihat file yang berisi definisi satu jenis sumber daya, nama properti ini adalah
ResourceType
(tunggal).
Spesifikasi properti
Spesifikasi untuk setiap properti mencakup bidang-bidang berikut. Untuk subproperti, nama properti menggunakan format
.resourceType
.subpropertyName
"
Property name
": { "Documentation": "Link to the relevant documentation
" "DuplicatesAllowed": "true or false
", "ItemType": "Type of list or map (non-primitive)
", "PrimitiveItemType": "Type of list or map (primitive)
", "PrimitiveType": "Type of value (primitive)
", "Required": "true or false
", "Type": "Type of value (non-primitive)
", "UpdateType": "Mutable, Immutable, or Conditional
", }
Documentation
-
Tautan ke Panduan AWS CloudFormation Pengguna yang memberikan informasi tentang properti.
DuplicatesAllowed
-
Jika nilai
Type
bidang adalahList
, menunjukkan apakah CloudFormation memungkinkan nilai duplikat. Jika nilai adalahtrue
, CloudFormation mengabaikan nilai duplikat. Jika nilainyafalse
, CloudFormation mengembalikan kesalahan jika Anda mengirimkan nilai duplikat. ItemType
-
Jika nilai bidang
Type
adalahList
atauMap
, menunjukkan jenis daftar atau peta jika mengandung tipe non-primitif. Jika tidak, bidang ini dihilangkan. Untuk daftar atau peta yang berisi tipe primitif, propertiPrimitiveItemType
menunjukkan jenis nilai yang valid.Nama subproperti adalah jenis item yang valid. Sebagai contoh, jika nilai jenis adalah
List
dan nilai jenis item adalahPortMapping
, Anda dapat menentukan daftar properti pemetaan port. PrimitiveItemType
-
Jika nilai bidang
Type
adalahList
atauMap
, menunjukkan jenis daftar atau peta jika mengandung tipe primitif. Jika tidak, bidang ini dihilangkan. Untuk daftar atau peta yang berisi tipe non-primitif, propertiItemType
menunjukkan jenis nilai yang valid.Jenis primitif yang valid untuk daftar dan peta adalah
String
,Long
,Integer
,Double
,Boolean
, atauTimestamp
.Sebagai contoh, jika nilai jenis adalah
List
dan nilai jenis item adalahString
, Anda dapat menentukan daftar string untuk properti. Jika nilai jenis adalahMap
dan nilai jenis item adalahBoolean
, Anda dapat menentukan string untuk pemetaan Boolean untuk properti. PrimitiveType
-
Untuk nilai primitif, jenis primitif valid untuk properti. Jenis primitif adalah jenis data dasar untuk nilai properti sumber daya. Jenis primitif yang valid adalah
String
,Long
,Integer
,Double
,Boolean
,Timestamp
atauJson
. Jika nilai yang valid adalah jenis non-primitif, bidang ini dihilangkan dan bidangType
menunjukkan jenis nilai yang valid. Required
-
Menunjukkan apakah properti diperlukan.
Type
-
Untuk jenis non-primitif, nilai valid untuk properti. Jenis yang valid adalah nama subproperti,
List
atauMap
. Jika nilai yang valid adalah jenis primitif, bidang ini dihilangkan dan bidangPrimitiveType
menunjukkan jenis nilai yang valid.Daftar adalah daftar nilai yang dipisahkan koma. Peta adalah kumpulan pasangan kunci-nilai, di mana kunci selalu berupa string. Jenis nilai untuk daftar dan peta ditunjukkan oleh bidang
ItemType
atauPrimitiveItemType
. UpdateType
-
Selama pembaruan tumpukan, perilaku pembaruan saat Anda menambahkan, menghapus, atau memodifikasi properti. CloudFormation menggantikan sumber daya saat Anda mengubah properti yang tidak dapat diubah. CloudFormationtidak menggantikan sumber daya saat Anda mengubah properti yang bisa berubah. Pembaruan bersyarat dapat bersifat tetap atau dapat berubah, tergantung pada, misalnya, properti lain yang Anda perbarui. Untuk informasi lebih lanjut, lihat dokumentasi jenis sumber daya yang relevan.
Spesifikasi sumber daya
Spesifikasi untuk setiap jenis sumber daya mencakup bidang-bidang berikut.
"
Resource type name
": { "Attributes": { "AttributeName
": { "ItemType": "Return list or map type (non-primitive)
", "PrimitiveItemType": "Return list or map type (primitive)
", "PrimitiveType": "Return value type (primitive)
", "Type": "Return value type (non-primitive)
", } }, "Documentation": "Link to the relevant documentation
", "Properties": { Property specifications } }
Attributes
-
Daftar atribut sumber daya yang dapat Anda gunakan dalam fungsi Fn::GetAtt. Untuk setiap atribut, bagian ini memberikan nama atribut dan jenis nilai yang CloudFormation dikembalikan.
ItemType
-
Jika nilai
Type
bidang adalahList
, menunjukkan jenis daftar yang dikembalikan fungsiFn::GetAtt
untuk atribut jika daftar berisi jenis non-primitif. Jenis yang valid adalah nama properti. PrimitiveItemType
-
Jika nilai
Type
bidang adalahList
, menunjukkan jenis daftar yang dikembalikan fungsiFn::GetAtt
untuk atribut jika daftar berisi jenis primitif. Untuk daftar yang berisi jenis non-primitif, propertiItemType
menunjukkan jenis nilai yang valid. Jenis primitif yang valid untuk daftar adalahString
,Long
,Integer
,Double
,Boolean
, atauTimestamp
.Sebagai contoh, jika nilai jenis adalah
List
dan nilai jenis item primitif adalahString
, fungsiFn::GetAtt
mengembalikan daftar string. PrimitiveType
-
Untuk nilai primitif yang dikembalikan, jenis nilai primitif yang dikembalikan fungsi
Fn::GetAtt
untuk atribut. Jenis primitif adalah jenis data dasar untuk nilai properti sumber daya. Jenis primitif yang valid adalahString
,Long
,Integer
,Double
,Boolean
,Timestamp
atauJson
. Type
-
Untuk nilai non-primitif yang dikembalikan, jenis nilai primitif yang dikembalikan fungsi
Fn::GetAtt
untuk atribut. Jenis yang valid adalah nama properti atauList
.Daftar adalah daftar nilai yang dipisahkan koma. Jenis nilai untuk daftar ditunjukkan oleh bidang
ItemType
atauPrimitiveItemType
.
Documentation
-
Tautan ke Panduan AWS CloudFormation Pengguna untuk informasi tentang sumber daya.
Properties
-
Daftar spesifikasi properti untuk sumber daya. Untuk detailnya, lihat Spesifikasi properti.
Contoh spesifikasi sumber daya
Contoh berikut menyoroti dan menjelaskan bagian dari spesifikasi sumber daya AWS::Elasticsearch::Domain
.
Jenis sumber daya AWS::Elasticsearch::Domain
berisi subproperti, sehingga spesifikasi mencakup bagian PropertyTypes
. Bagian ini diikuti oleh bagian ResourceSpecificationVersion
, yang menunjukkan versi spesifikasi sebagai 1.0.0
. Setelah versi spesifikasi adalah bagian ResourceType
yang menentukan jenis sumber daya, menyediakan tautan dokumentasi, dan memperinci properti sumber daya.
{ "PropertyTypes": { ... }, "ResourceSpecificationVersion": "1.0.0", "ResourceType": { "AWS::Elasticsearch::Domain": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html", "Properties": { ... } } } } }
Berfokus pada bagian ResourceType
, contoh berikut menunjukkan dua properti jenis sumber daya AWS::Elasticsearch::Domain
. AdvancedOptions
Properti tidak diperlukan dan menerima string ke peta string. Sebuah peta adalah kumpulan pasangan kunci-nilai, di mana kunci selalu berupa string. Jenis nilai ditunjukkan oleh bidang ItemType
, yang berupa String
. Oleh karena itu, jenis adalah peta string ke string. Perilaku pembaruan untuk properti ini dapat berubah. Jika memperbarui properti ini, CloudFormation simpan sumber daya alih-alih membuat yang baru dan kemudian menghapus yang lama (pembaruan yang tidak dapat diubah).
SnapshotOptions
Properti tidak diperlukan dan menerima subproperti bernama. SnapshotOptions
Perincian subproperti SnapshotOptions
tersedia di bagian PropertyTypes
.
{ "PropertyTypes": { ... }, "ResourceSpecificationVersion": "1.0.0", "ResourceType": { "AWS::Elasticsearch::Domain": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html", "Properties": { ... "AdvancedOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions", "DuplicatesAllowed": false, "PrimitiveItemType": "String", "Required": false, "Type": "Map", "UpdateType": "Mutable" }, ... "SnapshotOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-snapshotoptions", "Required": false, "Type": "SnapshotOptions", "UpdateType": "Mutable" }, ... } } } }
DalamPropertyTypes
, spesifikasi mencantumkan semua subproperti sumber daya (termasuk subproperti bersarang). Contoh berikut memperinci subproperti AWS::Elasticsearch::Domain.SnapshotOptions
. Ini berisi satu properti bernamaAutomatedSnapshotStartHour
, yang tidak diperlukan dan menerima jenis nilai integer.
"PropertyTypes": { ... "AWS::Elasticsearch::Domain.SnapshotOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html", "Properties": { "AutomatedSnapshotStartHour": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html#cfn-elasticsearch-domain-snapshotoptions-automatedsnapshotstarthour", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" } } }, ... }
Untuk referensi Anda, contoh berikut menyediakan seluruh spesifikasi sumber daya AWS::Elasticsearch::Domain
.
{ "PropertyTypes": { "AWS::Elasticsearch::Domain.EBSOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html", "Properties": { "EBSEnabled": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-ebsenabled", "PrimitiveType": "Boolean", "Required": false, "UpdateType": "Mutable" }, "Iops": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-iops", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" }, "VolumeSize": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-volumesize", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" }, "VolumeType": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-volumetype", "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" } } }, "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html", "Properties": { "DedicatedMasterCount": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmastercount", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" }, "DedicatedMasterEnabled": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmasterenabled", "PrimitiveType": "Boolean", "Required": false, "UpdateType": "Mutable" }, "DedicatedMasterType": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmastertype", "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" }, "InstanceCount": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instancecount", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" }, "InstanceType": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instancetype", "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" }, "ZoneAwarenessEnabled": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-zoneawarenessenabled", "PrimitiveType": "Boolean", "Required": false, "UpdateType": "Mutable" } } }, "AWS::Elasticsearch::Domain.SnapshotOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html", "Properties": { "AutomatedSnapshotStartHour": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html#cfn-elasticsearch-domain-snapshotoptions-automatedsnapshotstarthour", "PrimitiveType": "Integer", "Required": false, "UpdateType": "Mutable" } } }, "Tag": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html", "Properties": { "Key": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-key", "PrimitiveType": "String", "Required": true, "UpdateType": "Immutable" }, "Value": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-value", "PrimitiveType": "String", "Required": true, "UpdateType": "Immutable" } } } }, "ResourceType": { "AWS::Elasticsearch::Domain": { "Attributes": { "DomainArn": { "PrimitiveType": "String" }, "DomainEndpoint": { "PrimitiveType": "String" } }, "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html", "Properties": { "AccessPolicies": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies", "PrimitiveType": "Json", "Required": false, "UpdateType": "Mutable" }, "AdvancedOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions", "DuplicatesAllowed": false, "PrimitiveItemType": "String", "Required": false, "Type": "Map", "UpdateType": "Mutable" }, "DomainName": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" }, "EBSOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-ebsoptions", "Required": false, "Type": "EBSOptions", "UpdateType": "Mutable" }, "ElasticsearchClusterConfig": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchclusterconfig", "Required": false, "Type": "ElasticsearchClusterConfig", "UpdateType": "Mutable" }, "ElasticsearchVersion": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" }, "SnapshotOptions": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-snapshotoptions", "Required": false, "Type": "SnapshotOptions", "UpdateType": "Mutable" }, "Tags": { "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags", "DuplicatesAllowed": true, "ItemType": "Tag", "Required": false, "Type": "List", "UpdateType": "Mutable" } } } }, "ResourceSpecificationVersion": "1.4.1" }