Мы пытаемся включить 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