AWS EB: неразрешенные зависимости ресурсов - PullRequest
0 голосов
/ 28 мая 2020

Мое Django приложение развернуто и работает благодаря этой статье fantasti c: https://medium.com/@justaboutcloud / how-to-deploy-a-django3-application-on-elasti c -beanstalk- python3 -7-and-amazon- linux -2-bd9b8447b55

Я подошел к концу проекта и настраиваю HTTPS. Для этого я создал файл конфигурации в моей папке .ebextensions с именем 02_https.config

В этот файл я скопировал и вставил код из статьи:

option_settings:
  aws:elbv2:listener:443:
    SSLCertificateArns: <YourACMCertificateARN>
    Protocol: HTTPS
Resources:
    AWSEBV2LoadBalancerListener:
      Type: 'AWS::ElasticLoadBalancingV2::Listener'
      Properties:
        LoadBalancerArn: { "Ref" : "AWSEBV2LoadBalancer" }
        DefaultActions:
          - RedirectConfig:
              Port: 443
              Protocol: HTTPS
              StatusCode: HTTP_301
            Type: redirect
        Port: 80
        Protocol: HTTP

Когда Я развертываю приложение и получаю это сообщение об ошибке:

Service:AmazonCloudFormation, Message:Template format error: Unresolved resource dependencies [AWSEBV2LoadBalancer] in the Resources block of the template

У меня две теории:

  1. Я не вставляю сертификат ARN в правильном формате, который сбрасывает мое форматирование YAML

  2. Что-то не так с форматированием этого кода.

Может ли кто-нибудь предоставить какие-либо данные?

1 Ответ

0 голосов
/ 08 июня 2020

Мне кажется, что ни одна из ваших теорий не подходит для ошибки, которую вы получаете по нескольким причинам.

Прежде всего, давайте внимательно прочтем ошибку.

Service:AmazonCloudFormation, Message:Template format error: Unresolved resource dependencies [AWSEBV2LoadBalancer] in the Resources block of the template

Стек CFN, поддерживающий среду EB, жалуется на неразрешенную зависимость «AWSEBV2LoadBalancer». Это означает, что создаваемый стек не знает, для чего нужен этот логический идентификатор "AWSEBV2LoadBalancer".

Это может произойти, только если ваше приложение beanstalk:

Одноэкземплярное приложение (без LB)

или

Использование ELB (classi c V1 LB), логическим идентификатором которого в стеке EB CFN является «AWSEBLoadBalancer», а не «AWSEBV2LoadBalancer».

Более поздний «AWSEBV2LoadBalancer» используется в качестве логического идентификатора для LB приложений и сети.

Из средней ссылки на статью, которой вы поделились, я вижу, что автор создал свою среду с балансировщиком нагрузки приложений. Вы пропустили это?

eb create django3 --elb-type application --region eu-west-1 

Также предоставленный вами фрагмент кода является действительным YAML.

...