AWS Serverless 403禁止API网关

时间:2019-11-20 16:14:44

标签: node.js amazon-web-services aws-lambda aws-serverless

我正在尝试创建一个无服务器的Nodejs应用程序。我将应用程序部署到S3,并且正在运行。但是该URL似乎是https://xxxxxxxx.xxxxx-api.us-west-2.amazonaws.com/prod。因此,每当我的应用尝试获取CSS文件或视频文件甚至是链接时,它们都将转到URL/,这是完美的。但是这里的网址是URL/prod,应该像URL/prod/whichever-route-it-is一样,因此,我的静态文件没有被渲染,甚至链接也无法正常工作。有什么方法可以重新路由到URL / prod或从api端点中删除该prod?

2 个答案:

答案 0 :(得分:0)

AWS API网关在URL中遵循以下模式:

  

www.example.com/my-base-path/MyStage

您必须相应地配置每个部分。例如,您可以创建基本路径“ prod”,并将“ whatever-route-it-is”阶段化为类似以下内容:

  

www.example.com/prod/everever-route-it-is

基本路径映射在“自定义域名”下配置。

答案 1 :(得分:-1)

将保存静态文件的文件夹移动到S3中的/ prod /子文件夹中。

或者,使用Cloudfront将/ css / ,/ js / 或任何静态路径路由到S3存储桶并跳过API网关

或者,配置API网关以覆盖/ css / ,/ js / 或其他任何内容的路径

我更喜欢将文件移动到子文件夹或Cloudfront解决方案。这样可以控制API的不同阶段。例如,当您准备启动v2但尚未完全删除v1时,您可能希望有prod /和prod_v2 /可用。这样,您的文件夹结构就可以很好地映射到API Gateway阶段。