使用Lambda的AWS API的权限问题

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

我正在使用https://www.apitester.com/测试我新部署的AWS API。如您所见,我无法访问API。部署了API,Lambda代码如下所示。

const AWS = require('aws-sdk');
var bucket = new AWS.S3();

exports.handler = (event, context, callback) => {

     let data =JSON.parse(event.body);
     
     var params = {
       "Body": data,
       "Bucket": "smartmatressbucket",
      // "Key": filePath  
    };
    bucket.upload(params, function(err, data){
       if(err) {
           callback(err, null);
       } else {
           let response = {
        "statusCode": 200,
        "headers": {
            "my_header": "my_value"
        },
        "body": JSON.stringify(data),
        "isBase64Encoded": false
    };
           callback(null, response);
    }
    });
    
};
amazon-web-services api aws-lambda aws-api-gateway http-status-code-403
1个回答
0
投票

查看响应日志,似乎API网关生成“ForbiddenException”。我认为最可能的原因是使用了不正确的API URL(例如-https://ogk2hm09j0.execute-api.eu-central-1.amazonaws.com/)。

假设您将Lambda函数配置为资源名称“resourceA”的GET方法。然后将API部署到名为“dev”的阶段。那么正确的URL应该是https://ogk2hm09j0.execute-api.eu-central-1.amazonaws.com/dev/resourceA

但是查看日志中的API URL,似乎未指定阶段名称或资源名称。

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