ALIYUN::ROS::WaitCondition digunakan untuk menunggu sinyal. Anda dapat menggunakan ALIYUN::ROS::WaitCondition bersama dengan ALIYUN::ROS::WaitConditionHandle untuk mengelola proses eksekusi suatu stack. Saat membuat instance Elastic Compute Service (ECS), sebuah sinyal dikirim selama eksekusi data pengguna.
Sintaksis
{
"Type": "ALIYUN::ROS::WaitCondition",
"Properties": {
"Count": Number,
"Handle": String,
"Timeout": Number,
"ShowProgressEvent": String
}
}
Properti
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
Handle | String | Ya | Tidak | Referensi ke instance yang dibuat menggunakan ALIYUN::ROS::WaitConditionHandle. | Tidak ada. |
Timeout | Number | Ya | Tidak | Jangka waktu timeout yang diizinkan untuk menerima pesan UserData. | Nilai valid: 1 hingga 43200. Satuan: detik. |
Count | Number | Tidak | Ya | Jumlah total pesan UserData yang diterima oleh Resource Orchestration Service (ROS). | Tidak ada. |
ShowProgressEvent | String | Tidak | Tidak | Menentukan apakah akan menampilkan peristiwa kemajuan yang mewakili kemajuan penerimaan pesan UserData. | Nilai valid: Disabled (default): tidak menampilkan peristiwa kemajuan. Enabled: menampilkan peristiwa kemajuan. EnabledIfCreateStack (tidak direkomendasikan): menampilkan peristiwa kemajuan saat Anda membuat stack.
|
Nilai kembali
Fn::GetAtt
Data: String JSON yang berisi data sinyal terakhir dibuat atau diperbarui.
JoinedErrorData: String yang berisi konten ErrorData.
ErrorData: String JSON yang berisi data sinyal kesalahan terakhir dibuat atau diperbarui.
Contoh
YAML Format
ROSTemplateFormatVersion: '2015-09-01'
Description: ''
Parameters: {}
Outputs: {}
Resources:
InstallNginx:
Type: 'ALIYUN::ECS::RunCommand'
Properties:
Type: RunShellScript
CommandContent:
'Fn::Replace':
- ros-notify:
'Fn::GetAtt':
- InstallNginxWaitConditionHandle
- CurlCli
- |
#!/bin/sh
yum install -y nginx
systemctl restart nginx
if [[ $? -eq 0 ]];
then
ros-notify -d "{\"status\" : \"SUCCESS\"}"
else
ros-notify -d "{\"status\" : \"FAILURE\"}"
fi
Name: InstallNginxScript
InstanceIds:
- i-wz995r4yn8njthoq****
Timeout: 60
InstallNginxWaitConditionHandle:
Type: 'ALIYUN::ROS::WaitConditionHandle'
InstallNginxWaitCondition:
Type: 'ALIYUN::ROS::WaitCondition'
Properties:
Handle:
Ref: InstallNginxWaitConditionHandle
Timeout: 60
Metadata: {}
JSON Format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "",
"Parameters": {},
"Outputs": {},
"Resources": {
"InstallNginx": {
"Type": "ALIYUN::ECS::RunCommand",
"Properties": {
"Type": "RunShellScript",
"CommandContent": {
"Fn::Replace": [
{
"ros-notify": {
"Fn::GetAtt": [
"InstallNginxWaitConditionHandle",
"CurlCli"
]
}
},
"#!/bin/sh\nyum install -y nginx\nsystemctl restart nginx\nif [[ $? -eq 0 ]];\nthen \nros-notify -d \"{\\\"status\\\" : \\\"SUCCESS\\\"}\" \nelse \nros-notify -d \"{\\\"status\\\" : \\\"FAILURE\\\"}\" \nfi \n"
]
},
"Name": "InstallNginxScript",
"InstanceIds": [
"i-wz995r4yn8njthoq****"
],
"Timeout": 60
}
},
"InstallNginxWaitConditionHandle": {
"Type": "ALIYUN::ROS::WaitConditionHandle"
},
"InstallNginxWaitCondition": {
"Type": "ALIYUN::ROS::WaitCondition",
"Properties": {
"Handle": {
"Ref": "InstallNginxWaitConditionHandle"
},
"Timeout": 60
}
}
},
"Metadata": {}
}