亚马逊AWS官方博客
AWS AppSync Events 新增数据来源集成功能,提升实时应用程序表现
现在,我们宣布 AWS AppSync Events 现在支持通道命名空间的数据来源集成,这使开发人员能够创建更复杂的实时应用程序。借助这一新功能,您可以将 AWS Lambda 函数、Amazon DynamoDB 表、Amazon Aurora 数据库及其他数据来源与通道命名空间处理程序关联起来。使用 AWS AppSync Events,您可以构建各种具备数据验证、事件转换和事件持久存储等功能的实时应用程序。
有了这些新功能,开发人员可以通过使用 Lambda 函数转换和筛选事件来创建复杂的事件处理工作流程,或者使用新的 AppSync_JS 批处理实用程序将一批事件保存到 DynamoDB 中。这种集成支持复杂的交互式流程,同时可以减少开发时间和运营开销。例如,现在您无需编写复杂的集成代码,就可以自动将事件持久存储到数据库中。
抢先了解数据来源集成功能
让我们来看看如何使用 AWS 管理控制台设置数据来源集成功能。首先,在控制台中导航到 AWS AppSync,然后选择我的事件 API(或者创建一个新的 API)。
将事件数据直接持久存储到 DynamoDB
有多种数据来源集成可供选择。在第一个示例中,我将创建一个 DynamoDB 表作为数据来源。首先,我需要一个 DynamoDB 表,所以我转到控制台中的 DynamoDB 并创建一个名为 event-messages
的新表。在这个示例中,我只需要创建一个分区键为 id
的表。在这里,我单击创建表并接受默认的表配置,然后再回到控制台中的 AppSync。
回到 AppSync 控制台,返回到之前设置的事件 API,从选项卡式导航面板中选择数据来源,然后单击创建数据来源按钮。
为我的数据来源命名后,从数据来源下拉菜单中选择 Amazon DynamoDB。这将显示 DynamoDB 的配置选项。
配置好数据来源后,就可以实施处理程序逻辑。以下是将事件持久存储到 DynamoDB 的发布处理程序示例:
import * as ddb from '@aws-appsync/utils/dynamodb'
import { util } from '@aws-appsync/utils'
const TABLE = 'events-messages'
export const onPublish = {
request(ctx) {
const channel = ctx.info.channel.path
const timestamp = util.time.nowISO8601()
return ddb.batchPut({
tables: {
[TABLE]: ctx.events.map(({id, payload}) => ({
channel, id, timestamp, ...payload,
})),
},
})
},
response(ctx) {
return ctx.result.data[TABLE].map(({ id, ...payload }) => ({ id, payload }))
},
}
为了添加处理程序代码,进入命名空间的选项卡式导航,在那里,我发现已经为我创建了一个新的默认命名空间。如果单击打开这个默认的命名空间,就会在配置详情下方找到允许添加事件处理程序的按钮。
单击创建事件处理程序会打开一个新的对话框,在其中选择带数据来源的代码作为配置,然后选择 DynamoDB 数据来源作为我的发布配置。
保存处理程序后,可以使用控制台中的内置测试工具测试集成情况。这里的默认值应该可以正常工作,如下所示,我已经成功地将两条事件写入了我的 DynamoDB 表中。
这就是我在 DynamoDB 中捕获的所有消息!
错误处理能力和安全性保障
新的数据来源集成具备全面的错误处理能力。对于同步操作,您可以返回特定的错误消息,这些消息将被记录到 Amazon CloudWatch 中,同时通过不向客户端暴露敏感的后端信息来维护安全性。对于授权方案,您可以使用 Lambda 函数实施自定义验证逻辑,以控制对特定通道或消息类型的访问。
现已推出
AWS AppSync Events 数据来源集成功能现已在所有支持 AWS AppSync 的 AWS 区域推出。可以通过 AWS AppSync 控制台、AWS 命令行界面(CLI)或 AWS SDK 开始使用这些新功能。使用数据来源集成无需额外费用 — 只需为使用的底层资源(例如 Lambda 调用或 DynamoDB 操作)以及现有的 AppSync Events 使用量付费。
要了解有关 AWS AppSync Events 和数据来源集成的更多信息,请访问 AWS AppSync Events 文档,并立即开始构建更强大的实时应用程序。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。