【问题标题】:calling aws lambda function from node.js app gives error of AccessDeniedException从 node.js 应用程序调用 aws lambda 函数会出现 AccessDeniedException 错误
【发布时间】:2018-04-25 16:12:10
【问题描述】:

我正在尝试从我的 node.js 应用程序调用 Lambda 函数。我有 accesskey 和 secretkey,我在下面使用的是示例代码,我编写这些代码只是为了测试我是否能够从 node.js express 应用程序中访问 AWS lambda 函数。

var express = require('express');
var AWS = require('aws-sdk');

var app = express();
app.get('/', function (req, res) {
  res.send('Hello World!');
});

const invokeLambda = (lambda, params) => new Promise((resolve, reject) => {
  lambda.invoke(params, (error, data) => {
    if (error) {
      reject(error);
    } else {
      resolve(data);
    }
  });
});

const main = async () => {
  AWS.config.update({ 
    accessKeyId: 'XXXXX', 
    secretAccessKey: 'YYYYY', 
    region: 'eu-west-1',
  });

  const lambda = new AWS.Lambda();

  const params = {
    FunctionName: 'myLambdaFunction', 
    Payload: JSON.stringify({
      'x': 1, 
      'y': 2,
      'z': 3,
    }),
  };

  const result = await invokeLambda(lambda, params);

  console.log('Success!');
  console.log(result);
};

main().catch(error => console.error(error));

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

知道 AWS 的当前配置有什么问题吗?

提前致谢!

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda aws-sdk


    【解决方案1】:

    不是node.js,但我会先替换以下代码行

    const main = async () => {
      AWS.config.update({ 
        accessKeyId: 'XXXXX', 
        secretAccessKey: 'YYYYY', 
        region: 'eu-west-1',
      });
    

    AWS.config.update({accessKeyId: 'XXXXX', secretAccessKey: 'YYYYY'});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 2022-12-03
      • 2018-08-02
      • 1970-01-01
      • 2021-09-19
      • 2017-11-12
      • 2020-05-12
      • 1970-01-01
      相关资源
      最近更新 更多