用于事件驱动的自动化场景。当包含事件触发器的模版创建执行后,该执行初始为等待中状态。当事件触发器监控的事件发生,执行状态切换为运行中,并立即开始执行模版中定义的后续任务。如收到抢占式实例中断事件通知时,将该实例从负载均衡的后端服务器列表中移除。
运维编排可监控的事件包括云产品状态通知、运维事件以及业务异常等,并提供按云产品名称、事件名称、事件级别、事件详情等属性进行筛选,帮您做到精准监控和及时响应。
触发器有如下限制:
Tasks:
- Name: taskName # 任务名称
Action: 'ACS::EventTrigger'
Properties:
Product: productName1 # 云产品名称。类型:String,如"ECS"。
Name: # 事件名称。类型:List,如 ["Instance:StateChange"]。
- eventName1
Level: # 事件级别。类型:List,如["INFO"]。
- eventLevel1
Content: # 事件详情。类型:Map,如{ "state":["Stopped"] }。
contenAttrKey1: # 事件详情的待筛选属性名
- value1 # 事件详情的待筛选属性值
Outputs: # 该任务输出,选填。
outputParameterName1: # 参数名,有效字符为[a-zA-Z0-9_-],即英文半角字母数字下划线中划线,长度限制200个字符。
ValueSelector: "jq selector" # 以JSON格式的事件通知体作为输入,应用jq从该JSON中截取所需要的值,如".content.resourceId"。
Type: type1 # 可选,YAML, JSON格式支持的基本类型String, Number, Boolean, List(Array),Object,默认String。
{
"Tasks": [
{
"Name": "taskName",
"Action": "ACS::EventTrigger",
"Properties": {
"Product": "productName1",
"Name": [
"eventName1"
],
"Level": [
"eventLevel1"
],
"Content": {
"contenAttrKey1": [
"value1"
]
}
},
"Outputs": {
"outputParameterName1": {
"ValueSelector": "jq selector",
"Type": "type1"
}
}
}
]
}
便于您配置待监控事件的筛选规则或筛选结果的输出,您需先了解待监控事件的通知格式,该格式为JSON格式,外层为公共属性,content部分为事件详情,样式如下。此处提到的格式与云监控的事件通知格式一致,了解不同事件通知的格式可参见云监控的事件通知列表。
样式
{
"product": "ECS",
"resourceId": "acs:ecs:cn-shanghai:1612345678890:instance/i-abcdef",
"level": "WARN",
"instanceName": "instanceName",
"regionId": "cn-hangzhou",
"name": "Instance:PreemptibleInstanceInterruption",
"content": {
"instanceId": "i-abcdef",
"action": "delete"
}
}
通过定义任务的Outputs来输出匹配事件中的信息,可供后续任务使用。Outputs中ValueSelector筛选定义方式与普通任务一致,作用到的被筛选对象是JSON格式的事件通知体,可参考本章的事件通知格式小节。
ECS实例一旦被关闭,立刻启动。
---
FormatVersion: OOS-2019-06-01
Description: Start ECS instance when instance is stopped.
Parameters:
OOSAssumeRole:
Description: The RAM role to be assumed by OOS.
Type: String
Default: OOSServiceRole
RamRole: '{{OOSAssumeRole}}'
Tasks:
- Name: whenInstanceStopped
Action: 'ACS::EventTrigger'
Properties:
Product: ECS
Name:
- 'Instance:StateChange'
Level:
- INFO
Content:
state:
- Stopped
Outputs:
InstanceId:
ValueSelector: .content.resourceId
Type: String
- Name: startInstance
Action: 'ACS::ExecuteAPI'
Properties:
Service: ECS
API: StartInstance
Parameters:
InstanceId: '{{ whenInstanceStopped.InstanceId }}'
Description: start instance.
Outputs:
InstanceId:
Value: '{{ whenInstanceStopped.InstanceId }}'
Type: String
{
"FormatVersion": "OOS-2019-06-01",
"Description": "Start ECS instance when instance is stopped.",
"Parameters": {
"OOSAssumeRole": {
"Description": "The RAM role to be assumed by OOS.",
"Type": "String",
"Default": "OOSServiceRole"
}
},
"RamRole": "{{OOSAssumeRole}}",
"Tasks": [
{
"Name": "whenInstanceStopped",
"Action": "ACS::EventTrigger",
"Properties": {
"Product": "ECS",
"Name": [
"Instance:StateChange"
],
"Level": [
"INFO"
],
"Content": {
"state": [
"Stopped"
]
}
},
"Outputs": {
"InstanceId": {
"ValueSelector": ".content.resourceId",
"Type": "String"
}
}
},
{
"Name": "startInstance",
"Action": "ACS::ExecuteAPI",
"Properties": {
"Service": "ECS",
"API": "StartInstance",
"Parameters": {
"InstanceId": "{{ whenInstanceStopped.InstanceId }}"
}
},
"Description": "start instance."
}
],
"Outputs": {
"InstanceId": {
"Value": "{{ whenInstanceStopped.InstanceId }}",
"Type": "String"
}
}
}
本文转载自微信公众号「新钛云服」,作者祝祥 。转载本文请联系新钛云服公众号。...
作为数据科学家,我想把行业新的知识图谱总结并分享给技术专家们,让大数据知识...
什么是数据挖掘?大家知道吗?与数据分析有什么联系吗?又或者说数据挖掘与数据分析...
在选择 云服务器 时,企业或站长都希望用最低的价格买到最合适的产品,节省 建站...
关于Aishwin Vikhona: 互联网解决方案提供商Global Websoft公司创始人,知名 域...
服务器租用特别注意的细节 服务器对于网站的重要性相信很多人都是了解的,对提高...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
今天带大家了解一款分布式链路追踪软件,为什么要介绍链路追踪呢? 当前互联网行...
ALIYUN::EDAS::UserDefineRegion类型用于创建或编辑自定义命名空间。 语法 { "Ty...
关于机架式服务器托管你需要了解什么 对于服务器很多人并不陌生,服务器是承载网...