用于lambda函数中api键的aws appsync环境变量

时间:2020-05-16 22:48:19

标签: amazon-web-services aws-lambda graphql aws-amplify

我有使用amplify建立后端的React Web应用程序。该后端包括一个带有dynamodb表作为数据源的graphql api(由我的graphql模式中声明的模型创建)和一个lambda函数,该函数从第3方api获取信息并将结果保存到dynamodb表中,以使其可用于该应用程序。

遵循本教程:

https://docs.amplify.aws/cli/function#graphql-from-lambda

我创建了运行“ amplify add function”命令的lambda函数。当我被问到lambda是否应有权访问其他放大资源时,我回答“是”,我给了lambda写入和更新对我的graphql api的访问权限,以便我可以从lambda执行变异的过程。

完成创建过程后,amplify通知我在lambda中有两个可用的新环境变量:

API_<MY_APP>_GRAPHQLAPIENDPOINTOUTPUT
API_<MY_APP>_GRAPHQLAPIIDOUTPUT

但是,问题是,我还需要api键才能执行突变(我的graphql api具有“ api键”作为主要id方法)。

本教程使用了process.env.API_KEY。但是,他们没有解释此变量的来源,因为在我看来,它的值是不确定的。

您知道如何使lambda可以使用api密钥吗?

P.S .:由于我有多个后端环境,因此不能选择硬编码。

1 个答案:

答案 0 :(得分:0)

环境变量称为API_<APP_NAME>_GRAPHQLAPIKEYOUTPUT。仅在为GraphQL API启用API KEY身份验证时显示。

以下是在添加Lambda函数的访问权限以访问GraphQL API时打印到控制台中的示例:

You can access the following resource attributes as environment variables from your Lambda function
        API_AMPLIFYTEST_GRAPHQLAPIENDPOINTOUTPUT
        API_AMPLIFYTEST_GRAPHQLAPIIDOUTPUT
        API_AMPLIFYTEST_GRAPHQLAPIKEYOUTPUT

此外,Amplify CLI还会在Lambda函数索引文件的顶部生成带有有用的环境变量的注释。

我使用Amplify CLI 4.36.0版对此进行了测试。