【发布时间】:2020-07-16 15:41:55
【问题描述】:
我使用 AWS Toolkit for .Net Core 3.1 创建了一个 AWS Lambda 应用程序 API。它有 2 个 Get 请求,在请求正文中期望文本 JSON 并返回文本 JSON 作为输出。它不需要任何数据库连接或任何其他 AWS 资源。本地一切正常,所有测试都通过了。我使用运行 Cloud Formation 设置文件的 AWS Toolkit 将我的应用程序发布到 AWS 账户,同样没有问题,全部通过。这将使用我的 API 端点创建我的 AWS Lambda API 应用程序。但是,当我尝试使用时,我收到 "403 Forbidden" 错误:
我注意到的另一件事是默认 API 网关类型是 Edge,我不确定这是否会造成问题。我想将它设置为私有云形成从 .Net 核心级别卡住。我认为这里有一些需要改变的地方:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Transform": "AWS::Serverless-2016-10-31",
"Description": "An AWS Serverless Application that uses the ASP.NET Core framework running in Amazon Lambda.",
"Resources": {
"AspNetCoreFunction": {
"Type": "AWS::Serverless::Function",
"Properties": {
"Handler": "AES.Protocol::AES.Protocol.LambdaEntryPoint::FunctionHandlerAsync",
"Runtime": "dotnetcore3.1",
"CodeUri": "",
"MemorySize": 256,
"Timeout": 30,
"Role": null,
"Policies": [
"AWSLambdaFullAccess"
],
"Events": {
"ProxyResource": {
"Type": "Api",
"Properties": {
"Path": "/{proxy+}",
"Method": "ANY"
}
},
"RootResource": {
"Type": "Api",
"Properties": {
"Path": "/",
"Method": "ANY"
}
}
}
}
}
},
"Outputs": {
"ApiURL": {
"Description": "API endpoint URL for Prod environment",
"Value": {
"Fn::Sub": "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/"
}
}
}
}
之前与此 API 相关的 question 可能会有所帮助。
【问题讨论】:
标签: amazon-web-services api asp.net-core aws-lambda