我尝试使用sdk在lambda中创建API网关api密钥,但我似乎无法使其工作 这是我的代码
exports.handler = (event, context, callback) => {
var apigateway = new AWS.APIGateway({apiVersion: '2015-07-09'});
var params = {
description: 'desc',
enabled: true,
generateDistinctId: true,
name: 'apiKey1',
value: 'qwerty'
};
apigateway.createApiKey(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
}
该功能仅在1分钟后超时,无需向CloudWatch记录任何内容。感觉回调从未被实际调用过。 以下是与该职能部门相关的政策: 任何人都知道我错过了什么?
答案 0 :(得分:1)
您需要在createKey成功和错误时调用回调方法以避免超时。
exports.handler = (event, context, callback) => {
var apigateway = new AWS.APIGateway({apiVersion: '2015-07-09'});
var params = {
description: 'desc',
enabled: true,
generateDistinctId: true,
name: 'apiKey1',
value: 'qwerty'
};
apigateway.createApiKey(params, function(err, data) {
if (err) {
console.log(err, err.stack); // an error occurredelse
callback(err);
} else {
console.log(data); // successful response
callback(null, data);
}
});
}
答案 1 :(得分:0)
参数不符合记录,
var params = {
customerId: 'STRING_VALUE',
description: 'STRING_VALUE',
enabled: true || false,
generateDistinctId: true || false,
name: 'STRING_VALUE',
stageKeys: [
{
restApiId: 'STRING_VALUE',
stageName: 'STRING_VALUE'
},
/* more items */
],
value: 'STRING_VALUE'
};
apigateway.createApiKey(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
stageKeys丢失了。
希望它有所帮助。