1. 什么是 @netlify/zip-it-and-ship-it
@netlify/zip-it-and-ship-it 是一个用于打包和部署 Node.js Lambda 函数的工具。它可以帮助开发者快速打包 Lambda 函数并将其部署至 AWS Lambda。
该工具基于以下技术:
- webpack:用于打包 Lambda 函数及其依赖。
- serverless-webpack:解析和打包 Serverless 项目的插件。
- serverless-plugin-aws-alerts:必要的插件,为 AWS Lambda 函数添加警报。
- serverless-plugin-warmup:必要的插件,启用 Serverless 函数的随时可用功能。
2. 安装和配置
安装
使用以下命令安装 @netlify/zip-it-and-ship-it:
npm install -g @netlify/zip-it-and-ship-it
此外,你还需要安装最新版本的 AWS CLI。
配置
在使用 @netlify/zip-it-and-ship-it 之前,你需要首先完成以下配置步骤:
- 确认 AWS 访问密钥和安全访问密钥 ID。 这些密钥将允许您在服务器上进行操作。 如果您需要创建新密钥,可以在 AWS IAM 控制台上执行此操作。
- 配置 AWS CLI,以便每个命令都知道使用哪个 AWS 帐户和哪个区域。 您可以在 aws configure 命令中设置这些设置。
3. 使用方法
创建一个新的 Serverless 项目
为了使用 @netlify/zip-it-and-ship-it,您需要创建一个新的 Serverless 项目。 为此,请使用以下命令:
serverless create --template aws-nodejs --path my-service
这将创建一个名为"my-service"的文件夹,其中包含一个名为"handler.js"的文件。 handler.js 文件的内容如下:
-- -------------------- ---- ------- ---- -------- -------------------- - ----- ----- -- - ------ - ----------- ---- ----- --------------- - -------- --- ---------- ----- ---- -------- -------- --------------- ------ ------ -- ----- - -- -- --
您可以通过修改 handler.js 文件中的内容来创建自己的 Lambda 函数。
安装依赖
在您的 Serverless 项目文件夹中,使用以下命令安装依赖:
cd my-service npm init -y npm i @netlify/zip-it-and-ship-it webpack serverless-webpack serverless-plugin-aws-alerts serverless-plugin-warmup --save-dev
编辑 serverless.yml
接下来,您需要编辑 serverless.yml 文件,以配置和部署您的 Serverless 应用程序。 在这个例子中,我们使用以下配置:
-- -------------------- ---- ------- -------- ---------- --------- ----- --- -------- ---------- -------- - ------------------ - ---------------------------- - ------------------------ ---------- ------ -------- ------------- ------- -------- ---- ------- - ----- ----- - ------- --- - ----- ----- --------- ------- --- ------- -------- -------------- ------------------- --------------- ---- -------- ------------- ----
其中,functions 内部包含您的 Lambda 函数的信息。 对于每个函数,您需要指定其 handler 和事件。
自定义部分是用于构建您的 Serverless 应用的 Webpack 配置。
创建 webpack.config.js 文件
在您的 Serverless 项目文件夹中,创建名为 webpack.config.js 的文件,并添加以下内容:
-- -------------------- ---- ------- ----- ---- - ---------------- -------------- - - ------ --------------- ------- - --------- ------------- -------------- ------------ ----- ----------------------- ------------ -- ------- ------- ------- - ------ - - ----- -------- -------- ---------------------------------- ---- - ------- --------------- -- -- -- -- --
打包和部署应用程序
一旦您完成了 serverless.yml 和 webpack.config.js 文件的编辑,就可以打包和部署应用程序了。
使用以下命令打包应用程序:
ZIP='/tmp/my-service.zip' serverless webpack --out .webpack --package $ZIP
此命令将您的代码和所有依赖项打包到一个 zip 文件中。
最后,使用以下命令将您的 Serverless 应用程序部署到 AWS Lambda 中:
serverless deploy --package $ZIP
4. 示例代码
以下是一个使用 @netlify/zip-it-and-ship-it 打包和部署 Lambda 函数的示例代码:
-- -------------------- ---- ------- ---- -------- -- ---------- -------------------- - ----- ----- -- - ----- ---- - --------------------------- -- --------------------------------- ----- ------- - ------ ------ -- ---------- ------ - ----------- ---- ----- ---------------- ------- --- -- --
-- -------------------- ---- ------- - -------------- -------- ----------- --------- ----- --- -------- ---------- -------- - ------------------ - ---------------------------- - ------------------------ ---------- ------ -------- ------------- ------- - ----- ----- - ------- --- ------- -------- -------------- ------------------- --------------- ---- -------- ------------- ----
-- -------------------- ---- ------- -- ----------------- ----- ---- - ---------------- -------------- - - ------ --------------- ------- - --------- ------------- -------------- ------------ ----- ----------------------- ------------ -- ------- ------- ------- - ------ - - ----- -------- -------- ---------------------------------- ---- - ------- --------------- -------- - -------- ---------------------- -- -- -- -- -- --
使用命令行工具,您可以运行以下命令:
ZIP='/tmp/hello-world.zip' serverless webpack --out .webpack --package $ZIP serverless deploy --package $ZIP
之后您会成功部署 Lambda 函数,并可以使用以下 URL 来调用它:
https://{API Gateway ID}.execute-api.{AWS Region}.amazonaws.com/dev/
5. 总结
@netlify/zip-it-and-ship-it 是一个方便的工具,可帮助您快速打包和部署 Lambda 函数至 AWS Lambda。 在本教程中,我们介绍了如何安装和配置 @netlify/zip-it-and-ship-it,创建和编辑 serverless.yml 文件和 webpack.config.js 文件,以及如何打包和部署应用程序。
还有更多内容需要理解,比如使用 AWS CLI,详细了解 serverless.yml 和 webpack.config.js 文件的各个部分,以及如何在开发过程中修复错误。 但是,一旦您熟悉了这个工具和相关技术,您将可以更轻松地创建和分发 Serverless Lambda 函数,从而加速您的项目开发和部署流程。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc34db5cbfe1ea0612122