Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Benutzerdefinierte Elastic Beanstalk-Plattformen (nicht mehr verfügbar)
Anmerkung
Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Dies schließt auch benutzerdefinierte Plattformen ein. Elastic Beanstalk unterstützt keine benutzerdefinierte Plattformen. Weitere Informationen zur Einstellung von Amazon Linux durch Elastic Beanstalk finden Sie AMI unter. Häufig gestellte Fragen zur Einstellung von Plattformen
Dieses Thema verbleibt in diesem Dokument als Referenz für alle Kunden, die die benutzerdefinierte Plattformfunktion von Elastic Beanstalk vor ihrer Einstellung verwendet haben. In der Vergangenheit unterstützten benutzerdefinierte Elastic Beanstalk-Plattformen das Erstellen einer Basis AMI von Amazon LinuxAMI, RHEL 7, RHEL 6 oder Ubuntu 16.04. AMIs Diese Betriebssysteme werden von Elastic Beanstalk nicht mehr unterstützt. Um mehr über die nicht länger unterstützte Funktion der benutzerdefinierten Plattformen zu erfahren, erweitern Sie das folgende Thema.
Eine benutzerdefinierte Plattform ist mehr eine erweiterte Anpassung als ein benutzerdefiniertes Image. Eine benutzerdefinierte Plattform gestattet Ihnen, eine ganze Plattform von Grund auf neu zu entwickeln, das Betriebssystem anzupassen sowie zusätzliche Software und Skripts hinzuzufügen, die Elastic Beanstalk auf Plattform-Instances ausführt. Diese Flexibilität ermöglicht Ihnen den Aufbau einer Plattform für eine Anwendung, die eine Sprache oder andere Infrastruktur-Software verwendet, für die Elastic Beanstalk keine verwaltete Plattform bietet. Vergleichen Sie das mit benutzerdefinierten Images, bei denen Sie ein Amazon Machine Image (AMI) für die Verwendung mit einer vorhandenen Elastic Beanstalk-Plattform ändern und Elastic Beanstalk weiterhin die Plattformskripts bereitstellt und den Software-Stack der Plattform steuert. Darüber hinaus verwenden Sie bei benutzerdefinierten Plattformen eine automatisierte, skriptgesteuerte Methode, Ihre Anpassung zu erstellen und zu verwalten, während Sie bei benutzerdefinierten Abbildern die Änderungen manuell über eine laufende Instance ausführen.
Um eine benutzerdefinierte Plattform zu erstellen, erstellen Sie eine AMI mit einem der unterstützten Betriebssysteme — Ubuntu oder Amazon Linux (die genauen Versionsnummern finden Sie im flavor
Platform.yaml-Dateiformat Eintrag unter) und fügen weitere Anpassungen hinzu. RHEL Sie erstellen Ihre eigene Elastic Beanstalk-Plattform mit Packer
Elastic Beanstalk verwaltet Packer als separate integrierte Plattform und Sie brauchen sich nicht um die Konfiguration und Versionen von Packer zu kümmern.
Sie erstellen eine Plattform, indem Sie Elastic Beanstalk eine Packer-Vorlage sowie die Skripts und Dateien zur Verfügung stellen, die die Vorlage zum Erstellen einer solchen Vorlage aufruft. AMI Diese Komponenten werden zusammen mit einer Plattformdefinitionsdatei, die die Vorlage und die Metadaten spezifiziert, in einem ZIP Archiv zusammengefasst, das als Plattformdefinitionsarchiv bezeichnet wird.
Wenn Sie eine benutzerdefinierte Plattform erstellen, starten Sie eine Umgebung mit einer einzelnen Instance ohne eine Elastic IP, die Packer ausführt. Packer startet dann eine weitere Instance, um ein Image zu erstellen. Sie können diese Umgebung für mehrere Plattformen und verschiedene Versionen jeder Plattform einsetzen.
Anmerkung
Benutzerdefinierte Plattformen sind AWS regionsspezifisch. Falls Sie Elastic Beanstalk in mehreren Regionen nutzen, müssen Sie die Plattformen in jeder Region separat erstellen.
In bestimmten Situationen werden vom Packer gestartete Instances nicht gelöscht und müssen manuell beendet werden. Informationen zum manuellen Bereinigen dieser Instances finden Sie unter Bereinigen von Instances durch Packer.
Benutzer in Ihrem Konto können Ihre benutzerdefinierten Plattformen verwenden, indem sie ARN bei der Erstellung der Umgebung eine Plattform angeben. Diese ARNs werden von dem eb platform create Befehl zurückgegeben, mit dem Sie die benutzerdefinierte Plattform erstellt haben.
Jedes Mal, wenn Sie eine benutzerdefinierte Plattform erstellen, generiert Elastic Beanstalk eine neue Plattformversion. Benutzer können den Namen einer Plattform angeben, damit nur die neueste Version der Plattform aufgerufen wird, oder eine Versionsnummer spezifizieren, um eine bestimmte Version zu erhalten.
Um beispielsweise die neueste Version der benutzerdefinierten Plattform mit der ARNMyCustomPlatformARN
, was Version 3.0 sein könnte, bereitzustellen, würde Ihre CLI EB-Befehlszeile wie folgt aussehen:
eb create -p MyCustomPlatformARN
Um Version 2.1 bereitzustellen, würde Ihre CLI EB-Befehlszeile wie folgt aussehen:
eb create -p MyCustomPlatformARN --version 2.1
Sie können eine benutzerdefinierte Plattformversion mit Tags markieren, wenn Sie sie erstellen, und Tags von vorhandenen benutzerdefinierten Plattformversionen bearbeiten. Details hierzu finden Sie unter Markieren von benutzerdefinierten Plattformversionen.
Erstellen einer benutzerdefinierten Plattform
Damit Sie eine benutzerdefinierte Plattform erstellen können, muss der Anwendungsstamm eine Plattformdefinitionsdatei enthalten, platform.yaml
. Diese definiert den Builder-Typ, mit dem die benutzerdefinierte Plattform erstellt wird. Das Format dieser Datei ist in Platform.yaml-Dateiformat beschrieben. Sie können die benutzerdefinierte Plattform von Grund auf neu erstellen oder eines der benutzerdefinierten Plattformbeispiele als Ausgangspunkt verwenden.
Verwenden eines benutzerdefinierten Plattformbeispiels
Als Alternative zum Erstellen einer eigenen benutzerdefinierten Plattform können Sie eines der Plattformdefinitionsarchiv-Beispiele für den Bootstrap der benutzerdefinierten Plattform nutzen. Die einzigen Elemente, die Sie in den Beispielen konfigurieren müssen, bevor Sie sie verwenden können, sind eine Quelle AMI und eine Region.
Anmerkung
Verwenden Sie kein nicht abgeändertes Beispiel für eine benutzerdefinierte Plattform in der Produktion. Das Ziel der Beispiele besteht darin, einige verfügbare Funktionen für eine benutzerdefinierte Plattform zu veranschaulichen, sie sind jedoch nicht für den Einsatz in der Produktion gehärtet worden.
- NodePlatform_Ubuntu.zip
-
Diese benutzerdefinierte Plattform basiert auf Ubuntu 16.04 und unterstützt Node.js 4.4.4. In den folgenden Beispielen wird diese benutzerdefinierte Plattform verwendet.
- NodePlatform_ RHEL .zip
-
Diese benutzerdefinierte Plattform basiert auf RHEL7.2 und unterstützt Node.js 4.4.4.
- NodePlatform_ .zip AmazonLinux
-
Diese benutzerdefinierte Plattform basiert auf Amazon Linux 2016.09.1 und unterstützt Node.js 4.4.4.
- TomcatPlatform_Ubuntu.zip
-
Diese benutzerdefinierte Plattform basiert auf Ubuntu 16.04 und unterstützt Tomcat 7/Java 8.
- CustomPlatform_ NodeSampleApp .zip
-
In diesem Node.js-Beispiel wird eine statische Webseite mithilfe von express und ejs angezeigt.
- CustomPlatform_ .zip TomcatSampleApp
-
In diesem Tomcat-Beispiel wird eine statische Webseite bei der Bereitstellung angezeigt.
Laden Sie das Plattformdefinitionsarchiv-Beispiel herunter: NodePlatform_Ubuntu.zip
. Diese Datei enthält eine Plattformdefinitionsdatei, eine Packer-Vorlage, Skripts, die während der Image-Erstellung von Packer ausgeführt werden, sowie Skripts und Konfigurationsdateien, die von Packer im Rahmen der Plattformerstellung auf die Builder-Instance kopiert werden.
Beispiel NodePlatform_Ubuntu.zip
|-- builder Contains files used by Packer to create the custom platform
|-- custom_platform.json Packer template
|-- platform.yaml Platform definition file
|-- ReadMe.txt Briefly describes the sample
Die Plattformdefinitionsdatei, platform.yaml
, teilt Elastic Beanstalk den Namen der Packer-Vorlage mit, custom_platform.json
.
version: "1.0"
provisioner:
type: packer
template: custom_platform.json
flavor: ubuntu1604
Die Packer-Vorlage teilt Packer mit, wie das AMIs für die Plattform erstellt wird, wobei Ubuntu AMI als Basis für das Plattform-Image für HVM Instance-Typen verwendet wird. Der Abschnitt provisioners
weist Packer an, alle Dateien im Archiv-Ordner builder
auf die Instance zu kopieren und das Skript builder.sh
auf der Instance auszuführen. Nach Abschluss des Skripts erstellt Packer ein Image von der geänderten Instance.
Elastic Beanstalk erstellt drei Umgebungsvariablen, die zum Taggen AMIs in Packer verwendet werden können:
- AWSPLATFORM_EB_ _ ARN
-
Die ARN der benutzerdefinierten Plattform.
- AWS_EB_ _ PLATFORM NAME
-
Der Name der benutzerdefinierten Plattform.
- AWS_EB_ PLATFORM VERSION
-
Die Version der benutzerdefinierten Plattform.
Die Beispieldatei custom_platform.json
nutzt diese Variablen, um die folgenden in den Skripts verwendeten Werte zu definieren:
-
platform_name
, wird festgelegt von der Dateiplatform.yaml
. -
platform_version
, wird festgelegt von der Dateiplatform.yaml
. -
platform_arn
, wird festgelegt vom Build-Hauptskriptbuilder.sh
, das sich am Ende der Beispieldateicustom_platform.json
befindet.
Die Datei custom_platform.json
enthält zwei Eigenschaften, für die Sie Werte angeben müssen: source_ami
und region
. Einzelheiten zur Auswahl der Werte für „right“ AMI und „Region“ finden Sie unter Packer-Vorlage im Repository aktualisieren
Beispiel custom_platform.json
{
"variables": {
"platform_name": "{{env `AWS_EB_PLATFORM_NAME`}}",
"platform_version": "{{env `AWS_EB_PLATFORM_VERSION`}}",
"platform_arn": "{{env `AWS_EB_PLATFORM_ARN`}}"
},
"builders": [
{
...
"region": "",
"source_ami": "",
...
}
],
"provisioners": [
{...},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo {{ .Path }}",
"scripts": [
"builder/builder.sh"
]
}
]
}
Die Skripts und andere Dateien, die Sie in das Plattformdefinitionsarchiv einbinden, sind je nach den Änderungen, die Sie an der Instance vornehmen möchten, sehr unterschiedlich. Das Plattformbeispiel enthält die folgenden Skripts:
-
00-sync-apt.sh
– Auskommentiert:apt -y update
. Wir haben den Befehl auskommentiert, weil er den Benutzer zu einer Eingabe auffordert, die die automatische Paketaktualisierung unterbricht. Dies könnte ein Ubuntu-Problem sein. Als bewährte Methode empfehlen wir jedoch weiterhin,apt -y update
auszuführen. Aus diesem Grund haben wir den Befehl zur Referenz im Beispiel-Skript beibehalten. -
01-install-nginx.sh
– Installiert nginx. -
02-setup-platform.sh
– Installiertwget
,tree
undgit
. Kopiert Hooks sowie Protokollierungskonfigurationen auf die Instance und erstellt die folgenden Verzeichnisse:-
/etc/SampleNodePlatform
– Gibt an, wohin die Container-Konfigurationsdatei während der Bereitstellung hochgeladen wird. -
/opt/elasticbeanstalk/deploy/appsource/
– Gibt an, wohin der Anwendungsquellcode während der Bereitstellung vom00-unzip.sh
-Skript hochgeladen wird (weitere Informationen zu diesem Skript finden Sie im Abschnitt Plattform-Skripttools für Ihre Elastic Beanstalk Beanstalk-Umgebungen). -
/var/app/staging/
– Gibt an, wo der Anwendungsquellcode während der Bereitstellung verarbeitet wird. -
/var/app/current/
– Gibt an, wo der Anwendungsquellcode nach der Verarbeitung ausgeführt wird. -
/var/log/nginx/healthd/
– Gibt an, wohin die Protokolle vom Agent für erweiterte Integritätsberichte geschrieben werden. -
/var/nodejs
– Gibt an, wohin die Node.js-Dateien während der Bereitstellung hochgeladen werden.
-
Verwenden Sie EBCLI, um Ihre erste benutzerdefinierte Plattform mit dem Beispielarchiv für Plattformdefinitionen zu erstellen.
So erstellen Sie eine benutzerdefinierte Plattform
-
Erstellen Sie ein Verzeichnis, in welches das benutzerdefinierte Plattformbeispiel extrahiert wird.
~$
mkdir ~/custom-platform
-
Extrahieren Sie
NodePlatform_Ubuntu.zip
in das Verzeichnis und wechseln Sie dann zu diesem Verzeichnis.~$
cd ~/custom-platform
~/custom-platform$unzip ~/NodePlatform_Ubuntu.zip
~/custom-platform$cd NodePlatform_Ubuntu
-
Bearbeiten Sie die Datei
custom_platform.json
und geben Sie Werte für die Eigenschaftenregion
undsource_ami
an. Weitere Informationen finden Sie unter Aktualisieren der Packer-Vorlage. -
Führen Sie eb platform init aus und folgen Sie den Anweisungen, um ein Plattform-Repository zu initialisieren.
Sie können eb platform zu ebp verkürzen.
Anmerkung
Windows PowerShell verwendet ebp als Befehlsalias. Wenn Sie den EB CLI in Windows ausführen PowerShell, verwenden Sie die Langform dieses Befehls:eb platform.
~/custom-platform$
eb platform init
Mit diesem Befehl wird zudem das Verzeichnis
.elasticbeanstalk
im aktuellen Verzeichnis erstellt, dann wird die Konfigurationsdateiconfig.yml
zum Verzeichnis hinzugefügt. Diese Datei wird von Elastic Beanstalk zum Erstellen der benutzerdefinierten Plattform benötigt, daher darf sie weder geändert noch gelöscht werden.Standardmäßig verwendet eb platform init den Namen des aktuellen Ordners als Bezeichnung für die benutzerdefinierte Plattform, in diesem Beispiel also
custom-platform
. -
Führen Sie eb platform createden Befehl aus, um eine Packer-Umgebung zu starten und ARN die benutzerdefinierte Plattform abzurufen. Diesen Wert benötigen Sie später zum Erstellen der Umgebung für die benutzerdefinierte Plattform.
~/custom-platform$
eb platform create
...Standardmäßig erstellt Elastic Beanstalk das Instance-Profil
aws-elasticbeanstalk-custom-platform-ec2-role
für benutzerdefinierte Plattformen. Wenn Sie stattdessen ein vorhandenes Instance-Profil nutzen möchten, fügen Sie die Option-ip
zum Befehl eb platform create hinzu.INSTANCE_PROFILE
Anmerkung
Falls Sie das Instance-Standardprofil
aws-elasticbeanstalk-ec2-role
von Elastic Beanstalk nutzen, kann Packer die benutzerdefinierte Plattform nicht erstellen.Das EB CLI zeigt die Ereignisausgabe der Packer-Umgebung an, bis der Build abgeschlossen ist. Sie können die Ereignisanzeige verlassen, indem Sie Strg+C drücken.
-
Mit dem Befehl eb platform logs können Sie die Protokolle auf Fehler überprüfen.
~/custom-platform$
eb platform logs
... -
Mit eb platform events können Sie den Prozess später prüfen.
~/custom-platform$
eb platform events
... -
Überprüfen Sie den Status der Plattform mit eb platform status.
~/custom-platform$
eb platform status
...
Nach Abschluss des Vorgangs steht Ihnen eine Plattform zur Verfügung, auf der Sie eine Elastic Beanstalk-Umgebung starten können.
Sie können die benutzerdefinierte Plattform einsetzen, um eine neue Umgebung mit der Konsole zu erstellen. Siehe Der Assistent zum Erstellen einer neuen Umgebung.
So starten Sie eine Umgebung auf der benutzerdefinierten Plattform
-
Erstellen Sie ein Verzeichnis für die Anwendung.
~$
mkdir custom-platform-app
~$cd ~/custom-platform-app
-
Initialisieren Sie ein Anwendungs-Repository.
~/custom-platform-app$
eb init
... -
Laden Sie die Beispielanwendung (NodeSampleApp.zip) herunter.
-
Extrahieren Sie die Beispielanwendung.
~/custom-platform-app$
unzip
~/
NodeSampleApp.zip -
Laufeb create -p
CUSTOM-PLATFORM-ARN
, woCUSTOM-PLATFORM-ARN
wird von einem eb platform create Befehl ARN zurückgegeben, um eine Umgebung zu starten, auf der Ihre benutzerdefinierte Plattform ausgeführt wird.~/custom-platform-app$
eb create -p
...CUSTOM-PLATFORM-ARN
Inhalte des Plattformdefinitionsarchivs
Ein Plattformdefinitionsarchiv ist die Plattformentsprechung vom Quell-Bundle der Anwendung. Das Plattformdefinitionsarchiv ist eine ZIP Datei, die eine Plattformdefinitionsdatei, eine Packer-Vorlage sowie die Skripts und Dateien enthält, die von der Packer-Vorlage zur Erstellung Ihrer Plattform verwendet wurden.
Anmerkung
Wenn Sie das EB verwenden, CLI um eine benutzerdefinierte Plattform zu erstellen, CLI erstellt das EB ein Plattformdefinitionsarchiv aus den Dateien und Ordnern in Ihrem Plattform-Repository, sodass Sie das Archiv nicht manuell erstellen müssen.
Die Plattformdefinitionsdatei ist eine im YAML -Format formatierte Datei, die benannt werden muss platform.yaml
und sich im Stammverzeichnis Ihres Plattformdefinitionsarchivs befinden muss. Unter Erstellen einer benutzerdefinierten Plattform finden Sie eine Liste der erforderlichen und optionalen Schlüssel, die in einer Plattformdefinitionsdatei unterstützt werden.
Die Packer-Vorlage muss nicht nach einer bestimmten Konvention benannt werden, jedoch muss dieser Dateiname mit der Provisioner-Vorlage, die in der Plattformdefinitionsdatei angegeben ist, übereinstimmen. Anleitungen zum Erstellen von Packer-Vorlagen finden Sie in der offiziellen Packer-Dokumentation
Bei den anderen Dateien in Ihrem Plattformdefinitionsarchiv handelt es sich um Skripts und Dateien, die von der Vorlage verwendet werden, um eine Instanz anzupassen, bevor eine erstellt wird. AMI
Benutzerdefinierte Plattform-Hooks
Elastic Beanstalk verwendet eine standardisierte Verzeichnisstruktur für Hooks auf benutzerdefinierten Plattformen. Dies sind Skripts, die bei Lebenszyklusereignissen und als Reaktion auf Verwaltungsvorgänge ausgeführt werden, z. B. wenn Instances in der Umgebung gestartet werden oder wenn ein Benutzer eine Bereitstellung initiiert oder die Funktion für den Neustart des Anwendungsservers nutzt.
Platzieren Sie Skripts, die Hooks auslösen sollen, in einem der Unterordner des Ordners /opt/elasticbeanstalk/hooks/
.
Warnung
Die Verwendung benutzerdefinierter Plattform-Hooks auf verwalteten Plattformen wird nicht unterstützt. Benutzerdefinierte Plattform-Hooks sind für benutzerdefinierte Plattformen bestimmt. Auf von Elastic Beanstalk verwalteten Plattformen funktionieren sie möglicherweise anders oder weisen Probleme auf und das Verhalten kann sich je nach Plattform unterscheiden. Auf Amazon AMI Linux-Plattformen (vor Amazon Linux 2) funktionieren sie in einigen Fällen möglicherweise immer noch auf nützliche Weise. Verwenden Sie sie mit Vorsicht.
Benutzerdefinierte Plattform-Hooks sind eine ältere Funktion, die auf Amazon AMI Linux-Plattformen verfügbar ist. Auf Amazon Linux 2-Plattformen werden benutzerdefinierte Plattform-Hooks im Ordner /opt/elasticbeanstalk/hooks/
vollständig eingestellt. Elastic Beanstalk liest oder führt sie nicht aus. Amazon Linux 2-Plattformen unterstützen eine neue Art von Plattform-Hooks, die speziell zur Erweiterung von verwalteten Elastic Beanstalk-Plattformen entwickelt wurden. Sie können benutzerdefinierte Skripte und Programme direkt zu einem Hook-Verzeichnis in Ihrem Anwendungs-Quell-Bundle hinzufügen. Elastic Beanstalk führt sie während verschiedener Instance-Bereitstellungsphasen aus. Weitere Informationen erhalten Sie, indem Sie den Abschnitt Plattform-Hooks unter Erweitern von Elastic Beanstalk-Linux-Plattformen erweitern.
Hooks sind in den folgenden Ordnern organisiert:
-
appdeploy
– Skripts, die während der Anwendungsbereitstellung ausgeführt werden. Wenn neue Instances gestartet werden oder ein Client eine neue Versionsbereitstellung initiiert, führt Elastic Beanstalk eine Anwendungsbereitstellung aus. -
configdeploy
– Skripts, die im Rahmen von clientseitigen Konfigurationsaktualisierungen, welche sich auf die Softwarekonfiguration der Instance auswirken (z. B. durch Festlegen von Umgebungseigenschaften oder Aktivieren der Protokollrotation an Amazon S3), ausgeführt werden. -
restartappserver
– Skripts, die bei einem clientseitigen Neustart des Anwendungsservers ausgeführt werden. -
preinit
– Skripts, die während des Instance-Bootstrapping ausgeführt werden. -
postinit
– Skripts, die nach dem Instance-Bootstrapping ausgeführt werden.
Die Ordner appdeploy
, configdeploy
und restartappserver
enthalten die Unterordner pre
, enact
und post
. In den einzelnen Vorgangsphasen werden alle Skripts im Ordner pre
in alphabetischer Reihenfolge ausgeführt, dann folgen diejenigen im Ordner enact
und anschließend diejenigen im Ordner post
.
Beim Starten einer Instance führt Elastic Beanstalk preinit
, appdeploy
und postinit
in dieser Reihenfolge aus. Bei nachfolgenden Bereitstellungen auf ausgeführten Instances führt Elastic Beanstalk die appdeploy
-Hooks aus. Die configdeploy
-Hooks werden ausgeführt, wenn ein Benutzer die Instance-Softwarekonfigurationseinstellungen aktualisiert. Die restartappserver
-Hooks werden nur ausgeführt, wenn ein Benutzer den Neustart des Anwendungsservers initiiert.
Falls die Skripts auf Fehler treffen, werden sie mit einem Status ungleich null beendet und schreiben den fehlgeschlagenen Vorgang in die Datei stderr
. Die in die Datei stderr
geschriebene Nachricht wird im Ereignis angezeigt, das im Falle eines fehlgeschlagenen Vorgangs ausgegeben wird. Zudem werden diese Informationen von Elastic Beanstalk in der Protokolldatei /var/log/eb-activity.log
erfasst. Wenn der Vorgang nicht als fehlgeschlagen gelten soll, muss 0 (Null) zurückgegeben werden. Nachrichten, die in die Datei stderr
oder stdout
geschrieben werden, erscheinen in den Bereitstellungsprotokollen, werden aber nur bei einem fehlgeschlagenen Vorgang im Ereignis-Stream angegeben.
Bereinigen von Instances durch Packer
Unter bestimmten Umständen, z. B. wenn der Packer-Erstellungsprozess vorzeitig abgebrochen wird, werden von Packer gestartete Instances nicht bereinigt. Diese Instances sind nicht Teil der Elastic Beanstalk Beanstalk-Umgebung und können nur mithilfe des EC2 Amazon-Service angezeigt und beendet werden.
So bereinigen Sie diese Instances manuell
-
Öffnen Sie die EC2Amazon-Konsole
. -
Stellen Sie sicher, dass Sie sich in derselben AWS Region befinden, in der Sie die Instance mit Packer erstellt haben.
-
Wählen Sie unter Ressourcen
N
Laufende Instances, woN
gibt die Anzahl der laufenden Instanzen an. -
Klicken Sie in das Abfragetextfeld.
-
Wählen Sie das Tag Name aus.
-
Geben Sie packer ein.
Die Abfrage sollte wie folgt aussehen: tag:Name: packer
-
Wählen Sie die Instances aus, die mit der Abfrage übereinstimmen.
-
Wenn der Wert für Instance State (Instance-Status) mit running (wird ausgeführt) angegeben wird, wählen Sie Actions (Aktionen), Instance State (Instance-Status), Stop (Anhalten) und dann Actions (Aktionen), Instance State (Instance-Status), Terminate (Beenden) aus.
Platform.yaml-Dateiformat
Die platform.yaml
-Datei hat folgendes Format:
version: "version-number
"
provisioner:
type: provisioner-type
template: provisioner-template
flavor: provisioner-flavor
metadata:
maintainer: metadata-maintainer
description: metadata-description
operating_system_name: metadata-operating_system_name
operating_system_version: metadata-operating_system_version
programming_language_name: metadata-programming_language_name
programming_language_version: metadata-programming_language_version
framework_name: metadata-framework_name
framework_version: metadata-framework_version
option_definitions:
- namespace: option-def-namespace
option_name: option-def-option_name
description: option-def-description
default_value: option-def-default_value
option_settings:
- namespace: "option-setting-namespace
"
option_name: "option-setting-option_name
"
value: "option-setting-value
"
Ersetzen Sie die Platzhalter mit folgenden Werten:
version-number
-
Erforderlich Die Version der YAML Definition. Der Wert muss
1.0
sein. provisioner-type
-
Erforderlich Der Typ des Builder, der für die Erstellung der benutzerdefinierten Plattform verwendet wurde. Der Wert muss
packer
sein. provisioner-template
-
Erforderlich Die JSON Datei enthält die Einstellungen für
provisioner-type
. provisioner-flavor
-
Optional. Das für die verwendete BasisbetriebssystemAMI. Eine der beiden folgenden Komponenten:
- amazon (Standard)
-
Amazon Linux. Wenn nicht angegeben, wird die aktuelle Version von Amazon Linux verwendet, wenn die Plattform erstellt wird.
Amazon Linux 2 ist keine unterstützte Betriebssystemvariante.
- ubuntu1604
Ubuntu 16.04 LTS
- rhel7
RHEL7
- rhel6
RHEL6
metadata-maintainer
-
Optional. Kontaktinformationen für den Eigentümer der Plattform (100 Zeichen).
metadata-description
-
Optional. Beschreibung der Plattform (2000 Zeichen).
metadata-operating_system_name
-
Optional. Name der Plattform im Betriebssystem (50 Zeichen). Dieser Wert ist verfügbar, wenn die Ausgabe nach dem gefiltert wird ListPlatformVersionsAPI.
metadata-operating_system_version
-
Optional. Version der Plattform im Betriebssystem (20 Zeichen).
metadata-programming_language_name
-
Optional. Programmiersprache, die von der Plattform unterstützt wird (50 Zeichen)
metadata-programming_language_version
-
Optional. Version der Sprache im Betriebssystem (20 Zeichen).
metadata-framework_name
-
Optional. Der Name des Web-Framework, das von der Plattform verwendet wird (50 Zeichen).
metadata-framework_version
-
Optional. Version des Web-Framework im Betriebssystem (20 Zeichen).
option-def-namespace
-
Optional. Ein Namespace unter
aws:elasticbeanstalk:container:custom
(100 Zeichen) option-def-option_name
-
Optional. Der Name der Option (100 Zeichen). Sie können bis zu 50 benutzerdefinierte Konfigurationsoptionen festlegen, die die Plattform Benutzern bereitstellt.
option-def-description
-
Optional. Beschreibung der Option (1024 Zeichen).
option-def-default_value
-
Optional. Der Standardwert wird verwendet, wenn der Benutzer keinen angibt.
Das folgende Beispiel erstellt die Option
NPM_START
.options_definitions: - namespace: "aws:elasticbeanstalk:container:custom:application" option_name: "NPM_START" description: "Default application startup command" default_value: "node application.js"
option-setting-namespace
-
Optional. Namespace der Option.
option-setting-option_name
-
Optional. Name der Option. Sie können bis zu 50 Optionen von Elastic Beanstalk angeben.
option-setting-value
-
Optional. Der Wert wird verwendet, wenn der Benutzer keinen angibt.
Das folgende Beispiel erstellt die Option
TEST
.option_settings: - namespace: "aws:elasticbeanstalk:application:environment" option_name: "TEST" value: "This is a test"
Markieren von benutzerdefinierten Plattformversionen
Sie können Tags auf Ihre AWS Elastic Beanstalk benutzerdefinierten Plattformversionen anwenden. Tags sind Schlüssel-Wert-Paare, die Ressourcen zugeordnet AWS sind. Weitere Informationen zum Elastic Beanstalk-Ressourcen-Tagging, zu Anwendungsfälle, Einschränkungen für Tag-Schlüssel und -Werte sowie zu unterstützten Ressourcentypen finden Sie unter Markieren von Elastic Beanstalk-Anwendungsressourcen.
Sie können Tags angeben, wenn Sie eine benutzerdefinierte Plattformversion erstellen. In einer vorhandenen benutzerdefinierten Plattformversion können Sie Tags hinzufügen oder entfernen sowie die Werte von vorhandenen Tags aktualisieren. Sie können jeder benutzerdefinierten Plattformversion bis zu 50 Tags hinzufügen.
Hinzufügen von Tags beim Erstellen einer benutzerdefinierten Plattformversion
Wenn Sie die EB verwendenCLI, um Ihre benutzerdefinierte Plattformversion zu erstellen, verwenden Sie die --tags
Option mit, eb
platform create um Tags hinzuzufügen.
~/workspace/my-app$ eb platform create --tags mytag1
=value1
,mytag2
=value2
Fügen Sie mit dem AWS CLI oder anderen API basierten Clients Tags hinzu, indem Sie den --tags
Parameter im create-platform-version Befehl verwenden.
$ aws elasticbeanstalk create-platform-version \
--tags Key=mytag1
,Value=value1
Key=mytag2
,Value=value2
\
--platform-name my-platform
--platform-version 1.0.0
--platform-definition-bundle S3Bucket=amzn-s3-demo-bucket
,S3Key=sample.zip
Verwalten von Tags einer vorhandenen benutzerdefinierten Plattformversion
In einer vorhandenen benutzerdefinierten Elastic Beanstalk-Plattformversion können Sie Tags hinzufügen, aktualisieren und löschen.
Wenn Sie das EB verwendenCLI, um Ihre benutzerdefinierte Plattformversion zu aktualisieren, verwenden Sie es, eb tags um Tags hinzuzufügen, zu aktualisieren, zu löschen oder aufzulisten.
Beispiel: Der folgende Befehl listet die Tags in einer benutzerdefinierten Plattformversion auf.
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id
:platform/my-platform
/1.0.0
"
Mit dem folgenden Befehl wird das Tag mytag1
aktualisiert und das Tag mytag2
gelöscht.
~/workspace/my-app$ eb tags --update mytag1
=newvalue
--delete mytag2
\
--resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id
:platform/my-platform
/1.0.0
"
Eine umfassende Liste der Optionen sowie weitere Beispiele finden Sie unter eb tags
.
Verwenden Sie bei den AWS CLI oder anderen API basierten Clients den list-tags-for-resource Befehl, um die Tags einer benutzerdefinierten Plattformversion aufzulisten.
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id
:platform/my-platform
/1.0.0
"
Verwenden Sie den Befehl update-tags-for-resource zum Hinzufügen, Aktualisieren und Löschen von Tags in einer benutzerdefinierten Plattformversion.
$ aws elasticbeanstalk update-tags-for-resource \
--tags-to-add Key=mytag1
,Value=newvalue
--tags-to-remove mytag2
\
--resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id
:platform/my-platform
/1.0.0
"
Geben Sie sowohl hinzuzufügende als auch zu aktualisierende Tags im Parameter --tags-to-add
des Befehls update-tags-for-resource an. Wenn ein Tag nicht vorhanden ist, wird es hinzugefügt, andernfalls wird es aktualisiert.
Anmerkung
Um einige der EB CLI und AWS CLI Befehle mit einer benutzerdefinierten Plattformversion von Elastic Beanstalk verwenden zu können, benötigen Sie die Version der benutzerdefinierten Plattform. ARN Sie können die mit ARN dem folgenden Befehl abrufen.
$ aws elasticbeanstalk list-platform-versions
Verwenden Sie die --filters
-Option zum Filtern der Leistung Ihrer benutzerdefinierten Plattform.