模拟和测试由 Amplify @model 创建的 DynamoDB 表
Posted
技术标签:
【中文标题】模拟和测试由 Amplify @model 创建的 DynamoDB 表【英文标题】:Mock and Test DynamoDB Table created by Amplify @model 【发布时间】:2020-09-07 20:25:15 【问题描述】:我使用@model 注释创建了一个表和一个函数,该函数将该表中的一个条目作为 PostAuthentication 触发器添加到用户池。 当我将它推送到 AWS 时它工作正常。但在本地测试时面临一些问题。
MockData 在 amplify/mock-data/dynamodb/fake_us-fake-1.db 中
在函数/function_name/index.js 中
import AWS from 'aws-sdk';
import Logger from '@dev.tools.thinkclear/common-util';
const options =
region: 'us-fake-1',
endpoint: "<local_url>:62224/",
accessKeyId: "fake",
secretAccessKey: "fake"
;
AWS.config.update(
region: 'us-fake-1',
endpoint: "<local_url>:62224/",
accessKeyId: "fake",
secretAccessKey: "fake"
);
const dynamoDBClientVar = new AWS.DynamoDB.DocumentClient(options);
// Some Data params
const data = await dynamoDBClient.put(params).promise();
local_url 与运行 amplify mock api 的 url 相同。将 dynamodb 的端口更改为 62224。
放大模拟函数function_name
它抛出错误:NetworkingError: connect ECONNREFUSED 错误。
检查了这个答案以供参考: https://***.com/a/58925502/4578915
【问题讨论】:
你看过这个视频吗? youtu.be/OxrHplxZ8BA(使用 AWS Amplify 模拟和测试无服务器 API - AWS 在线技术讲座) 【参考方案1】:我已经配置了它,它对我来说工作正常,
const AWS = require('aws-sdk');
// Local
const dynamoDb = new AWS.DynamoDB.DocumentClient(
region: 'us-fake-1',
endpoint: "http://localhost:62224/",
accessKeyId: "fake",
secretAccessKey: "fake"
);
// Live
// const dynamoDb = new AWS.DynamoDB.DocumentClient();
请按以上设置,如有疑问请留言。
【讨论】:
以上是关于模拟和测试由 Amplify @model 创建的 DynamoDB 表的主要内容,如果未能解决你的问题,请参考以下文章
模拟适用于 Android 的 AWS Amplify Auth API
带有 AWS Amplify 的 GraphQL - 如何启用对查询的排序
基于 Amazon Amplify 构建自己的首个 iOS 应用程序