[英]How to configure CorsRule for CDK using python
我正在尝试找出使用 CDK(python)在 s3 存储桶上设置 cors 的正确语法。 class aws_s3.CorsRule
需要 3 个参数(allowed_methods、allowed_origins、max_age=None)。 我正在尝试指定allowed_methods
,它接受方法列表,但基础是enum.Enum
。 那么如何创建这些方法的列表。 这是我尝试过的,但它没有通过验证。
s3.Bucket(self, "StaticSiteBucket",
bucket_name="replaceMeWithBucketName",
versioned=True,
removal_policy=core.RemovalPolicy.DESTROY,
website_index_document="index.html",
cors=s3.CorsRule(allowed_methods=[s3.HttpMethods.DELETE],allowed_origins=["*"],max_age=3000)
)
我唯一关注的是 cors 线:
cors=s3.CorsRule(allowed_methods=[s3.HttpMethods.DELETE],allowed_origins=["*"],max_age=3000)
尝试阅读文档就像剥洋葱。
我尝试单独调用每一个,如您所见,使用s3.HttpMethods.DELETE
但在尝试合成时失败。
看起来您至少忘记将传递给cors
的参数包装为列表。 我同意这些文档有点像兔子洞,但是您可以看到Bucket 文档将 cors 参数指定为(Optional[List[CorsRule]])
这是我的:
from aws_cdk import core
from aws_cdk import aws_s3
from aws_cdk import aws_apigateway
aws_s3.Bucket(self,
'my_bucket',
bucket_name='my_bucket',
removal_policy=core.RemovalPolicy.DESTROY,
cors=[aws_s3.CorsRule(
allowed_headers=["*"],
allowed_methods=[aws_s3.HttpMethods.PUT],
allowed_origins=["*"])
])
所以你的应该是:
cors=[s3.CorsRule(
allowed_methods=[s3.HttpMethods.DELETE],
allowed_origins=["*"],
max_age=3000)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.