为什么在将Angular项目部署到S3时会遇到403和502错误?
我正在尝试部署一个Angular项目,该项目访问S3的.NET核心Web API。我已经将我的Web API部署到Lambda,并且能够在本地运行Angular项目时使用它。但是,当我将其部署到S3时,我的页面显示为什么在将Angular项目部署到S3时会遇到403和502错误?,angular,entity-framework,amazon-s3,aws-lambda,jenkins-pipeline,Angular,Entity Framework,Amazon S3,Aws Lambda,Jenkins Pipeline,我正在尝试部署一个Angular项目,该项目访问S3的.NET核心Web API。我已经将我的Web API部署到Lambda,并且能够在本地运行Angular项目时使用它。但是,当我将其部署到S3时,我的页面显示{“message”:“internalserver error”}。控制台显示以下错误: 加载资源失败:服务器响应状态为403() 加载资源失败:服务器响应状态为502() 如前所述,我尝试在本地运行Angular项目,使用部署到Lambda时生成的url。我能够执行所有REST
{“message”:“internalserver error”}
。控制台显示以下错误:
加载资源失败:服务器响应状态为403()
加载资源失败:服务器响应状态为502()
serverless.yml
文件如下所示:
# generated by @ng-toolkit/serverless
service: [service-name]
plugins:
- serverless-apigw-binary
provider:
name: aws
runtime: nodejs8.10
memorySize: 192
timeout: 10
stage: production
region: us-east-1
package:
exclude:
- src/**
- node_modules/**
- firebug-lite/**
- e2e/**
- coverage/**
- '!node_modules/aws-serverless-express/**'
- '!node_modules/binary-case/**'
- '!node_modules/type-is/**'
- '!node_modules/media-typer/**'
- '!node_modules/mime-types/**'
- '!node_modules/mime-db/**'
custom:
apigwBinary:
types:
- '*/*'
functions:
api:
handler: lambda.universal
events:
- http: ANY {proxy+}
- http: ANY /
{
"/api/*": {
"target":"[Lambda URL]/dev/api/",
"secure":false,
"changeOrigin":true
}
}
我的proxy.conf.json
文件如下所示:
# generated by @ng-toolkit/serverless
service: [service-name]
plugins:
- serverless-apigw-binary
provider:
name: aws
runtime: nodejs8.10
memorySize: 192
timeout: 10
stage: production
region: us-east-1
package:
exclude:
- src/**
- node_modules/**
- firebug-lite/**
- e2e/**
- coverage/**
- '!node_modules/aws-serverless-express/**'
- '!node_modules/binary-case/**'
- '!node_modules/type-is/**'
- '!node_modules/media-typer/**'
- '!node_modules/mime-types/**'
- '!node_modules/mime-db/**'
custom:
apigwBinary:
types:
- '*/*'
functions:
api:
handler: lambda.universal
events:
- http: ANY {proxy+}
- http: ANY /
{
"/api/*": {
"target":"[Lambda URL]/dev/api/",
"secure":false,
"changeOrigin":true
}
}
请告诉我是否需要添加任何其他代码来诊断问题。我没有添加任何.NET核心代码或任何实际的HTML/Typescript代码,因为我目前认为这些代码不会影响手头的问题。但是,如果需要这些,我将提供一些摘录
预期的输出应该是一个简单的HTML页面,为学生显示一个简单的输入表单(包括名字、姓氏和其他一些细节)。除此之外,还有一个列表,其中包含数据库中已经存在的所有学生。单击这些按钮将用特定学生的详细信息填充表单
这正是我运行
ngservice--open
时产生的结果。只有在我运行npm运行build:serverless:deploy时才会发生错误。您可能在API网关中附加到URL的“stage”路径有问题。(即:/production/)
标准建议是为API网关注册一个自定义域,但也可以尝试将项目索引修改为其他路径
有关更多信息,请参阅本文(ctrl+f 403):