我正在使用Serverless创建一个提供其静态内容的Web应用程序,例如S3存储桶中的网络字体。 S3存储桶被配置为我的serverless.yml文件中的资源。它的CORS配置将AllowOrigin设置为通配符。
我想将其更改为具有由Serverless创建的服务的http端点的AllowOrigin,例如31alib51b6.execute-api.eu-west-1.amazonaws.com
。
我想知道是否可以在serverless.yml文件本身中进行配置。
我的示例serverless.yml文件:
service: example-service
provider:
name: aws
runtime: nodejs4.3
region: eu-west-1
functions:
web:
handler: handler.handler
name: ${self:service}-${self:provider.stage}
description: ${self:service} web application - ${self:provider.stage}
events:
- http:
path: web
method: get
- http:
path: web/{proxy+}
method: get
resources:
Resources:
S3Assets:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:service}-${self:provider.stage}-assets
CorsConfiguration:
CorsRules:
- AllowedMethods:
- GET
- HEAD
AllowedOrigins:
- "*"
最佳答案
您可以使用以下语句定义AllowedOrigin:
CorsConfiguration:
CorsRules:
- AllowedMethods:
- GET
- HEAD
AllowedOrigins:
- Fn::Join:
- ""
- - "https://"
- Ref: ApiGatewayRestApi
- ".execute-api.eu-west-1.amazonaws.com"
“引用:ApiGatewayRestApi”引用生成的API的内部名称。
关于amazon-web-services - 如何配置无服务器S3存储桶资源以使用CORS AllowOrigin设置为其功能的http端点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41860539/