DocumentDB - AWS Serverless Application Model

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

DocumentDB

描述 DocumentDB 事件源类型的对象。有关更多信息,请参阅《AWS Lambda 开发者指南》中的AWS Lambda 与亚马逊 DocumentDB 配合使用

语法

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

YAML

BatchSize: Integer Cluster: String CollectionName: String DatabaseName: String Enabled: Boolean FilterCriteria: FilterCriteria FullDocument: String KmsKeyArn: String MaximumBatchingWindowInSeconds: Integer SecretsManagerKmsKeyId: String SourceAccessConfigurations: List StartingPosition: String StartingPositionTimestamp: Double

属性

BatchSize

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

类型:整数

必需:否

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

Cluster

亚马逊文档数据库集群的亚马逊资源名称 (ARN)。

类型:字符串

必需:是

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

CollectionName

将使用的数据库中集合的名称。如果您未指定集合,Lambda 会使用所有集合。

类型:字符串

必需:否

AWS CloudFormation 兼容性:此属性直接传递给AWS::Lambda::EventSourceMappingDocumentDBEventSourceConfig数据类型的 CollectionName属性。

DatabaseName

将使用的 Amazon DocumentDB 集群中数据库的名称。

类型:字符串

必需:是

AWS CloudFormation 兼容性:此属性直接传递给AWS::Lambda::EventSourceMappingDocumentDBEventSourceConfig数据类型的 DatabaseName属性。

Enabled

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

类型:布尔值

必需:否

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

FilterCriteria

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

类型:FilterCriteria

必需:否

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

FullDocument

确定 Amazon DocumentDB 在文档更新操作期间将向您的事件流发送的内容。如果设置为 UpdateLookup,Amazon DocumentDB 将发送一个描述所发生更改的增量以及完整文档的副本。否则,Amazon DocumentDB 将仅发送包含更改的部分文档。

类型:字符串

必需:否

AWS CloudFormation 兼容性:此属性直接传递给AWS::Lambda::EventSourceMappingDocumentDBEventSourceConfig数据类型的 FullDocument属性。

KmsKeyArn

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

类型:字符串

必需:否

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

MaximumBatchingWindowInSeconds

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

类型:整数

必需:否

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

SecretsManagerKmsKeyId

来自 Secrets Manager 的客户托管密钥的 AWS Key Management Service (AWS KMS) AWS 密钥 ID。当您以不包含 kms:Decrypt 权限的 Lambda 执行角色使用来自 Secrets Manager 的客户托管密钥时,此为必需。

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

类型:字符串

必需:条件

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

SourceAccessConfigurations

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

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

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

类型:列表

必需:是

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

StartingPosition

在流中开始读取数据的位置。

  • AT_TIMESTAMP – 指定开始读取记录的时间。

  • LATEST - 仅读取新记录。

  • TRIM_HORIZON - 处理所有可用的记录。

类型:字符串

必需:是

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

StartingPositionTimestamp

开始读取的时间(以 Unix 时间秒为单位) 在 StartingPosition 被指定为 AT_TIMESTAMP 的情况下定义 StartingPositionTimestamp

类型:双精度

必需:否

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

示例

Amazon DocumentDB 事件源

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Serverless::Function Properties: ... Events: MyDDBEvent: Type: DocumentDB Properties: Cluster: "arn:aws:rds:us-west-2:123456789012:cluster:docdb-2023-01-01" BatchSize: 10 MaximumBatchingWindowInSeconds: 5 DatabaseName: "db1" CollectionName: "collection1" FullDocument: "UpdateLookup" SourceAccessConfigurations: - Type: BASIC_AUTH URI: "arn:aws:secretsmanager:us-west-2:123456789012:secret:doc-db"