ALIYUN::ROS::WaitCondition類型用於等待訊號,與ALIYUN::ROS::WaitConditionHandle配合使用以控制資源棧的執行流程。建立ECS執行個體時,在自訂資料執行過程中發送訊號。
文法
{
"Type": "ALIYUN::ROS::WaitCondition",
"Properties": {
"Count": Number,
"Handle": String,
"Timeout": Number,
"ShowProgressEvent": String
}
}
屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Handle | String | 是 | 否 | 引用ALIYUN::ROS::WaitConditionHandle建立的執行個體。 | 無 |
Timeout | Number | 是 | 否 | 接收UserData訊息的逾時時間。 | 取值範圍:1~43,200。 單位:秒。 |
Count | Number | 否 | 是 | 接收UserData訊息的總數。 | 無 |
ShowProgressEvent | String | 否 | 否 | 是否顯示接收UserData訊息的進度事件。 | 取值: |
傳回值
Fn::GetAtt
Data:JSON格式字串,最近一次建立或更新後的訊號資料。
JoinedErrorData:字串,ErrorData訊號內容的拼接。
ErrorData:JSON格式字串,最近一次建立或更新後的錯誤訊號資料。
樣本
YAML
格式
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
格式
{
"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": {}
}