gpt4 book ai didi

amazon-web-services - 如何在 CloudFormation 模板中将多个 URL 传递给 AllowOrigins

转载 作者:行者123 更新时间:2023-12-03 07:22:42 25 4
gpt4 key购买 nike

我正在使用 YML 格式的 CloudFormation 模板。

根据环境,我需要能够对 CorsConfiguration 的允许来源属性使用不同的 URL。理想情况下,我想使用如下定义的参数:

  AllowedOrigins:
Description: Allowed Origins
Type: String
AllowedPattern: '.+'

我尝试传递一个分隔字符串(即“http://localhost:4200,http://localhost:4201”),并像这样分割值:

  OnboardingHttpApi:
Type: AWS::Serverless::HttpApi
Properties:
CorsConfiguration:
AllowOrigins: !Split [ ",", !Ref AllowedOrigins ]

CloudFormation 中的响应是:

导入过程中发现警告:CORS 方案格式错误,忽略。 (服务:AmazonApiGatewayV2;状态代码:400;错误代码:BadRequestException;请求 ID:21072c02-70c3-473d-9629-784005226bd4;代理:null)(服务:null;状态代码:404;错误代码:BadRequestException;请求 ID: null; 代理:null)

最佳答案

这是我从 AWS Support 得到的答案:

Split 函数用于将字符串拆分为列表,但不用于引用属性。它设计为与选择功能或其他功能一起使用。因此它不是一个可供引用的独立函数。为此,您可以使用 CommaDelimitedList 参数类型。您可以使用 CommaDelimitedList 参数类型在单个参数中指定多个字符串值。传递 CommaDelimitedList 参数值后,您可以稍后在模板上引用它。这是一个有效的 CloudFormation 模板:

AWSTemplateFormatVersion: 2010-09-09
Transform: 'AWS::Serverless-2016-10-31'
Parameters:
AllowedOriginsURLs:
Type: CommaDelimitedList
Default: 'https://example.com,https://example2.com'
Description: Please enter your URLs
Resources:
HttpApi:
Type: 'AWS::Serverless::HttpApi'
Properties:
StageName: my-stage-name
Tags:
Tag: MyTag
StageVariables:
StageVar: Value
CorsConfiguration:
AllowOrigins: !Ref AllowedOriginsURLs
AllowHeaders: [ x-apigateway-header ]
AllowMethods: [ GET ]
MaxAge: 600
AllowCredentials: true

AllowedOriginsURLs 参数的类型为 CommaDelimitedList,默认值为“http://localhost:4200,http://localhost:4201”。您可以在启动时更改此参数,然后您可以在AllowOrigins上引用AllowedOriginsURLs。

关于amazon-web-services - 如何在 CloudFormation 模板中将多个 URL 传递给 AllowOrigins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71429155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com