Я хотел бы создать новый ключ api из лямбды. У меня есть план использования с API шлюза, созданный с помощью CF, например:
MyApi:
Type: AWS::Serverless::Api
Properties:
Auth:
UsagePlan:
UsagePlanName: MyUsagePlan
CreateUsagePlan: PER_API
...
...
Используя это как ссылку https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/APIGateway.html
Я предполагаю, что процесс в лямбда должно быть так: - createApiKey - getUsagePlan - createUsagePlanKey
В лямбде у меня есть идентификатор MyApi, и я пытаюсь получить api:
var apiGateway = new AWS.APIGateway({region: region});
const restApi = await new Promise((resolve, reject) => {
apiGateway.getRestApi({restApiId: MYAPI_ID}, function(err, data) {
if (err) {
console.log('getRestApi err', err, err.stack);
reject(err);
} else {
console.log('getRestApi', data);
resolve(data);
}
});
});
Но это время истекает my lambda.
Если я попытаюсь ввести значения вручную, время ожидания также истечет:
const keyParams = {
keyId: 'xxxxxxxx',
keyType: 'API_KEY',
usagePlanId: 'yyyyyyyy'
};
const apiKey = await new Promise((resolve, reject) => {
apiGateway.createUsagePlanKey(keyParams, function (err, data) {
if (err) {
console.log('createUsagePlanKey err', err, err.stack);
reject(err);
} else {
console.log('createUsagePlanKey', data);
resolve(data);
}
});
});
Почему время ожидания каждого вызова функции api истекает, и в консоли ничего не печатается. журнал? В порядке ли мой подход или как мне создать новый ключ API для пользователя?
Отредактировано: тайм-аут для лямбда-выражений составляет 10 секунд, и они запускаются в VP C