Amplify Function 的模拟环境变量

Posted

技术标签:

【中文标题】Amplify Function 的模拟环境变量【英文标题】:Mock environment variables for Amplify Function 【发布时间】:2020-04-19 16:47:18 【问题描述】:

我使用 Amplify 创建了一个 AWS Lambda 函数(名为 getDictionaryTranslation)。处理函数如下所示:

exports.handler = async function (event, context)  //eslint-disable-line
  const appId = process.env.APP_ID;
  const appKey = process.env.APP_KEY;
  context.done(null, `$appId|$appKey`);
;

然后我从这个函数创建了一个 GraphQL 查询

type Query 
  getDictionaryTranslation(word: String!, lang: String!): String! @function(name: "getDictionaryTranslation-$env")

我们可以按照这个文档https://docs.aws.amazon.com/lambda/latest/dg//env_variables.html在AWS控制台上设置APP_IDAPP_KEY

但是,在我的本地计算机上运行 amplify mock 时。如何设置这些变量值?

【问题讨论】:

您找到解决方案了吗? 【参考方案1】:

我也有同样的问题。我有两种解决方法 1. 对 lambda 中的 API_KEY 进行硬编码,因为键值是一个常量字符串 2. 在-cloudformation-template.json 中添加API_KEY 作为环境变量,并通过对应的function-parameter.json 文件传递​​key 值。这种方式也是一种硬编码。

【讨论】:

谢谢,这两种方法都可以在源代码控制(github、gitlab、.etc)上显示 API_KEY。目前,我对这些密钥进行了硬编码,并在每次将代码推送到源代码控制时清除它们。

以上是关于Amplify Function 的模拟环境变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将环境变量添加到 AWS 放大?

模拟适用于 Android 的 AWS Amplify Auth API

错误:重复的文件或模拟。请查看控制台了解更多信息(React Native Amplify)

从 React Amplify APP 访问 AWS Secret

未找到 AWS Amplify 环境“开发”

AWS Amplify:当资源已被部分删除时,如何删除环境?