在 Lambda 中创建 API 网关 api 密钥

问题描述 投票:0回答:3

我正在尝试使用 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 记录任何内容。感觉回调函数从未被真正调用过。 以下是与该职能角色相关的政策: 有人知道我错过了什么吗?

amazon-web-services lambda aws-api-gateway api-gateway
3个回答
2
投票

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);
      }
    });
}

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 丢失。

希望有帮助。


0
投票

确保您设置 Lambda 安全组“出站规则”以允许出站互联网连接(如果 Lambda 函数在私有子网中运行)。

© www.soinside.com 2019 - 2024. All rights reserved.