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

10

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

Kurz gesagt, ich habe zwei Konfigurationsdateien, die so 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

Jetzt werden die Umgebungsvariablen festgelegt, sodass ich weiß, dass beide Konfigurationsdateien gelesen werden, aber die Sicherheitsgruppe und der Instanztyp werden nicht festgelegt. Selbst wenn ich die Umgebung neu erstelle, werden Instanzen wie t1.microbei Standardsicherheitsgruppen erstellt - meine Einstellungen werden nicht angewendet.

Was fehlt mir hier? Wie kann ich den Instanztyp mithilfe von .configDateien definieren?

Josh Hunt
quelle
Haben Sie die Protokolle überprüft, nachdem die App gestartet wurde? Vielleicht hat es sich über eine Ihrer Optionen beschwert? Nachdem ich dies gelesen hatte, hatte ich den Eindruck, dass aufgrund dieses Satzes nur die in dieser Tabelle aufgeführten Namespaces unterstützt werden : [...] The following table displays the namespaces that are supported for each container type. [...]. Aber es scheint seltsam, ob das der Fall wäre.
Bazze

Antworten:

11

Sie sollten in der Lage sein, das, was Sie in dieser Konfigurationsdatei haben, für den Startkonfigurations-Namespace zu verwenden, aber Sie benötigen die einfachen Anführungszeichen um den Namespace und den Wert, wie Sie sie in den ersten 2 haben, die funktionieren.

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

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

Achten Sie auch auf Fehler in eb-Protokollen, wenn Sie eb cli 3.x verwenden. Ich hoffe, das hilft.

Tyler
quelle
Ich habe es versucht und sowohl das Original als auch die Version mit Anführungszeichen. Beides hat bei mir nicht funktioniert. Andere Einstellungen in meiner .config wie MinSize und MaxSize funktionieren. Am Ende musste ich stattdessen verwenden: eb create -i 't2.medium'?!
Charles
@ Charles, ja, ich bringe InstanceType auch nicht mehr zum Laufen. Ich bin mir nicht sicher, wo das Problem liegt, da, wie Sie bereits erwähnt haben, die anderen instanzbezogenen Optionen funktionieren.
Tyler
Danke für die Bestätigung. Wenn ich die Frage im AWS-Forum poste, melde ich mich zurück, wenn ich die Antwort finde.
Charles
1
Ich denke, ich bin vielleicht bei dem Problem, das hier liegt. Es sieht so aus, als ob bestimmte Elemente auf API-Ebene festgelegt wurden und Sie sie nach der Erstellung der Umgebung aktualisieren müssen. If you use the Elastic Beanstalk console or EB CLI to create environments, and you want to set these options using configuration files or saved configurations, you can remove the options settings with the AWS CLI or EB CLI after the environment is created.( docs.aws.amazon.com/elasticbeanstalk/latest/dg/… )
Tyler
2

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

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

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

Siehe auch die AWS docs für andere Wege , um Veränderung Umwelt Pegeleinstellungen.

Samuel Fekete
quelle