【问题标题】:AWS SDK Gateway getUsagePlans not workingAWS 开发工具包网关 getUsagePlans 不起作用
【发布时间】:2022-10-24 10:51:49
【问题描述】:

我试图获取我帐户上所有 API 使用计划的列表,运行 cli 命令会返回我想要的结果,但是我无法让 JS SDK 版本在 Lambda 中工作。怎么了?我在他的 sdk 中看到它的分页,但在我包含此类信息后它也没有返回数据。

命令行:

aws apigateway get-usage-plans

输出:

{
"items": [
    {
        "id": "3hhulv",
        "name": "testplan",
        "apiStages": [
            {
                "apiId": "dp6ounv3jd",
                "stage": "default"
            }
        ],
        "throttle": {
            "burstLimit": 10,
            "rateLimit": 10.0
        },
        "quota": {
            "limit": 10000,
            "offset": 0,
            "period": "MONTH"
        }
    }
]
}

在节点中:

const AWS = require('aws-sdk');

exports.handler = async (event) => {

var apigateway = new AWS.APIGateway();

var params = {};
var usageplans = apigateway.getUsagePlans(params, function(err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else console.log(data); // successful response
});

const response = {
    statusCode: 200,
    things : usageplans.data
    
};
return response;
};

输出:

{
"statusCode": 200
}

【问题讨论】:

    标签: node.js amazon-web-services aws-sdk amazon-gateway


    【解决方案1】:

    我通过删除回调函数并在其上添加 .promise() 解决了这个问题。

    const AWS = require('aws-sdk');
    
    exports.handler = async (event) => {
    
    var apigateway = new AWS.APIGateway();
    
    var params = {};
    var usageplans = await apigateway.getUsagePlans(params).promise();
    
    const response = {
        things : usageplans.position,
        statusCode: 200
        
    };
    
    return response;
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2012-05-24
      • 2015-04-07
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多