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),
        )
1 réponse
0

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

profile picture
EXPERT
répondu il y a 6 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions