如何使用 amplify 框架/cli 配置 dynamodb-to-lambda 触发器

Jag*_*esh 4 amazon-dynamodb-streams aws-amplify aws-amplify-cli

这里的amplify 坞站表示,我们可以通过运行**amplify add function**并选择“ Lambda Trigger ”选项将 lambda 函数配置为 dynamodb 触发器,但是当我运行"amplify add api"(选择 Python 作为运行时语言)时,我没有获得 lambda 触发器选项,我'我只获得“无服务器函数”和“lambda 层”选项。

请帮助我解决此问题以访问该功能。

文档快照 - 显示 4 个选项 在此输入图像描述

我的 CLI 快照 - 仅显示 2 个选项 在此输入图像描述

我知道它适用于 Nodejs 运行时 lambda,但我也希望 Python Lambda 具有此选项。

Sam*_*ett 5

只需按照以下步骤使用 amplify CLI 版本即可4.50.2

\n

要创建由 DynamoDB 表更改触发的 lambda 函数,您可以使用以下命令行操作,输入以下命令后将在 CLI 内部逐步执行这些操作:

\n

amplify add function

\n

选择您要添加的功能:

\n
    \n
  • \xe2\x9d\xaf Lambda 函数(无服务器函数)
  • \n
\n

提供 AWS Lambda 函数名称:

\n
    \n
  • <您的函数名称>
  • \n
\n

选择您要使用的运行时:

\n
    \n
  • > NodeJS # 重要提示:目前必须是 NodeJS,您可以稍后通过手动编辑函数目录中的 ...-cloudformation-template.json 文件来更改此设置
  • \n
\n

选择您要使用的功能模板

\n
    \n
  • > 拉姆达触发器
  • \n
\n

您希望将什么事件源与 lambda 触发器关联

\n
    \n
  • > 亚马逊 DynamoDB 流
  • \n
\n

选择 DynamoDB 事件源选项

\n
    \n
  • >在当前 Amplify 项目中使用 API 类别 graphql @model 后端 DynamoDB 表
  • \n
\n

选择 graphql @model(s)

\n
    \n
  • <编辑后选择您想要触发该功能的任何模型(使用空格键)>
  • \n
\n

您想触发高级设置吗

\n
    \n
  • Y # 重要提示:如果您使用基于 graphql 架构定义的表的 dynamodb 事件源,则需要为该函数提供对api包含 graphql 架构(定义驱动事件的表)的资源的读取访问权限
  • \n
\n

您想通过 Lambda 函数访问此项目中的其他资源吗?

\n
    \n
  • y # 参见上文,选择包含数据模型的 api 并确保该函数至少具有读取访问权限。
  • \n
\n

之后,其他选项(层、呼叫调度)由您决定。

\n

通过上述 CLI 选项创建函数后,您可以更改"Runtime"函数目录中 -cloudformation-template.json 文件内的字段,例如,如果您想要 python lambda 函数,请将运行时更改为“python3.8”。您还需要index.py在函数目录中创建一个名为的文件,其中包含一个handler(event, context)函数。请参阅下面的示例:

\n
import json\n\ndef handler(event, context):\n    print("Triggered via DynamoDB")\n    print(event)\n    return json.dumps({\'status_code\': 200, "message": "Received from DynamoDB"})\n
Run Code Online (Sandbox Code Playgroud)\n

进行这些编辑后,您可以运行amplify push,如果您在管理控制台中在线打开 fxn,它应该显示附加的 dynamoDB 流。

\n