首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloud9 9/AWS SAM环境变量未被Lambda/NodeJS调试器使用

Cloud9 9/AWS SAM环境变量未被Lambda/NodeJS调试器使用
EN

Stack Overflow用户
提问于 2020-04-21 22:54:06
回答 1查看 375关注 0票数 0

我有一个带有SNS主题和Lambda/API网关的SAM部署。Lambda是一个NodeJS Lambda,它正在寻找环境变量sns_create_collection_topic。这在我的SAM模板中定义如下:

代码语言:javascript
复制
Resources:
  CollectionApiPostFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: 'http-post/src/'
      Environment:
        Variables:
          deployed_environment: !Ref TargetEnvironment
          sns_create_collection_topic: !Ref CollectionCreatedTopic
  CollectionCreatedTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: test-topic
      TopicName: test-topic

当我在Cloud9中运行Lambda并访问该环境变量时,值是CollectionCreatedTopic,它是模板中的显式资源名称,而不是ARN。NodeJS中读取env的代码是:

代码语言:javascript
复制
    constructor() {
        this.aws_region = process.env.AWS_REGION;

        this.messageBus = {
            topic: process.env.sns_create_collection_topic,
        };

        console.info(this.messageBus);
    }

当我运行sam deploy并在AWS中执行Lambda时,我会看到与模板get一起部署的SNS主题的ARN被记录下来,所以这看起来像预期的那样工作。但是,当我在Cloud9中使用Lambda调试器调试它时,我没有看到环境变量被设置为已部署的SNS主题的ARN。

为了解决这个问题,我在Cloud9 EC2上的Cloud9上导出了一个环境变量,并以ARN作为值。

代码语言:javascript
复制
sns_create_collection_topic=arn:aws:sns:us-east-1:0000000:test-sns
export sns_create_collection_topic

我可以运行printenv并正确地看到环境变量。我还可以在本地运行sam local start-api并在Cloud9中压缩API调用,从而正确使用来自Cloud9环境变量的SNS主题ARN。我不知道为什么当我在Cloud9中运行Lambda (本地)调试会话时,它既没有从SAM部署中获取ARN,也没有在EC2上更奇怪地选择环境变量。

我是不是做错了什么,还是Cloud9和Lambda调试没有明确支持?这似乎不是SAM的问题,因为它为我提供了所有的Cloud9 EC2 env,当我通过sam local invokesam local start-api使用SAM运行Lambda。

EN

回答 1

Stack Overflow用户

发布于 2020-06-17 20:46:18

sam可以输入一个文件来为容器设置env。它的格式是:

{ "LogicalFucntionName": { "env-var1': "env-var1-setting", "env-var2": "env-var2-setting" }

我通常将我的文件命名为envvars.json。启动sam时,请使用-n开关,如下所示:

sam local invoke LogicalFunctionName -n ./envvars.json

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

https://stackoverflow.com/questions/61354542

复制
相关文章

相似问题

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