Publica uma mensagem em um tópico MNS. O tópico encaminha a mensagem para os endpoints de assinatura.
Nome do modelo
O modelo ACS-MNS-PublishMessage publica uma mensagem em um tópico MNS.
Descrição do modelo
Publica uma mensagem em um tópico MNS específico. O tópico encaminha a mensagem para um endpoint de assinatura.
Tipo de modelo
Automatizado
Proprietário
Alibaba Cloud
Parâmetros de entrada
|
Parâmetro |
Descrição |
Tipo de dados |
Obrigatório |
Valor padrão |
Limite |
|
topicName |
Nome do tópico MNS. |
String |
Sim |
||
|
message |
Corpo da mensagem a publicar. |
String |
Sim |
||
|
regionId |
ID da região. |
String |
Não |
{{ ACS::RegionId }} |
|
|
messageType |
Tipo da mensagem: default, sms ou mail. |
String |
Não |
default |
|
|
messageAttributes |
Atributos da mensagem. Obrigatório quando messageType for sms ou mail. |
Json |
Não |
{} |
|
|
OOSAssumeRole |
Função RAM assumida pelo OOS. |
String |
Não |
"" |
Parâmetros de saída
|
Parâmetro |
Descrição |
Tipo de dados |
|
message |
Json |
Permissões necessárias
{
"Version": "1",
"Statement": [
{
"Action": [
"mns:PublishMessage"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Detalhes
Conteúdo do modelo
FormatVersion: OOS-2019-06-01
Description:
en: Publishes a message to a specified MNS topic. After the message is published, the topic pushes the message to an endpoint for consumption.
name-en: ACS-MNS-PublishMessage
categories:
- security
Parameters:
regionId:
Type: String
Label:
en: Region ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
topicName:
Label:
en: Topic Name
Type: String
message:
Label:
en: Message
Type: String
messageType:
Label:
en: Message Type
Description:
en: "Specifies the message type. 'default': publishes a message to the MNS topic. 'sms': pushes the message to an SMS endpoint. 'mail': pushes the message to a mail endpoint."
Type: String
Default: default
AllowedValues:
- default
- sms
- mail
messageAttributes:
Label:
en: Message Attributes
Description:
en: 'Required when messageType is ''sms'' or ''mail''. The content format for mail and SMS messages is different. For more information, see https://www.alibabacloud.com/help/document_detail/27497.html.'
Type: Json
Default: {}
OOSAssumeRole:
Label:
en: OOSAssumeRole
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: publishMessage
When:
'Fn::Equals':
- '{{ messageType }}'
- default
Action: 'ACS::ExecuteAPI'
Description:
en: Publishes a message to the specified topic.
Properties:
Service: MNS
API: PublishMessage
Method: POST
URI: '/topics/{{ topicName }}/messages'
Headers: {}
Parameters:
RegionId: '{{ regionId }}'
AccountId: '{{ ACS::AccountId }}'
Body: '<?xml version="1.0" encoding="utf-8"?><Message xmlns="http://mns.aliyuncs.com/doc/v1/"><MessageBody>{{ message }}</MessageBody></Message>'
Outputs:
message:
Type: Json
ValueSelector: .
- Name: publishSmsMessage
When:
'Fn::Equals':
- '{{ messageType }}'
- sms
Action: 'ACS::ExecuteAPI'
Description:
en: Publishes an SMS message to the specified topic and pushes it to an SMS endpoint.
Properties:
Service: MNS
API: PublishMessage
Method: POST
URI: '/topics/{{ topicName }}/messages'
Headers: {}
Parameters:
RegionId: '{{ regionId }}'
AccountId: '{{ ACS::AccountId }}'
Body: '<?xml version="1.0" encoding="utf-8"?><Message xmlns="http://mns.aliyuncs.com/doc/v1/"><MessageBody>{{ message }}</MessageBody><MessageAttributes><DirectSMS>{{ messageAttributes }}</DirectSMS></MessageAttributes></Message>'
Outputs:
message:
Type: Json
ValueSelector: .
- Name: publishMailMessage
When:
'Fn::Equals':
- '{{ messageType }}'
- mail
Action: 'ACS::ExecuteAPI'
Description:
en: Publishes a mail message to the specified topic and pushes it to a mail endpoint.
Properties:
Service: MNS
API: PublishMessage
Method: POST
URI: '/topics/{{ topicName }}/messages'
Headers: {}
Parameters:
RegionId: '{{ regionId }}'
AccountId: '{{ ACS::AccountId }}'
Body: '<?xml version="1.0" encoding="utf-8"?><Message xmlns="http://mns.aliyuncs.com/doc/v1/"><MessageBody>{{ message }}</MessageBody><MessageAttributes><DirectMail>{{ messageAttributes }}</DirectMail></MessageAttributes></Message>'
Outputs:
message:
Type: Json
ValueSelector: .
Outputs:
message:
Type: Json
Value:
'Fn::If':
- 'Fn::Equals':
- default
- '{{ messageType }}'
- '{{ publishMessage.message }}'
- 'Fn::If':
- 'Fn::Equals':
- sms
- '{{ messageType }}'
- '{{ publishSmsMessage.message }}'
- '{{ publishMailMessage.message }}'