ALIYUN::AMQP::Exchange类型用于创建Exchange。
语法
{
"Type": "ALIYUN::AMQP::Exchange",
"Properties": {
"InstanceId": String,
"AlternateExchange": String,
"Internal": Boolean,
"VirtualHost": String,
"AutoDeleteState": Boolean,
"ExchangeName": String,
"ExchangeType": String
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
AutoDeleteState | Boolean | 是 | 否 | 是否自动删除。 | 取值:
|
ExchangeName | String | 是 | 否 | Exchange名称。 | Exchange名称说明:
|
ExchangeType | String | 是 | 否 | Exchange类型。 | 取值:
|
InstanceId | String | 是 | 否 | 实例ID。 | 无 |
Internal | Boolean | 是 | 否 | 是否为内部Exchange。 | 取值:
|
VirtualHost | String | 是 | 否 | Exchange所在的Vhost名称。 | 无 |
AlternateExchange | String | 否 | 否 | 备份Exchange。 | 配置备份Exchange用于接收Exchange路由失败的消息。 |
返回值
Fn::GetAtt
ExchangeName:Exchange名称。
示例
YAML
格式
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
AutoDeleteState:
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Description: 'Specifies whether the Auto Delete attribute is configured. Valid
values:
true: The Auto Delete attribute is configured. If the last queue that is bound
to an exchange is unbound, the exchange is automatically deleted.
false: The Auto Delete attribute is not configured. If the last queue that is
bound to an exchange is unbound, the exchange is not automatically deleted.'
Type: Boolean
ExchangeName:
Description: The name of the exchange.
MaxLength: 255
Type: String
ExchangeType:
AllowedValues:
- FANOUT
- DIRECT
- TOPIC
- HEADERS
Description: 'The type of the exchange. Valid values:
FANOUT: An exchange of this type routes all the received messages to all the
queues bound to this exchange. You can use a fanout exchange to broadcast messages.
DIRECT: An exchange of this type routes a message to the queue whose binding
key is exactly the same as the routing key of the message.
TOPIC: This type is similar to the direct exchange type. An exchange of this
type routes a message to one or more queues based on the fuzzy match or multi-condition
match result between the routing key of the message and the binding keys of
the current exchange.
HEADERS: Headers Exchange uses the Headers property instead of Routing Key for
routing matching. When binding Headers Exchange and Queue, set the key-value
pair of the binding property; when sending a message to the Headers Exchange,
set the message''s Headers property key-value pair and use the message Headers
The message is routed to the bound Queue by comparing the attribute key-value
pair and the bound attribute key-value pair.'
Type: String
InstanceId:
Description: InstanceId
Type: String
Internal:
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Description: 'Specifies whether an exchange is an internal exchange. Valid values:
false: The exchange is not an internal exchange.
true: The exchange is an internal exchange.'
Type: Boolean
VirtualHost:
Description: The name of the virtual host.
Type: String
Resources:
Exchange:
Properties:
AutoDeleteState:
Ref: AutoDeleteState
ExchangeName:
Ref: ExchangeName
ExchangeType:
Ref: ExchangeType
InstanceId:
Ref: InstanceId
Internal:
Ref: Internal
VirtualHost:
Ref: VirtualHost
Type: ALIYUN::AMQP::Exchange
Outputs:
ExchangeName:
Description: The name of the exchange.
Value:
Fn::GetAtt:
- Exchange
- ExchangeName
JSON
格式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"InstanceId": {
"Type": "String",
"Description": "InstanceId"
},
"Internal": {
"Type": "Boolean",
"Description": "Specifies whether an exchange is an internal exchange. Valid values:\nfalse: The exchange is not an internal exchange.\ntrue: The exchange is an internal exchange.",
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"VirtualHost": {
"Type": "String",
"Description": "The name of the virtual host."
},
"AutoDeleteState": {
"Type": "Boolean",
"Description": "Specifies whether the Auto Delete attribute is configured. Valid values:\ntrue: The Auto Delete attribute is configured. If the last queue that is bound to an exchange is unbound, the exchange is automatically deleted.\nfalse: The Auto Delete attribute is not configured. If the last queue that is bound to an exchange is unbound, the exchange is not automatically deleted.",
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"ExchangeName": {
"Type": "String",
"Description": "The name of the exchange.",
"MaxLength": 255
},
"ExchangeType": {
"Type": "String",
"Description": "The type of the exchange. Valid values:\nFANOUT: An exchange of this type routes all the received messages to all the queues bound to this exchange. You can use a fanout exchange to broadcast messages.\nDIRECT: An exchange of this type routes a message to the queue whose binding key is exactly the same as the routing key of the message.\nTOPIC: This type is similar to the direct exchange type. An exchange of this type routes a message to one or more queues based on the fuzzy match or multi-condition match result between the routing key of the message and the binding keys of the current exchange.\nHEADERS: Headers Exchange uses the Headers property instead of Routing Key for routing matching. When binding Headers Exchange and Queue, set the key-value pair of the binding property; when sending a message to the Headers Exchange, set the message's Headers property key-value pair and use the message Headers The message is routed to the bound Queue by comparing the attribute key-value pair and the bound attribute key-value pair.",
"AllowedValues": [
"FANOUT",
"DIRECT",
"TOPIC",
"HEADERS"
]
}
},
"Resources": {
"Exchange": {
"Type": "ALIYUN::AMQP::Exchange",
"Properties": {
"InstanceId": {
"Ref": "InstanceId"
},
"Internal": {
"Ref": "Internal"
},
"VirtualHost": {
"Ref": "VirtualHost"
},
"AutoDeleteState": {
"Ref": "AutoDeleteState"
},
"ExchangeName": {
"Ref": "ExchangeName"
},
"ExchangeType": {
"Ref": "ExchangeType"
}
}
}
},
"Outputs": {
"ExchangeName": {
"Description": "The name of the exchange.",
"Value": {
"Fn::GetAtt": [
"Exchange",
"ExchangeName"
]
}
}
}
}