本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CorsConfiguration
管理 API Gateway API 的跨來源資源共用 (CORS)。指定允許作為字符串的域或指定帶有其他 CRS 配置的字典。
注意
CORS 需要修 AWS SAM 改您的 OpenAPI 定義。在中建立內嵌 OpenAPI 定義以DefinitionBody
開啟 CORS。如果CorsConfiguration
在 OpenAPI 定義中設定,也在屬性層級設定,則會將它們 AWS SAM 合併。屬性層級的優先順序高於 OpenAPI 定義。
如需有關 CORS 的詳細資訊,請參閱 API Gateway 開發人員指南中的針對 API Gateway REST API 資源啟用 CO RS。
語法
若要在 AWS Serverless Application Model (AWS SAM) 範本中宣告此實體,請使用下列語法。
YAML
AllowCredentials:
Boolean
AllowHeaders:String
AllowMethods:String
AllowOrigin:String
MaxAge:String
屬性
-
AllowCredentials
-
布林值,指出是否允許要求包含認證。
類型:布林值
必要:否
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
AllowHeaders
-
要允許的標頭字串。
類型:字串
必要:否
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
AllowMethods
-
包含要允許的 HTTP 方法的字串。
類型:字串
必要:否
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
AllowOrigin
-
允許的原始字符串。這可以是字串格式的逗號分隔清單。
類型:字串
必要:是
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
MaxAge
-
包含緩存 CORS 預檢請求的秒數的字符串。
類型:字串
必要:否
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
範例
CorsConfiguration
CORS 配置示例。這只是 AWS SAM 模板文件的一部分,顯示配置了 AWS::Serverless::Function CORS 的AWS::Serverless::Api定義和. 如果您使用 Lambda 代理整合或 HTTP 代理整合,您的後端必須傳回Access-Control-Allow-Origin
Access-Control-Allow-Methods
、和Access-Control-Allow-Headers
標頭。
YAML
Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Cors: AllowMethods: "'POST, GET'" AllowHeaders: "'X-Forwarded-For'" AllowOrigin: "'www.example.com'" MaxAge: "'600'" AllowCredentials: true ApiFunction: # Adds a GET method at the root resource via an Api event Type: AWS::Serverless::Function Properties: Events: ApiEvent: Type: Api Properties: Path: / Method: get RestApiId: Ref: ApiGatewayApi Runtime: python3.10 Handler: index.handler InlineCode: | import json def handler(event, context): return { 'statusCode': 200, 'headers': { 'Access-Control-Allow-Headers': 'Content-Type', 'Access-Control-Allow-Origin': 'www.example.com', 'Access-Control-Allow-Methods': 'POST, GET' }, 'body': json.dumps('Hello from Lambda!') }