MQ - AWS Serverless Application Model

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

MQ

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

AWS Serverless Application Model (AWS SAM) 在设置此事件类型时生成AWS::Lambda::EventSourceMapping资源。

注意

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

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

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

语法

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

属性

BatchSize

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

类型:整数

必需:否

默认值:100

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

最小值1

最大值10000

Broker

亚马逊 MQ 经纪ARN商的亚马逊资源名称 ()。

类型:字符串

必需:是

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

DynamicPolicyName

默认情况下, AWS Identity and Access Management (IAM) 策略名称是SamAutoGeneratedAMQPolicy为了向后兼容。指定true使用自动生成的IAM策略名称。此名称包含 Amazon MQ 事件源逻辑 ID。

注意

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

类型:布尔值

必需:否

默认值false

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

Enabled

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

类型:布尔值

必需:否

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

FilterCriteria

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

类型:FilterCriteria

必需:否

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

KmsKeyArn

用于加密与此事件相关的信息的密钥的 Amazon 资源名称 (ARN)。

类型:字符串

必需:否

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

MaximumBatchingWindowInSeconds

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

类型:整数

必需:否

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

Queues

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

类型:列表

必需:是

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

SecretsManagerKmsKeyId

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

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

类型:字符串

必需:条件

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS 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 的对象。

类型:列表

必需:是

AWS 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