Проблема с функциями лямбда в AWS - PullRequest
0 голосов
/ 06 июня 2019

Я недавно начал пытаться использовать функции AWS Lambda.Вот что я получаю в окне Результаты выполнения консоли Lambda при нажатии кнопки Test .

Response:
{
  "statusCode": 500,
  "body": "{\"message\":\"Missing credentials in config\",
  \"code\":\"CredentialsError\",\"time\":\"2019-06-06T07:11:53.538Z\",
  \"originalError\":{\"message\":\"No credentials to load\",
  \"code\":\"CredentialsError\",\"time\":\"2019-06-06T07:11:53.538Z\"}}"
}

А вот исходный код функции Lambda:

var AWS = require('aws-sdk/dist/aws-sdk-react-native');

AWS.config.update({
    region:'ap-northeast-1'
});

exports.handler = async (event,context) => {
    var params = {
        UserPoolId: 'ap-northeast-1MY-POOL-ID',
        AttributesToGet: [
            'email'
        ],
        Limit: '2',
    };

    var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();

    try {
      const data = await cognitoidentityserviceprovider.listUsers(params).promise()
      const response = {
        inBound: event.sub,
        statusCode: 200,
        body: JSON.stringify(data)
      }
      return response;
    } catch (err) {
        const response = {
            inBound: event.sub,
            statusCode: 500,
            body: JSON.stringify(err)
        };
        return response;
    }
};

Поскольку я настроил роли и политику, я не уверен, к каким учетным данным и каким настройкам относится сообщение об ошибке.

1 Ответ

1 голос
/ 07 июня 2019

Во-первых, замените существующий оператор импорта следующим.

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

Во-вторых, разрешите списку пользователей cognito разрешение на использование лямбда-роли следующим образом.

{
  "Effect": "Allow",
    "Action": [
        "cognito-idp:ListUsers"
    ],
    "Resource": [
        "arn:aws:cognito-idp:ap-northeast-1:AWS_ACCOUNT_NO:userpool:*"
    ]
}

Примечание : замените AWS_ACCOUNT_NO на свой фактический номер счета в aws.

...