【问题标题】:Permission Issue at an AWS API using Lambda使用 Lambda 的 AWS API 的权限问题
【发布时间】:2019-02-16 00:20:10
【问题描述】:

我正在使用 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】:

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

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

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

    【讨论】:

    • 感谢您的回复。你是对的,我忘记了资源名称。 ^^ 但是现在我得到了一个missingauthenticationtokenexception,但我不明白为什么。我指定了一个 AWS 角色并将其添加到 Lambda 函数中,所以我不应该需要身份验证令牌吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2019-10-14
    • 2023-03-15
    • 2020-07-17
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多