首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Middy没有从NodeJS AWS的秘密经理那里得到一个秘密

Middy没有从NodeJS AWS的秘密经理那里得到一个秘密
EN

Stack Overflow用户
提问于 2020-08-12 18:07:19
回答 1查看 712关注 0票数 1

我使用侏儒从NodeJS AWS中获取秘密管理器。我确实为Lambda创建了一个角色来获得对参数路径的访问,但是有一些未知的原因,这个值没有设置上下文对象或环境变量。

process.env.SSM_PATH的值是LAMBDA。

这是我正在使用的代码。

代码语言:javascript
复制
'use strict';

const middy = require('middy');
const { ssm } = require('middy/middlewares');


const handler = async (event, context) => {
    console.log(context);
    console.log(process.env)
    console.log(event);
};

exports.handler = middy(handler).use(ssm({
    setToContext: true,
    paths: {
        'PARAMETER': `/${process.env.SSM_PATH}/PARAMETER`
    }
}));

这是IAM中Lambda政策的一部分。

代码语言:javascript
复制
{
    "permissionsBoundary": {},
    "roleName": "monitor_lambda_role",
    "policies": [
        {
            "document": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Sid": "",
                        "Effect": "Allow",
                        "Action": "sqs:sendMessage",
                        "Resource": "arn:aws:sqs:us-east-1::signed-resources-sqs"
                    },
                    {
                        "Sid": "",
                        "Effect": "Allow",
                        "Action": "ssm:GetParametersByPath",
                        "Resource": "arn:aws:ssm:us-east-1::parameter/LAMBDA/*"
                    },
                    {
                        "Sid": "",
                        "Effect": "Allow",
                        "Action": "kms:Decrypt",
                        "Resource": "arn:aws:ssm:us-east-1::alias/aws/ssm"
                    }
                ]
            },
            "name": "InlinePolicy",

            "arn": "arn:aws:iam:::policy/InlinePolicy"
        }
}

可能是因为lambda以异步方式运行,它不需要等待ssm中间件来获取秘密?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-12 19:30:41

我解决我的问题。

这里有您想要阅读的秘密:指定以下两个选项

路径(对象)(可选*):从SSM路径获取参数的映射,其中键是目标名称的前缀,值是SSM路径。示例:{paths:{DB_:‘/dev/service/db’} name (object) (可选*):从SSM获取的参数映射,其中键是目标,值是SSM中的param名称。示例:{DB_URL:'/dev/service/db_url'}}

在我的特殊情况下,我应该使用names选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63382397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档