簡體   English   中英

AWS EB:未解決的資源依賴性

[英]AWS EB: Unresolved resource dependencies

由於這篇精彩的文章,我的 Django 應用程序已部署並正常工作: https://medium.com/@justaboutcloud/how-to-deploy-a-django3-application-on-elastic-beanstalk-python3-7-and-amazon- linux-2-bd9b8447b55

我要結束項目並設置 HTTPS。為此,我在 my.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. 此代碼的格式有問題。

有人可以提供一些意見嗎?

對我來說,由於幾個原因,您的理論似乎都不適合您收到的錯誤。

首先,讓我們仔細閱讀錯誤。

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

支持 EB 環境的 CFN 堆棧抱怨未解決的依賴項“AWSEBV2LoadBalancer”。 這意味着正在創建的堆棧不知道此邏輯 ID“AWSEBV2LoadBalancer”的用途。

只有當你的 beantalk 應用程序是:

單實例應用(無LB)

要么

使用 ELB(經典 V1 LB),其在 EB CFN 堆棧中的邏輯 ID 是“AWSEBLoadBalancer”而不是“AWSEBV2LoadBalancer”。

后來的“AWSEBV2LoadBalancer”被用作應用程序和網絡 LB 的邏輯 ID。

從您分享的媒體文章鏈接中,我看到作者使用應用程序負載均衡器創建了他的環境。 你錯過了嗎?

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

此外,您共享的代碼片段是有效的 YAML。

您正在嘗試使用負載均衡器將 HTTP 請求重定向到 HTTPS。但是您使用的是 EB 環境類型:單個實例,它沒有負載均衡器。

要么切換到 EB 環境類型:負載平衡,要么停止使用負載平衡器將 HTTP 請求重定向到 HTTPS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM