AWS::AmazonMQ::Broker - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::AmazonMQ::Broker

代理 是运行在 Amazon MQ 上的消息代理环境。它是 Amazon MQ 的基本构建块。

AWS::AmazonMQ::Broker 资源可让您创建 Amazon MQ 代理,添加配置更改或修改指定代理的用户,返回有关指定代理的信息以及删除指定代理。有关更多信息,请参阅 Amazon MQ 开发人员指南中的 Amazon MQ 基本元素

  • ec2:CreateNetworkInterface

    需要此权限才能允许 Amazon MQ 代表您的账户创建弹性网络接口 (ENI)。

  • ec2:CreateNetworkInterfacePermission

    需要此权限才能将 ENI 连接到代理实例。

  • ec2:DeleteNetworkInterface

  • ec2:DeleteNetworkInterfacePermission

  • ec2:DetachNetworkInterface

  • ec2:DescribeInternetGateways

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeNetworkInterfacePermissions

  • ec2:DescribeRouteTables

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::AmazonMQ::Broker", "Properties" : { "AutoMinorVersionUpgrade" : Boolean, "BrokerName" : String, "Configuration" : ConfigurationId, "DeploymentMode" : String, "EncryptionOptions" : EncryptionOptions, "EngineType" : String, "EngineVersion" : String, "HostInstanceType" : String, "Logs" : LogList, "MaintenanceWindowStartTime" : MaintenanceWindow, "PubliclyAccessible" : Boolean, "SecurityGroups" : [ String, ... ], "StorageType" : String, "SubnetIds" : [ String, ... ], "Tags" : [ TagsEntry, ... ], "Users" : [ User, ... ] } }

属性

AutoMinorVersionUpgrade

在 Apache 发布版本时,允许自动升级到代理的新次要版本。在代理的维护时段或者手动代理重启之后进行自动升级。

必需:是

类型:布尔值

Update requires: No interruption

BrokerName

代理的名称。该值必须在 AWS 账户中唯一,长度为 1-50 个字符,只能包含字母、数字、连字符和下划线,并且不能包含空格、括号、通配符字符或特殊字符。

必需:是

类型:字符串

Update requires: Replacement

Configuration

有关配置的信息的列表。

必需:否

类型ConfigurationId

Update requires: No interruption

DeploymentMode

代理的部署模式。可用值:

  • SINGLE_INSTANCE

  • ACTIVE_STANDBY_MULTI_AZ

必需:是

类型:字符串

Update requires: Replacement

EncryptionOptions

代理的加密选项。

必需:否

类型EncryptionOptions

Update requires: Replacement

EngineType

代理引擎的类型。注意:Amazon MQ 目前仅支持 ACTIVEMQ。

必需:是

类型:字符串

Update requires: Replacement

EngineVersion

代理引擎的版本。有关支持的引擎版本列表,请参阅 Amazon MQ 开发人员指南 中的引擎

必需:是

类型:字符串

Update requires: No interruption

HostInstanceType

代理的实例类型。

必需:是

类型:字符串

Update requires: No interruption

Logs

为代理启用 Amazon CloudWatch 日志记录。

必需:否

类型LogList

Update requires: No interruption

MaintenanceWindowStartTime

相对于 UTC 的预定时间段,在此期间,Amazon MQ 开始向代理应用挂起的更新或补丁。

必需:否

类型MaintenanceWindow

Update requires: Replacement

PubliclyAccessible

启用从托管代理子网的 VPC 外部的应用程序进行连接。

必需:是

类型:布尔值

Update requires: Replacement

SecurityGroups

授权连接到代理的规则(最少 1 个,最多 125 个)的列表。

必需:否

类型:字符串列表

Update requires: No interruption

StorageType

代理的存储类型。

必需:否

类型:字符串

Update requires: Replacement

SubnetIds

定义代理可以为不同可用区使用哪些子网和 IP 范围的组(最多 2 个)的列表。SINGLE_INSTANCE 部署需要一个子网(例如,默认子网)。一个 ACTIVE_STANDBY_MULTI_AZ 部署需要两个子网。

必需:否

类型:字符串列表

Update requires: Replacement

Tags

键值对的数组。有关更多信息,请参阅 AWS Billing and Cost Management 用户指南中的使用成本分配标签

必需:否

类型TagsEntry 列表

Update requires: No interruption

Users

可以访问队列和主题的 ActiveMQ 用户(人员或应用程序)的列表。该值只能包含字母数字字符、短划线、句点、下划线和波浪线 (- . _ ~)。此值的长度必须为 2-100 个字符。

必需:是

类型User 的列表

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 Amazon MQ 代理 ID。例如:

b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

AmqpEndpoints

每个代理实例的 AMQP 终端节点,采用字符串列表的形式。

amqp+ssl://b-4aada85d-a80c-4be0-9d30-e344a01b921e-1.mq.eu-central-amazonaws.com:5671

Arn

Amazon MQ 代理的 Amazon 资源名称 (ARN)。

arn:aws:mq:us-east-2:123456789012:broker:MyBroker:b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9

ConfigurationId

Amazon MQ 为配置生成的唯一 ID。

c-1234a5b6-78cd-901e-2fgh-3i45j6k178l9

ConfigurationRevision

配置的修订数。

1

IpAddresses

每个代理实例的 IP 地址,采用字符串列表的形式。

['198.51.100.2', '203.0.113.9']

MqttEndpoints

每个代理实例的 MQTT 终端节点,采用字符串列表的形式。

mqtt+ssl://b-4aada85d-a80c-4be0-9d30-e344a01b921e-1.mq.eu-central-amazonaws.com:8883

OpenWireEndpoints

每个代理实例的 OpenWire 终端节点,采用字符串列表的形式。

ssl://b-4aada85d-a80c-4be0-9d30-e344a01b921e-1.mq.eu-central-amazonaws.com:61617

StompEndpoints

每个代理实例的 STOMP 终端节点,采用字符串列表的形式。

stomp+ssl://b-4aada85d-a80c-4be0-9d30-e344a01b921e-1.mq.eu-central-amazonaws.com:61614

WssEndpoints

每个代理实例的 WSS 终端节点,采用字符串列表的形式。

wss://b-4aada85d-a80c-4be0-9d30-e344a01b921e-1.mq.eu-central-amazonaws.com:61619

示例

基本 Amazon MQ 代理

以下示例使用属于某个组的一个用户创建基本 Amazon MQ 代理。

JSON

{ "Description": "Create a basic AmazonMQ broker", "Resources": { "BasicBroker": { "Type": "AWS::AmazonMQ::Broker", "Properties": { "AutoMinorVersionUpgrade": "false", "BrokerName": "MyBasicBroker", "DeploymentMode": "SINGLE_INSTANCE", "EngineType": "ActiveMQ", "EngineVersion": "5.15.0", "HostInstanceType": "mq.t2.micro", "PubliclyAccessible": "true", "Users": [ { "ConsoleAccess": "true", "Groups": [ "MyGroup" ], "Password" : { "Ref" : "AmazonMqPassword" }, "Username" : { "Ref" : "AmazonMqUsername" } } ] } } } }

YAML

--- Description: "Create a basic AmazonMQ broker" Resources: BasicBroker: Type: "AWS::AmazonMQ::Broker" Properties: AutoMinorVersionUpgrade: "false" BrokerName: MyBasicBroker DeploymentMode: SINGLE_INSTANCE EngineType: ActiveMQ EngineVersion: "5.15.0" HostInstanceType: mq.t2.micro PubliclyAccessible: "true" Users: - ConsoleAccess: "true" Groups: - MyGroup Password: Ref: "BrokerPassword" Username: Ref: "BrokerUsername"

复杂 Amazon MQ 代理

以下示例使用两个不属于某个组的用户以及一个属于某个组的用户创建 Amazon MQ 代理。

JSON

{ "Description": "Create a complex AmazonMQ broker", "Resources": { "ComplexBroker": { "Type": "AWS::AmazonMQ::Broker", "Properties": { "AutoMinorVersionUpgrade": "false", "BrokerName": "MyComplexBroker", "Configuration": { "Id": { "Ref": "Configuration1" }, "Revision" : { "Fn::GetAtt": ["Configuration1", "Revision"] } }, "DeploymentMode": "SINGLE_INSTANCE", "EngineType": "ActiveMQ", "EngineVersion": "5.15.0", "HostInstanceType": "mq.t2.micro", "Logs": { "General": true, "Audit": false }, "MaintenanceWindowStartTime": { "DayOfWeek": "Monday", "TimeOfDay": "22:45", "TimeZone": "America/Los_Angeles" }, "PubliclyAccessible": "true", "SecurityGroups": [ "sg-a1b234cd", "sg-e5f678gh" ], "SubnetIds": [ "subnet-12a3b45c", "subnet-67d8e90f" ], "Users": [{ "ConsoleAccess": "true", "Password" : { "Ref" : "AmazonMqPassword1" }, "Username" : { "Ref" : "AmazonMqUsername1" } }, { "Password" : { "Ref" : "AmazonMqPassword2" }, "Username" : { "Ref" : "AmazonMqUsername2" } }, { "Groups": [ "MyGroup1", "MyGroup2" ], "Password" : { "Ref" : "AmazonMqPassword3" }, "Username" : { "Ref" : "AmazonMqUsername3" } }] } } } }

YAML

--- Description: "Create a complex AmazonMQ broker" Resources: ComplexBroker: Type: "AWS::AmazonMQ::Broker" Properties: AutoMinorVersionUpgrade: "false" BrokerName: MyComplexBroker Configuration: Id: !GetAtt Configuration1.Id Revision: !GetAtt Configuration1.Revision DeploymentMode: SINGLE_INSTANCE EngineType: ActiveMQ EngineVersion: "5.15.0" HostInstanceType: mq.t2.micro Logs: General: "true" Audit: "false" MaintenanceWindowStartTime: DayOfWeek: Monday TimeOfDay: "22:45" TimeZone: America/Los_Angeles PubliclyAccessible: "true" SecurityGroups: - "sg-a1b234cd" - "sg-e5f678gh" SubnetIds: - "subnet-12a3b45c" - "subnet-67d8e90f" Users: - ConsoleAccess: "true" Password: Ref: "BrokerPassword1" Username: Ref: "BrokerUsername1" - Password: Ref: "BrokerPassword2" Username: Ref: "BrokerUsername2" - Groups: - MyGroup1 - MyGroup2 Password: Ref: "BrokerPassword3" Username: Ref: "BrokerUsername3"