django - AWS EB:未解决的资源依赖关系
问题描述
多亏了这篇精彩的文章,我的 Django 应用程序得以部署并运行:https ://medium.com/@justaboutcloud/how-to-deploy-a-django3-application-on-elastic-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
我有两个理论:
我没有以正确的格式粘贴 ARN 证书,这导致我的 YAML 格式失效
这段代码的格式有问题。
有人可以提供一些意见吗?
解决方案
对我来说,由于几个原因,你的理论似乎都不适合你收到的错误。
首先,让我们仔细阅读错误。
Service:AmazonCloudFormation, Message:Template format error: Unresolved resource dependencies [AWSEBV2LoadBalancer] in the Resources block of the template
支持 EB 环境的 CFN 堆栈抱怨未解决的依赖项“AWSEBV2LoadBalancer”。这意味着正在创建的堆栈不知道这个逻辑 ID“AWSEBV2LoadBalancer”的用途。
仅当您的 beanstalk 应用程序是:
单实例应用(无 LB)
或者
使用 ELB(经典 V1 LB),其在 EB CFN 堆栈中的逻辑 ID 是“AWSEBLoadBalancer”而不是“AWSEBV2LoadBalancer”。
后来的“AWSEBV2LoadBalancer”被用作应用程序和网络 LB 的逻辑 ID。
从您分享的中篇文章链接中,我看到作者使用应用程序负载均衡器创建了他的环境。你错过了吗?
eb create django3 --elb-type application --region eu-west-1
您共享的代码片段也是有效的 YAML。
推荐阅读
- angular - Angular 8 中有哪些新功能?
- c++11 - 在构造函数声明中使用类局部类型定义
- javascript - 为什么 EPPLUS excel 下载在 MVC 中不起作用
- python - 用 Python 计算元组二叉树中整数的总和
- android - Firebase-MLkit 条形码扫描仪不产生任何结果
- python - 使用 pandas 将 ndarray 值转换为整个数据帧的数值
- php - 在一台机器上将 XAMPP 连接到 microsoft sql server management studio 2012
- opencv - gomobile bind -target=ios golang.org/x/mobile/example/bind/... libc++ 错误
- 3d - 从立体图片计算深度值高于预期
- css - 为菜单 KendoReact 设置类名