一千萬個為什麽

搜索

Elastic Beanstalk:從應用程序包中的.config文件設置參數



我正在使用Elastic Beanstalk Web UI為單個Docker容器創建環境。我想將所有環境選項放入應用程序包中的.config文件中。我正在接近這一點。通過下面的選項,我快到了。但是,我必須使用Web UI“配置更多選項”並將“容量”,“環境類型”更改為“負載均衡”。沒有,我的環境無法啟動,我收到如下錯誤消息:

“由於AWSEBLoadBalancer不存在,因此無法應用”Load Balancer ListenerEnabled“設置。”

想法?

這裏是我在我的應用程序包中使用的.config文件:

option_settings:  
  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role
    LoadBalancerType: classic
    EnvironmentType: LoadBalanced
  aws:elb:loadbalancer:
    CrossZone: 'false'
  aws:elb:listener:
    ListenerEnabled: 'false'
  aws:elb:listener:443:
    ListenerProtocol: HTTPS
    SSLCertificateId: 
    InstancePort: 80
    InstanceProtocol: HTTP
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: amazon1    
  aws:autoscaling:asg:
    MaxSize: '1'

跟進,11月19日

我已經改變了一些事情,也許有一點進展。我以前不知道如何在.config文件中提供資源。所以,我添加了第二個.config文件。我給我下面的當前配置文件。我現在的情況是,雖然環境啟動進行得更遠,但它沒有成功。直到最後一刻,環境才會啟動,並且所有環境都很好,但我希望健康狀態轉換到“正常”,它將轉換為“嚴重”狀態:

環境衛生已經從待定轉變為嚴重。   初始化完成45秒前,花了2分鐘。 ELB健康   對所有實例都失敗或不可用。

我已經嘗試通過在00_和01_之前添加他們的名字來改變配置文件的順序,但是獨立於這兩個文件的順序,我得到與上述完全相同的結果(“Environment health transitioned ...”)。另外,我查看了日誌,並沒有看到任何有用的東西。事實上,據我所知,沒有任何數據表明日誌中有錯誤。

資源文件:

Resources:
  AWSEBLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      CrossZone: False

選項文件:

option_settings:
  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role
  aws:elb:listener:
    ListenerEnabled: 'false'
  aws:elb:listener:443:
    ListenerProtocol: HTTPS
    SSLCertificateId: 
    InstancePort: 80
    InstanceProtocol: HTTP
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: amazon1    
  aws:autoscaling:asg:
    MaxSize: '1'

更新:

我認為,至少部分內容是在環境啟動之後根據Elastic Beanstalk Web UI具有“環境類型:單一實例”。

我用下面的(統一).config文件得到這個:

Resources:
  AWSEBLoadBalancer:
    Type: AWS::ElasticLoadBalancing::LoadBalancer
    Properties:
      Listeners:
      - InstancePort: 80
        InstanceProtocol: HTTP
        LoadBalancerPort: 443
        Protocol: HTTPS
        SSLCertificateId: 
option_settings:
  aws:elb:listener:
    ListenerEnabled: 'false'
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: amazon1    
  aws:autoscaling:asg:
    MaxSize: '1'
  aws:elasticbeanstalk:environment:
    EnvironmentType: LoadBalanced
    LoadBalancerType: classic
    ServiceRole: aws-elasticbeanstalk-service-role

轉載註明原文: Elastic Beanstalk:從應用程序包中的.config文件設置參數

一共有 0 個回答: