令人沮丧的是,我一直在尝试使用 AWS amplify 模拟函数。
出于某种原因,无论我将 --timeout 设置为什么,它们总是超时。
我最近遇到了一个解决方案,我想将其发布为答案。
令人沮丧的是,我一直在尝试使用 AWS amplify 模拟函数。
出于某种原因,无论我将 --timeout 设置为什么,它们总是超时。
我最近遇到了一个解决方案,我想将其发布为答案。
Amplify 网站上有很多关于在本地运行 lambda 函数的信息。您可以使用 直接调用该函数amplify mock myfunction
,也可以使用amplify mock
GraphQL API。
https://docs.amplify.aws/cli/usage/mock
注意:目前无法在本地模拟 REST API。
我曾经创建一个函数,然后我修改了我的 GraphQL API 的架构以使用该指令
amplify function add
在本地代理到 lambda 。https://docs.amplify.aws/cli/graphql-transformer/function@function
您可能需要使用环境变量配置您的函数。Amplify 团队最近通过 .env 文件添加了支持, https: //docs.amplify.aws/cli/usage/mock#function-mock-environment-variables
基本上我将处理程序从
exports.handler = async (event) => {
至
const mainFunct = async () => {
并mainFunct();
在 index.js 文件的末尾调用函数
您可以aws-sdk
使用终端安装并一直进入函数的....\src
目录。然后运行\src> npm install missing-modules
缺少的任何模块。
- 请记住更新您.gitignore
的不提交函数的 src 文件夹中的节点模块文件夹。(这么多文件...)
然后只需像运行 node.js 文件一样运行该函数。
C:\path\to\function\src> node index.js
您还可以添加一个输出文件,我发现它使我的 console.log() 语句更易于阅读和调试
C:\path\to\function\src> node index.js > functionOutputFile.json
到目前为止对我有用,在网上找不到任何关于这个的东西......