【发布时间】:2019-05-09 01:50:13
【问题描述】:
我有一个用 Node.js 编写的 lambda。我需要从boto3 library 调用get_api_key 函数。我的 Node.js Lambda 函数的精简版本在这里:
exports.handler = function(input, context) {
const spawn = require("child_process").spawn;
const pythonProcess = spawn('python',["pythonScript.py", "API_KEY_123"]);
pythonProcess.stdout.on('data', (data) => {
console.log("DATA FROM PYTHON: ", data);
});
};
我使用了来自this question 的功能。我的 Python 脚本如下所示:
import sys
import boto3
#this is the client
client = boto3.client('apigateway')
apiKey = client.get_api_key(apiKey=sys.argv[1], includeValue=True)
print(apiKey)
我希望看到 console.log 结果出现在此 Lambda 函数的 CloudWatch 日志中,但似乎我们没有从 Python 脚本中获取任何数据,因为没有完成日志记录。
我在做我想做的事吗? Lambda函数上有一个设置说它是用Node.js编写的,所以我不知道我在与Lambda函数相同的目录中随机制作了一个Python脚本这一事实是否会导致问题?
如果它可能更容易,我很高兴有一个替代方案。
【问题讨论】:
-
您能解释一下为什么需要从 boto3 而不是 AWS JavaScript SDK 调用 API Gateway get_api_key() 吗?
-
亚马逊有人将我指向 boto3,所以我只是假设我必须使用它!
标签: python node.js amazon-web-services