介绍
在使用 Serverless Framework 部署 AWS Lambda 时,经常需要使用 API Gateway 来暴露 Lambda 的 HTTP 接口。而在 API Gateway 中,需要为每个 REST API 配置 API Key,以保护 API 的安全。在 Serverless Framework 中,我们可以通过 sls deploy 命令来部署应用,但默认情况下并不会输出 API Key 的值,这使得我们无法在应用代码中动态地使用 API Key。
为了解决这个问题,可以使用 sls-aws-apikey-output-plugin 这个 npm 包,在 Serverless Framework 部署应用时自动输出 API Key 的值,并将其保存在一个指定的 SSM Parameter Store 中。
安装
可以通过以下命令来安装 sls-aws-apikey-output-plugin:
npm install --save-dev sls-aws-apikey-output-plugin
安装完成后,在 Serverless Framework 的项目中进行配置。
配置
在 Serverless Framework 的项目中,打开 serverless.yml 文件,添加以下内容:
plugins: - sls-aws-apikey-output-plugin custom: apikey: name: api-key
解释一下上述配置的含义:
- plugins:指定要使用的插件,这里需要添加 sls-aws-apikey-output-plugin;
- custom.apikey.name:指定保存 API Key 的 SSM Parameter 的名字,请根据应用的实际情况修改。
使用
完成配置后,在执行 sls deploy 命令时,会自动创建并输出 API Key 的值。
在代码中使用 API Key 的值时,可以在代码中添加如下代码:
const SSM = new AWS.SSM(); const params = { Name: '/my/app/api-key', WithDecryption: true, }; const data = await SSM.getParameter(params).promise(); const apiKey = data.Parameter.Value;
这会从指定的 SSM Parameter Store 中读取保存的 API Key 的值,并将其作为变量使用。根据实际情况修改 SSM Parameter 的名字即可。
示例代码
以下是一个完整的例子,展示了如何在 Lambda 中动态地使用 API Key。
-- -------------------- ---- ------- ----- --- - ------------------- ----- --- - --- ---------- ----- ------ - - ----- ------------------ --------------- ----- -- --------------- - ----- ------- -------- -- - ----- ---- - ----- ----------------------------------- ----- ------ - --------------------- -- -- ------ ---- ------ - ----------- ---- ----- ------- -------- -- --
学习与指导
使用 sls-aws-apikey-output-plugin 可以简化 Serverless Framework 应用中 API Key 的管理,提高应用的安全性。理解如何使用该 npm 包,可以帮助前端开发人员更好地掌握 Serverless Framework 的部署和管理技巧,也可以促进团队协作和项目开发的高效性。
建议仔细阅读文档并实践使用,掌握 Serverless Framework 应用的部署和管理技巧。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671ac30d0927023822748