fragen stichworte

ElasticBeanstalk: Legen Sie den Instanztyp und die Sicherheitsgruppe aus der Konfigurationsdatei fest

Ich habe Probleme beim Definieren des Instanztyps und der Sicherheitsgruppen über die .ebextensions/*.config -Dateien im Stammverzeichnis meines Anwendungspakets.

Kurz gesagt, ich habe zwei Konfigurationsdateien, die folgendermaßen aussehen:

.ebextensions/01-options.config:

option_settings:
  [...]
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_ONE
    value: '01-options.config'
  [...]

und .ebextensions/02-app-test-env.config:

option_settings:
  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: NODE_ENV
    value: 'Test'

  - namespace: 'aws:elasticbeanstalk:application:environment'
    option_name: CONFIG_FILE_TWO
    value: '02-app-test-env'

  - namespace: aws:autoscaling:launchconfiguration
    option_name: InstanceType
    value: t2.micro

  - namespace: aws:autoscaling:launchconfiguration
    option_name: SecurityGroups
    value: sg-ys75dfs2

Nun werden die Umgebungsvariablen festgelegt. Ich weiß, dass beide Konfigurationsdateien gelesen werden. Die Sicherheitsgruppe und der Instanztyp werden jedoch nicht festgelegt. Selbst wenn ich die Umgebung neu aufbaue, werden Instanzen immer noch als t1.micro mit erstellt Standardsicherheitsgruppen - Meine Einstellungen werden nicht angewendet.

Was fehlt mir hier? Wie kann ich den Instanztyp mithilfe von .config -Dateien definieren?

antworten

Sie sollten das, was Sie in dieser Konfigurationsdatei haben, für den Namespace "launchconfiguration" verwenden können, aber Sie benötigen die einfachen Anführungszeichen um den Namespace und den Wert, den Sie in den ersten beiden verwenden.

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: InstanceType
  value: 't2.micro'

- namespace: 'aws:autoscaling:launchconfiguration'
  option_name: SecurityGroups
  value: 'sg-ys75dfs2'

Achten Sie bei der Verwendung von eb cli 3.x auch auf Fehler in eb logs. Hoffentlich hilft das.

Wie in den Kommentaren erwähnt, werden die Einstellungen in den Konfigurationsdateien ignoriert, wenn sie auch auf der Umgebungsebene festgelegt werden (und die Einstellung für InstanceType ist auf der Umgebungsebene automatisch erstellt).

Wenn Sie Ihre Einstellungen lieber in den Konfigurationsdateien behalten möchten, müssen Sie sie aus der Umgebung entfernen. Dies können Sie für InstanceType mit dem folgenden Befehl tun:

aws elasticbeanstalk update-environment --environment-name my-env --options-to-remove Namespace=aws:autoscaling:launchconfiguration,OptionName=InstanceType

Weitere Informationen zum Ändern der Einstellungen auf Umgebungsebene finden Sie in den AWS-Dokumenten unter .