ApplicationLoadBalancedFargateService - 使用已有证书

0

【以下的问题经过翻译处理】 我有一个支持子域的证书,我想将其作为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_httpcertificate参数,那么堆栈就可以部署。

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),
        )
profile picture
专家
已提问 5 个月前12 查看次数
1 回答
0

【以下的回答经过翻译处理】 一个可能的原因是您正在尝试在us-east-1以外的区域部署。 对于ALB,证书必须在相同的区域中。而对于CloudFront,证书必须在您已验证的us-east-1区域中。有关更多详细信息,请参阅https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则