gpt4 book ai didi

node.js - 使用无服务器,如何在 AWS lambda 函数中添加 key 作为环境变量?

转载 作者:行者123 更新时间:2023-12-01 21:36:07 24 4
gpt4 key购买 nike

我需要使用带有 key 的无服务器将 AWS lambda 函数部署到文件中的环境变量中。我不想使用 AWS secret /系统管理器。如何在 serverless.yml 文件中隐藏环境变量?

当我手动上传和部署我的 nodejs AWS lambda 函数时,它能够从环境变量中读取数据并运行。我想使用无服务器而不是手动部署来处理这个问题。

我的无服务器 yml 文件如下:

service: sample-lambda

provider:
name: aws
runtime: nodejs10.x

stage: dev
region: us-east-2
apiName: getData
profile: MYAWS
timeout: 300
memorySize: 512

functions:
getData:
handler: handler.getData
name: getData
description: API to get data from server
environment:
key1: 12345
key2: abcdef
server: sample

events:
- http:
path: getData
method: post
cors: true

最佳答案

作为已接受答案的替代方案,如果您像我一样不喜欢修改额外的 secret 文件,您还可以使用 AWS Systems Manager Parameter Store 服务。您可以存储您的 Amazon key 、数据库连接、用户名和密码。

这种方法的优势在于,您只需保存一次 key ,就可以在多个项目中使用它们,只要它们是在同一地区创建的即可。

使用 AWS cli 行将您的环境变量保存在 AWS Parameter Store 中:

aws --profile default --region us-west-2 ssm put-parameter --name KEY1 --value 123456 --type String

aws --profile default --region us-west-2 ssm put-parameter --name KEY2 --value abcdef --type String

aws --profile default --region us-west-2 ssm put-parameter --name SERVER --value sample --type String

使用控制台将您的环境变量保存在 AWS Parameter Store 中:

  1. 登录 AWS 控制台。
  2. 搜索系统管理器。
  3. 在“应用程序管理”下,查找 Parameter Store。
  4. 点击创建参数按钮。

使用 serverless.yml 文件中的 key :

service: sample-lambda-service

custom:
config:
KEY1: ${ssm:KEY1}
KEY2: ${ssm:KEY2}
SERVER: ${ssm:SERVER}

provider:
name: aws
stage: prod
timeout: 20
memorySize: 512
region: us-west-2
runtime: nodejs12.x
endpointType: regional
environment: ${self:custom.config}
. . .

然后您可以在您的 handler.js 文件中将它们用作普通环境变量,如下所示:

'use strict'

const AWS = require("aws-sdk");
const s3 = new AWS.S3({
credentials: {
accessKeyId: process.env.KEY1,
secretAccessKey: process.env.KEY2,
},
});
let server = process.env.SERVER;
. . .

关于node.js - 使用无服务器,如何在 AWS lambda 函数中添加 key 作为环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61953713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com