Node.js 具有Serverless和AWS Lambda的环境变量
我正在学习无服务器框架,我正在制作一个简单的登录系统 这是我的serverless.yml文件Node.js 具有Serverless和AWS Lambda的环境变量,node.js,serverless-framework,serverless,aws-serverless,Node.js,Serverless Framework,Serverless,Aws Serverless,我正在学习无服务器框架,我正在制作一个简单的登录系统 这是我的serverless.yml文件 service: lms-auth provider: name: aws runtime: nodejs8.10 stage: dev region: ap-south-1 environment: MONGODB_URI: $(file(../env.yml):MONOGDB_URI) JWT_SECRET: $(file(../env.yml)
service: lms-auth
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: ap-south-1
environment:
MONGODB_URI: $(file(../env.yml):MONOGDB_URI)
JWT_SECRET: $(file(../env.yml):JWT_SECRET)
functions:
register:
handler: handler.register
events:
- http:
path: auth/register/
method: post
cors: true
login:
handler: handler.login
events:
- http:
path: auth/login/
method: post
cors: true
plugins:
- serverless-offline
如您所见,我有两个环境变量,它们都引用同一根文件夹中的不同文件
这是env.yml文件
MONOGDB_URI: <MY_MONGO_DB_URI>
JWT_SECRET: LmS_JWt_secREt_auth_PasSWoRds
MONOGDB\u URI:
JWT_密码:LmS_JWT_密码\u身份验证\u密码
当我执行sls部署时,我看到两个变量都记录为null。环境变量不会发送到lambda
我怎样才能解决这个问题
另外,目前我正在使用这个方法,将
env.yml
添加到.gitignore
并保存值。还有其他有效的隐藏敏感数据的方法吗?我会做一些类似的事情来帮助您了解语法
service: lms-auth
custom: ${file(env.yml)}
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: ap-south-1
environment:
MONGODB_URI: ${self:custom.mongodb_uri}
JWT_SECRET: ${self:custom.jwt_secret}
functions:
register:
handler: handler.register
events:
- http:
path: auth/register/
method: post
cors: true
login:
handler: handler.login
events:
- http:
path: auth/login/
method: post
cors: true
plugins:
- serverless-offline
然后在你的环境中,你可以
mongodb_uri: MY_MONGO_DB_URI
jwt_secret: LmS_JWt_secREt_auth_PasSWoRds
我会做一些类似的事情来帮助你理解语法
service: lms-auth
custom: ${file(env.yml)}
provider:
name: aws
runtime: nodejs8.10
stage: dev
region: ap-south-1
environment:
MONGODB_URI: ${self:custom.mongodb_uri}
JWT_SECRET: ${self:custom.jwt_secret}
functions:
register:
handler: handler.register
events:
- http:
path: auth/register/
method: post
cors: true
login:
handler: handler.login
events:
- http:
path: auth/login/
method: post
cors: true
plugins:
- serverless-offline
然后在你的环境中,你可以
mongodb_uri: MY_MONGO_DB_URI
jwt_secret: LmS_JWt_secREt_auth_PasSWoRds
我最终解决了它。我已经在AWS美国西部地区建立了我的Dynamo DB。在US-East-2中重新初始化,并重置.yml文件中“provider”下的区域 我最终解决了它。我已经在AWS美国西部地区建立了我的Dynamo DB。在US-East-2中重新初始化,并重置.yml文件中“provider”下的区域 您写入“同一根文件夹中的不同文件”,但从中读取环境的文件是相同的。你也能分享你的目录结构吗?env.yml是否在serverless.yml的父文件夹中?您写的是“同一根文件夹中的不同文件”。但从中读取env的文件是相同的。你也能分享你的目录结构吗?env.yml是否位于serverless.yml的父文件夹中?