1

我正在尝试使用 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。感觉就像从未真正调用过回调。以下是附加到该功能角色的政策:在此处输入图像描述 有人知道我缺少什么吗?

4

2 回答 2

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);
      }
    });
}
于 2017-10-06T17:15:30.673 回答
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。

希望能帮助到你。

于 2017-10-04T13:53:27.070 回答