MQ - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

MQ

描述 MQ 事件源类型的对象。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中结合 Amazon MQ 使用 Lambda

如果设置了此事件类型,Amazon Serverless Application Model (Amazon SAM) 会生成 AWS::Lambda::EventSourceMapping 资源。

注意

要在虚拟私有云(VPC)中建立 Amazon MQ 队列并连接到公共网络中的 Lambda 函数,函数的执行角色必须包含以下权限:

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的执行角色权限

语法

要在 Amazon SAM 模板中声明此实体,请使用以下语法。

属性

BatchSize

要在单个批次中检索的最大项目数。

类型:整数

必需:否

默认值:100

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 BatchSize 属性。

最小值1

最大值10000

Broker

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

类型:字符串

必需:是

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 EventSourceArn 属性。

DynamicPolicyName

默认情况下,Amazon Identity and Access Management IAM policy 名称是 SamAutoGeneratedAMQPolicy,以实现向后兼容。指定 true 对 IAM policy 使用自动生成的名称。此名称包含 Amazon MQ 事件源逻辑 ID。

注意

使用多个 Amazon MQ 事件源时,请指定 true,以避免重复的 IAM policy 名称。

类型:布尔值

必需:否

默认值false

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

Enabled

如果为 true,则事件源映射处于活动状态。要暂停轮询和调用,设置为 false

类型:布尔值

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 Enabled 属性。

FilterCriteria

定义用于确定 Lambda 是否应处理事件的条件的对象。有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的 Amazon Lambda 事件筛选

类型:FilterCriteria

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 FilterCriteria 属性。

MaximumBatchingWindowInSeconds

在调用函数之前收集记录的最长时间(以秒为单位)。

类型:整数

必需:否

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 MaximumBatchingWindowInSeconds 属性。

Queues

要使用的 Amazon MQ 代理目的地队列的名称。

类型:列表

必需:是

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 Queues 属性。

SecretsManagerKmsKeyId

来自 Amazon Secrets Manager 的客户托管密钥的 Amazon Key Management Service (Amazon KMS) 密钥 ID。将来自 Secrets Manager 的客户托管密钥与不包含 kms:Decrypt 权限的 Lambda 执行角色一起使用时,此属性是必需的。

此属性的值为 UUID。例如:1abc23d4-567f-8ab9-cde0-1fab234c5d67

类型:字符串

必需:条件

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

SourceAccessConfigurations

身份验证协议或虚拟主机的数组。使用SourceAccessConfigurations数据类型进行指定。

对于 MQ 事件源类型,唯一有效的配置类型是 BASIC_AUTHVIRTUAL_HOST

  • BASIC_AUTH – 存储您的代理凭证的 Secrets Manager 密钥。要使用此类型,凭证必须采用以下格式:{"username": "your-username", "password": "your-password"}。只允许使用一个类型为 BASIC_AUTH 的对象。

  • VIRTUAL_HOST - 您的 RabbitMQ 代理中虚拟主机的名称。Lambda 将使用此 RabbitMQ 的主机作为事件源。只允许使用一个类型为 VIRTUAL_HOST 的对象。

类型:列表

必需:是

Amazon CloudFormation 兼容性:此属性直接传递给 AWS::Lambda::EventSourceMapping 资源的 SourceAccessConfigurations 属性。

示例

Amazon MQ 事件源

以下是 Amazon MQ 代理的 MQ 事件源类型示例。

YAML

Events: MQEvent: Type: MQ Properties: Broker: arn:aws:mq:us-east-2:123456789012:broker:MyBroker:b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9 Queues: List of queues SourceAccessConfigurations: - Type: BASIC_AUTH URI: arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName BatchSize: 200 Enabled: true