Bagian Keluaran digunakan untuk menentukan nilai-nilai yang dikembalikan oleh Resource Orchestration Service (ROS) saat operasi GetStack dipanggil. Sebagai contoh, jika ID instance Elastic Compute Service (ECS) didefinisikan sebagai keluaran, ID tersebut akan dikembalikan ketika operasi GetStack dijalankan.
Sintaks
Deklarasi keluaran mencakup nama dan deskripsi keluaran. Setiap keluaran dapat memiliki beberapa nilai yang dikembalikan dalam bentuk array. Contoh kode berikut mengilustrasikan sintaks bagian Keluaran:
Keluaran:
Nama Keluaran 1:
Deskripsi: deskripsi dari keluaran.
Kondisi: kondisi yang menentukan apakah akan mengembalikan properti sumber daya tertentu.
Nilai: ekspresi dari nilai keluaran.
Label: alias dari keluaran.
Nama Keluaran 2:
Deskripsi: deskripsi dari keluaran.
Kondisi: kondisi yang menentukan apakah akan mengembalikan properti sumber daya tertentu.
Nilai:
- Ekspresi 1 dari nilai keluaran.
- Ekspresi 2 dari nilai keluaran.
- ...
Label: alias dari keluaran.Nama: Nama keluaran yang mengidentifikasi keluaran tersebut dan harus unik dalam sebuah template.
Deskripsi: Deskripsi opsional untuk keluaran.
Nilai: Nilai wajib yang dikembalikan untuk properti sumber daya saat operasi GetStack dipanggil.
Kondisi: Kondisi opsional yang menentukan apakah sumber daya dibuat dan informasinya dikembalikan. Sumber daya hanya dibuat jika kondisi bernilai benar.
Label: Alias opsional untuk keluaran.
NoEcho: Menentukan apakah nilai parameter yang dikembalikan disamarkan. Jika NoEcho diatur ke
true, ROS akan menyamarkan nilai tersebut sebagai tanda bintang (*).Console.Url: URL konsol opsional yang ditampilkan pada tab Informasi Tumpukan halaman detail tumpukan.
Di dalam nilai keluaran, Anda dapat mendefinisikan fungsi dan literal seperti angka, string, kamus, serta daftar. Anda juga dapat menggunakan Ref untuk mereferensikan nilai dan Fn::GetAtt untuk meminta nilai properti sumber daya.
Contoh
Pada contoh berikut, dua keluaran digunakan. Keluaran pertama adalah properti InstanceId dari WebServer, sedangkan keluaran kedua adalah properti PublicIp dan PrivateIp dari WebServer.
Keluaran:
InstanceId:
Nilai:
Fn::GetAtt:
- WebServer
- InstanceId
PublicIp & PrivateIp:
Nilai:
- Fn::GetAtt:
- WebServer
- PublicIp
- Fn::GetAtt:
- WebServer
- PrivateIpPada contoh berikut, WebServer hanya dibuat jika kondisi yang ditentukan oleh MaxAmount bernilai benar.
ROSTemplateFormatVersion: '2015-09-01'
Parameter:
MaxAmount:
Jenis: Angka
Default: 1
Kondisi:
CreateWebServer:
Fn::Not:
Fn::Equals:
- 0
- Ref: MaxAmount
Sumber Daya:
WebServer:
Jenis: ALIYUN::ECS::InstanceGroup
Kondisi: CreateWebServer
Properti:
ImageId: m-25l0r****
InstanceType: ecs.t1.small
MaxAmount:
Ref: MaxAmount
Keluaran:
WebServerIP:
Kondisi: CreateWebServer
Nilai:
Fn::GetAtt:
- WebServer
- PublicIpsPada contoh berikut, nilai keluaran dari berbagai jenis dikembalikan, termasuk daftar, kamus, fungsi, dan konstanta. Console.Url yang menentukan URL konsol layanan digunakan sebagai keluaran.
ROSTemplateFormatVersion: '2015-09-01'
Metadata: {}
Parameter:
DictObjectParameter:
Default:
k2: v2
k1: v1
Jenis: Json
NumberParameter:
Default: 3,14
Jenis: Angka
StringParameter:
Default: ecs.c1.large
Jenis: String
ArrayListParameter:
Default:
- xiaomi
- xiaofeng
- xiaoliang
Jenis: Json
EcsInstancePublicIp:
Default: 1.1.X.X
Jenis: String
Sumber Daya: {}
Keluaran:
Console.Url:
Deskripsi: Nilai Demo Url Konsol
Nilai:
Fn::Sub:
- http://${EcsPublicIp}/elasticsearch-demo
- EcsPublicIp:
Ref: EcsInstancePublicIp
ArrayList:
Deskripsi: Nilai Keluaran Daftar
Nilai:
Ref: ArrayListParameter
DictObject:
Deskripsi: Nilai Keluaran Kamus
Nilai:
Ref: DictObjectParameter
Angka:
Deskripsi: Nilai Keluaran Angka
Nilai:
Ref: NumberParameter
String:
Deskripsi: Nilai Keluaran String
Nilai:
Ref: StringParameter
Pada contoh berikut, nilai keluaran didefinisikan untuk mengembalikan beberapa URL server web yang dipisahkan dengan koma (,).
ROSTemplateFormatVersion: '2015-09-01'
Parameter:
WebServerAddress:
Jenis: String
Default: 192.168.1.1
Label:
en: WebServerAddress
Keluaran:
WebServerAddress:
Deskripsi:
en: URL Server Web.
Nilai:
Fn::Sub:
- http://${WebServerAddress}:80,http://${WebServerAddress}:8080,http://${WebServerAddress}:8881
- WebServerAddress:
Ref: WebServerAddress