代码之家  ›  专栏  ›  技术社区  ›  Sriram R

使用无服务器和aws lambda的环境变量

  •  0
  • Sriram R  · 技术社区  · 5 年前

    我正在学习无服务器框架,我正在制作一个简单的登录系统。

    这是我的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 ,我看到这两个变量都记录为空。环境变量不会发送到lambda。

    我该怎么解决?

    另外,目前我正在使用这个方法并添加 env.yml .gitignore 保存这些值。有没有其他隐藏敏感数据的有效方法?

    1 回复  |  直到 5 年前
        1
  •  1
  •   user8128927user8128927    5 年前

    我想做些这样的事情来帮助你理解语法

    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
    

    那么在你的env.yml中你可以

    mongodb_uri: MY_MONGO_DB_URI
    jwt_secret: LmS_JWt_secREt_auth_PasSWoRds
    
    推荐文章