Format spesifikasi - AWS CloudFormation

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 majorVersion.minorVersion.patch, di mana setiap rilis menambahkan nomor versi. Semua sumber daya memiliki nomor versi yang sama terlepas dari apakah sumber daya diperbarui atau tidak.

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 nilainyatrue, CloudFormation mengabaikan nilai duplikat. Jika nilainyafalse, CloudFormation mengembalikan kesalahan jika Anda mengirimkan nilai duplikat.

ItemType

Jika nilai bidang Type adalah List atau Map, menunjukkan jenis daftar atau peta jika mengandung tipe non-primitif. Jika tidak, bidang ini dihilangkan. Untuk daftar atau peta yang berisi tipe primitif, properti PrimitiveItemType menunjukkan jenis nilai yang valid.

Nama subproperti adalah jenis item yang valid. Sebagai contoh, jika nilai jenis adalah List dan nilai jenis item adalah PortMapping, Anda dapat menentukan daftar properti pemetaan port.

PrimitiveItemType

Jika nilai bidang Type adalah List atau Map, menunjukkan jenis daftar atau peta jika mengandung tipe primitif. Jika tidak, bidang ini dihilangkan. Untuk daftar atau peta yang berisi tipe non-primitif, properti ItemType menunjukkan jenis nilai yang valid.

Jenis primitif yang valid untuk daftar dan peta adalah String, Long, Integer, Double, Boolean, atau Timestamp.

Sebagai contoh, jika nilai jenis adalah List dan nilai jenis item adalah String, Anda dapat menentukan daftar string untuk properti. Jika nilai jenis adalah Map dan nilai jenis item adalah Boolean, 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 atau Json. Jika nilai yang valid adalah jenis non-primitif, bidang ini dihilangkan dan bidang Type 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 atau Map. Jika nilai yang valid adalah jenis primitif, bidang ini dihilangkan dan bidang PrimitiveType 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 atau PrimitiveItemType.

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 adalah List, menunjukkan jenis daftar yang dikembalikan fungsi Fn::GetAtt untuk atribut jika daftar berisi jenis non-primitif. Jenis yang valid adalah nama properti.

PrimitiveItemType

Jika nilai Type bidang adalah List, menunjukkan jenis daftar yang dikembalikan fungsi Fn::GetAtt untuk atribut jika daftar berisi jenis primitif. Untuk daftar yang berisi jenis non-primitif, properti ItemType menunjukkan jenis nilai yang valid. Jenis primitif yang valid untuk daftar adalah String, Long, Integer, Double, Boolean, atau Timestamp.

Sebagai contoh, jika nilai jenis adalah List dan nilai jenis item primitif adalah String, fungsi Fn::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 adalah String, Long, Integer, Double, Boolean, Timestamp atau Json.

Type

Untuk nilai non-primitif yang dikembalikan, jenis nilai primitif yang dikembalikan fungsi Fn::GetAtt untuk atribut. Jenis yang valid adalah nama properti atau List.

Daftar adalah daftar nilai yang dipisahkan koma. Jenis nilai untuk daftar ditunjukkan oleh bidang ItemType atau PrimitiveItemType.

Documentation

Tautan ke Panduan AWS CloudFormation Pengguna untuk informasi tentang sumber daya.

Properties

Daftar spesifikasi properti untuk sumber daya. Lihat perinciannya di 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. AdvancedOptionsProperti 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).

SnapshotOptionsProperti 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" }