вызов лямбда-функции aws из приложения node.js выдает ошибку AccessDeniedException - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь вызвать функцию Lambda из моего приложения node.js. У меня есть accesskey & secretkey, который я использую ниже, это пример кода, который я написал, чтобы просто проверить, могу ли я запустить лямбда-функцию AWS из приложения node.js express.

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?

Заранее спасибо!

1 Ответ

0 голосов
/ 25 апреля 2018

Не в node.js, но я бы начал с замены следующей строки кода

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

на

AWS.config.update({accessKeyId: 'XXXXX', secretAccessKey: 'YYYYY'});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...