使用触发器从 AWS Cognito 到 DynamoDB

主要观点:介绍了如何使用 AWS Cognito 及其触发器来扩展默认流程,通过 AWS Lambda 实现服务器less 函数,以在用户确认账户后在 DynamoDB 中生成条目等操作,并详细说明了创建函数、配置安全策略、编写函数、创建测试用例及端到端执行等过程。
关键信息:

  • AWS Cognito 的触发器可用于自定义认证前后等操作,文档可获取相关信息,示例使用 Post Confirmation 触发器。
  • 在 DynamoDB 中创建表并使用 Node.js 编写 Lambda 函数来处理事件,要注意字符串不能为空,需配置安全策略以允许访问 DynamoDB 表。
  • 测试函数需配置与函数从 Cognito 接收数据相等的测试用例。
  • 端到端执行时,AWS Cognito 在返回应用前会执行函数,可在 DynamoDB 表中查看插入的数据。若要影响两个表,需修改 Lambda 函数并考虑异步调用。
    重要细节:
  • 安全策略的 JSON 表示为{"Version": "2012-10-17","Statement": [{"Sid": "VisualEditor0","Effect": "Allow","Action": "dynamodb:PutItem","Resource": "arn:aws:dynamodb:::table/Usuarios"}]}。
  • 测试用例示例:{"version": 1,"triggerSource": "PostConfirmation_ConfirmSignUp","region": "us-east-1","userPoolId": "us-east-1_EXMumaRTw","userName": "lopezlucas","callerContext": {"awsSdk": "aws-sdk-java-console","clientId": "20tb0plr6q7i73q1katr00kuo7"},"request": {"userAttributes": {"sub": "0dsf0d44-45d2-8d10-811n-02452c6a643d","cognito:user_status": "CONFIRMED","email_verified": "true","cognito:email_alias": "[email protected]","given_name": "Lucas","family_name": "Lopez","email": "[email protected]"},"response": {}}。
  • 处理两个表插入时需使用 Promises 等待异步调用完成。
阅读 2
0 条评论