the*_*ver 10 amazon-web-services alexa aws-lambda alexa-skills-kit axios
我是否必须在本地安装 axios 模块,然后将其部署到 lambda,或者有没有办法通过内联代码编辑器以及在浏览器中执行此操作?
SAn*_*riy 36
您可以使用 axios 包发布一个简单的 Node.js AWS Lambda 层,然后将创建的层附加到您的 lambda。
为图层创建 .zip 文件的命令列表:
mkdir nodejs
cd nodejs
npm i axios
rm -rf package-lock.json
cd ..
zip -r axios.zip nodejs
Run Code Online (Sandbox Code Playgroud)
此命令列表取自本文 https://ljmocic.medium.com/publish-simple-node-js-aws-lambda-layer-a87c00afdd83
您还可以创建一个图层。通过这种方法,您可以在许多功能中使用 Axios 模块。不过,您需要小心路径。当您压缩模块时,文件夹路径很重要。对于node14.*,应该是这样的。您的主文件夹名称应该是“nodejs”。
nodejs/node14/node_modules/axios
nodejs/node14/node_modules/follow-redirects
Run Code Online (Sandbox Code Playgroud)
附加图层后,您可以直接到达它。
例如:
const axios = require("axios");
exports.handler = async(event) => {
// TODO implement
var response = await axios.post(process.env.URL, { "data": event.data }, {
headers: {
"authorization": process.env.PASS,
"content-type": "application/json",
}
}, { timeout: 10000 }).then(response => response)
.catch((error) => {
//console.log(error.response.status);
//console.log(error.response.data);
//console.log(error.response.headers);
return error;
});;
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html
这个方法对我帮助很大,希望对其他人也有帮助!:)
在您的 lambda 脚本所在的文件夹 (index.js) 中运行以下命令 -
npm install axios
Run Code Online (Sandbox Code Playgroud)
您应该会看到node_modules
在与 index.js 相同的目录中创建的目录。现在将这两个压缩在一起(index.js 和 npm_modules)并将它上传到你的 lambda 作为 zip。您可以使用您拥有的其他 npm 模块依赖项重复此操作。如果您不想为每个模块再次重复这些手动步骤,请创建package.json
文件并在那里添加所有模块依赖项,然后只运行npm install
一次。
归档时间: |
|
查看次数: |
19090 次 |
最近记录: |