AWS Lambda -> DAX -> DynamoDB: «Клиент не имеет разрешения для вызова конечных точек» - PullRequest
0 голосов
/ 10 января 2019

Мы пытаемся включить DAX для использования в наших NodeJS Lambdas. Мы создали VPC, добавили DAX и Lambda в VPC, однако теперь, когда лямбда-функция выдает ошибку:

Failed to pull from xxxxx (xxx.xx.xx.122): { Error: Client does not have permission to invoke Endpoints
code: undefined,
retryable: false,
requestId: null,
statusCode: -1,
_tubeInvalid: true,
waitForRecoveryBeforeRetrying: false,
_message: 'Client does not have permission to invoke Endpoints',
codeSeq: [ 4, 23, 31, 34 ],
cancellationReasons: undefined }

Это лямбда-код:

const daxOptions = {
  endpoint: 'xxx.apse2.cache.amazonaws.com:8111',
  region: 'ap-southeast-2',
};
const daxClient = new AmazonDaxClient(daxOptions);
const dynamoDb = new DynamoDB.DocumentClient({ service: daxClient, convertEmptyValues: true });

...

const payload = {
  RequestItems: {
    ['tableName']: {
      Keys: items.map(itemId => ({
        id: itemId,
      })),
    },
  },
};
const response = await dynamoDb.batchGet(payload).promise();

Кажется, что кластер DAX работает нормально. Мы можем перечислить кластеры DAX используя: aws dax describe-clusters --r ap-southeast-2 --profile tst

...