【以下的问题经过翻译处理】 我有一个支持子域的证书,我想将其作为Fargate部署的一部分使用。该证书已知用于根域和建议的子域(通过应用到CloudFront分配进行测试)。
当我尝试将证书应用于我的堆栈时,我得到以下错误(已屏蔽元素):
堆栈部署失败:错误:名为MyStack的堆栈创建失败,可能需要在AWS控制台中手动删除:ROLLBACK_COMPLETE:资源处理程序返回消息:“证书ARN'arn:aws:acm:us -east-1:nnnnnnnnnnnn:certificate / x-x-x-x-x'无效(服务:ElasticLoadBalancingV2,状态代码:400,请求ID:XXXX,扩展请求ID:null)”(RequestToken:XXXX,HandlerErrorCode:InvalidRequest)
如果没有redirect_http
和certificate
参数,那么堆栈就可以部署。
BASENAME="secure-stack"
DOMAIN_APEX = "example.org.uk"
SUBDOMAIN_NAME = f"costs.{DOMAIN_APEX}"
CERT_ARN='arn:aws:acm:us-east-1:nnnnnnnnnnnn:certificate/x-x-x-x-x'
class CynapseCostStack(Stack):
def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
vpc = ec2.Vpc(self, f"{BASENAME}-vpc", max_azs=2,)
cluster = ecs.Cluster(self, f"{BASENAME}-cluster", vpc=vpc)
task_image_options = ecs_patterns.ApplicationLoadBalancedTaskImageOptions(...)
ecs_patterns.ApplicationLoadBalancedFargateService(
self,
f"{BASENAME}-service",
service_name=f"{BASENAME}-service",
cluster=cluster,
cpu=256,
desired_count=1,
task_image_options=task_image_options,
memory_limit_mib=512,
public_load_balancer=True,
load_balancer_name=f"{BASENAME}-lb",
domain_name=SUBDOMAIN_NAME,
domain_zone=route53.HostedZone.from_lookup(self, f"{BASENAME}-zone", domain_name=DOMAIN_APEX),
redirect_http=True,
certificate=acm.Certificate.from_certificate_arn(self, f"{BASENAME}-cert", CERT_ARN),
)