我正在尝试使用 sdk 在 lambda 中创建 API Gateway 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 记录任何内容。感觉回调函数从未被真正调用过。 以下是与该职能角色相关的政策: 有人知道我错过了什么吗?
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);
}
});
}
参数与记录不匹配,
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 丢失。
希望有帮助。
确保您设置 Lambda 安全组“出站规则”以允许出站互联网连接(如果 Lambda 函数在私有子网中运行)。