我正在学习无服务器框架,并且正在制作一个简单的登录系统。
这是我的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):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
当我执行sls deploy
时,我看到两个变量都记录为null。环境变量不会发送到lambda。
我该如何解决?
此外,当前我正在使用此方法,并将env.yml
添加到.gitignore
并保存值。还有其他有效的方法来隐藏敏感数据吗?
答案 0 :(得分:1)
我会做这样的事情来帮助您使用语法
<form onsubmit="console.log('submitted');return false">
<s-button>Select</s-button>
<button>Outside</button>
</form>
然后在您的env.yml中可以
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
答案 1 :(得分:0)
我最终解决了它。我已经在AWS美国西部地区设置了Dynamo数据库。在US-East-2中重新初始化,然后在.yml文件中的“ provider”下重置区域。