

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.

# Bereitstellung von Go-Anwendungen mit Elastic Beanstalk
<a name="create_deploy_go"></a>

Dieses Kapitel enthält Anweisungen zur Konfiguration und Bereitstellung Ihrer Go-Webanwendung für. AWS Elastic Beanstalk Elastic Beanstalk macht es einfach, Ihre Go-Webanwendungen mithilfe von Amazon Web Services bereitzustellen, zu verwalten und zu skalieren.

Sie können Ihre Anwendung in nur wenigen Minuten mithilfe der Elastic Beanstalk Command Line Interface (EB CLI) oder der Elastic Beanstalk Beanstalk-Konsole bereitstellen. Nachdem Sie Ihre Elastic Beanstalk Beanstalk-Anwendung bereitgestellt haben, können Sie weiterhin die EB-CLI verwenden, um Ihre Anwendung und Umgebung zu verwalten, oder Sie können die Elastic Beanstalk Beanstalk-Konsole oder die. AWS CLI APIs

Folgen Sie den step-by-step Anweisungen [QuickStart für Go](go-quickstart.md) zum Erstellen und Bereitstellen einer *Hello World Go-Webanwendung* mit der EB CLI.

**Topics**
+ [

# QuickStart: Eine Go-Anwendung auf Elastic Beanstalk bereitstellen
](go-quickstart.md)
+ [

# Einrichtung Ihrer Go-Entwicklungsumgebung für Elastic Beanstalk
](go-devenv.md)
+ [

# Verwenden der Go-Plattform von Elastic Beanstalk
](go-environment.md)

# QuickStart: Eine Go-Anwendung auf Elastic Beanstalk bereitstellen
<a name="go-quickstart"></a>

Dieses QuickStart Tutorial führt Sie durch den Prozess der Erstellung einer Go-Anwendung und deren Bereitstellung in einer AWS Elastic Beanstalk Umgebung.

**Nicht für den Produktionsgebrauch**  
Beispiele dienen nur zur Veranschaulichung. Verwenden Sie keine Beispielanwendungen in der Produktion.

**Topics**
+ [

## Ihr AWS Konto
](#go-quickstart-aws-account)
+ [

## Voraussetzungen
](#go-quickstart-prereq)
+ [

## Schritt 1: Erstellen Sie eine Go-Anwendung
](#go-quickstart-create-app)
+ [

## Schritt 2: Stellen Sie Ihre Go-Anwendung mit der EB CLI bereit
](#go-quickstart-deploy)
+ [

## Schritt 3: Führen Sie Ihre Anwendung auf Elastic Beanstalk aus
](#go-quickstart-run-eb-ap)
+ [

## Schritt 4: Bereinigen
](#go-tutorial-cleanup)
+ [

## AWS Ressourcen für Ihre Anwendung
](#go-quickstart-eb-resources)
+ [

## Nächste Schritte
](#go-quickstart-next-steps)
+ [

## Bereitstellung mit der Elastic Beanstalk Beanstalk-Konsole
](#go-quickstart-console)

## Ihr AWS Konto
<a name="go-quickstart-aws-account"></a>

Wenn Sie noch kein AWS Kunde sind, müssen Sie ein AWS Konto erstellen. Wenn Sie sich registrieren, können Sie auf Elastic Beanstalk und andere AWS Dienste zugreifen, die Sie benötigen.

Wenn Sie bereits ein AWS Konto haben, können Sie weitermachen zu. [Voraussetzungen](#go-quickstart-prereq)

### Erstellen Sie ein AWS Konto
<a name="go-quickstart-aws-account-procedure"></a>

#### Melde dich an für ein AWS-Konto
<a name="sign-up-for-aws"></a>

Wenn Sie noch keine haben AWS-Konto, führen Sie die folgenden Schritte aus, um eine zu erstellen.

**Um sich für eine anzumelden AWS-Konto**

1. Öffnen Sie [https://portal.aws.amazon.com/billing/die Anmeldung.](https://portal.aws.amazon.com/billing/signup)

1. Folgen Sie den Online-Anweisungen.

   Während der Anmeldung erhalten Sie einen Telefonanruf oder eine Textnachricht und müssen einen Verifizierungscode über die Telefontasten eingeben.

   Wenn Sie sich für eine anmelden AWS-Konto, *Root-Benutzer des AWS-Kontos*wird eine erstellt. Der Root-Benutzer hat Zugriff auf alle AWS-Services und Ressourcen des Kontos. Als bewährte Sicherheitsmethode weisen Sie einem Benutzer Administratorzugriff zu und verwenden Sie nur den Root-Benutzer, um [Aufgaben auszuführen, die Root-Benutzerzugriff erfordern](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS sendet Ihnen nach Abschluss des Anmeldevorgangs eine Bestätigungs-E-Mail. Du kannst jederzeit deine aktuellen Kontoaktivitäten einsehen und dein Konto verwalten, indem du zu [https://aws.amazon.com/](https://aws.amazon.com/)gehst und **Mein Konto** auswählst.

#### Erstellen eines Benutzers mit Administratorzugriff
<a name="create-an-admin"></a>

Nachdem Sie sich für einen angemeldet haben AWS-Konto, sichern Sie Ihren Root-Benutzer des AWS-Kontos AWS IAM Identity Center, aktivieren und erstellen Sie einen Administratorbenutzer, sodass Sie den Root-Benutzer nicht für alltägliche Aufgaben verwenden.

**Sichern Sie Ihre Root-Benutzer des AWS-Kontos**

1.  Melden Sie sich [AWS-Managementkonsole](https://console.aws.amazon.com/)als Kontoinhaber an, indem Sie **Root-Benutzer** auswählen und Ihre AWS-Konto E-Mail-Adresse eingeben. Geben Sie auf der nächsten Seite Ihr Passwort ein.

   Hilfe bei der Anmeldung mit dem Root-Benutzer finden Sie unter [Anmelden als Root-Benutzer](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) im *AWS-Anmeldung -Benutzerhandbuch* zu.

1. Aktivieren Sie die Multi-Faktor-Authentifizierung (MFA) für den Root-Benutzer.

   Anweisungen finden Sie unter [Aktivieren eines virtuellen MFA-Geräts für Ihren AWS-Konto Root-Benutzer (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) im *IAM-Benutzerhandbuch*.

**Erstellen eines Benutzers mit Administratorzugriff**

1. Aktivieren Sie das IAM Identity Center.

   Anweisungen finden Sie unter [Aktivieren AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

1. Gewähren Sie einem Administratorbenutzer im IAM Identity Center Benutzerzugriff.

   *Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie IAM-Identity-Center-Verzeichnis im Benutzerhandbuch unter [Benutzerzugriff mit der Standardeinstellung konfigurieren](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html).AWS IAM Identity Center *

**Anmelden als Administratorbenutzer**
+ Um sich mit Ihrem IAM-Identity-Center-Benutzer anzumelden, verwenden Sie die Anmelde-URL, die an Ihre E-Mail-Adresse gesendet wurde, als Sie den IAM-Identity-Center-Benutzer erstellt haben.

  Hilfe bei der Anmeldung mit einem IAM Identity Center-Benutzer finden Sie [im *AWS-Anmeldung Benutzerhandbuch* unter Anmeldung beim AWS Access-Portal](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html).

**Weiteren Benutzern Zugriff zuweisen**

1. Erstellen Sie im IAM-Identity-Center einen Berechtigungssatz, der den bewährten Vorgehensweisen für die Anwendung von geringsten Berechtigungen folgt.

   Anweisungen hierzu finden Sie unter [ Berechtigungssatz erstellen](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

1. Weisen Sie Benutzer einer Gruppe zu und weisen Sie der Gruppe dann Single Sign-On-Zugriff zu.

   Eine genaue Anleitung finden Sie unter [ Gruppen hinzufügen](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

## Voraussetzungen
<a name="go-quickstart-prereq"></a>

Um die Verfahren in diesem Leitfaden zu befolgen, benötigen Sie ein Befehlszeilen-Terminal oder eine Shell für die Ausführung der Befehle. Befehle werden ggf. in Auflistungen mit einem vorangestellten Eingabeaufforderungssymbol (\$1) und dem Namen des aktuellen Verzeichnisses angezeigt.

```
~/eb-project$ this is a command
this is output
```

In Linux und macOS können Sie Ihren bevorzugten Shell- und Paket-Manager verwenden. Unter Windows können Sie [das Windows-Subsystem für Linux installieren](https://docs.microsoft.com/en-us/windows/wsl/install-win10), um eine Windows-integrierte Version von Ubuntu und Bash zu erhalten.

### EB-CLI
<a name="go-quickstart-prereq.ebcli"></a>

Dieses Tutorial verwendet die Befehlszeilenschnittstelle Elastic Beanstalk Command Line Interface (EB CLI). Detaillierte Anweisungen zum Installieren und Konfigurieren der EB CLI finden Sie unter [EB CLI mit Setup-Skript installieren (empfohlen)](eb-cli3.md#eb-cli3-install) und [Konfigurieren der EB CLI](eb-cli3-configuration.md).

## Schritt 1: Erstellen Sie eine Go-Anwendung
<a name="go-quickstart-create-app"></a>

Erstellen Sie ein Projektverzeichnis.

```
~$ mkdir eb-go
~$ cd eb-go
```

Erstellen Sie anschließend eine Anwendung, die Sie mit Elastic Beanstalk bereitstellen. Wir werden einen „Hello World“ RESTful -Webservice erstellen.

In diesem Beispiel wird eine benutzerdefinierte Begrüßung gedruckt, die je nach Pfad, der für den Zugriff auf den Service verwendet wurde, variiert.

Erstellen Sie in diesem Verzeichnis eine Textdatei mit dem Namen `application.go` mit folgendem Inhalt.

**Example `~/eb-go/application.go`**  

```
package main

import (
	"fmt"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	if r.URL.Path == "/" {
		fmt.Fprintf(w, "Hello World! Append a name to the URL to say hello. For example, use %s/Mary to say hello to Mary.", r.Host)
	} else {
		fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
	}
}

func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":5000", nil)
}
```

## Schritt 2: Stellen Sie Ihre Go-Anwendung mit der EB CLI bereit
<a name="go-quickstart-deploy"></a>

Jetzt erstellen Sie die Anwendungsumgebung und stellen die konfigurierte Anwendung in Elastic Beanstalk bereit.

**Erstellen einer Umgebung und Bereitstellen der Go-Anwendung**

1. Initialisieren Sie mit dem Befehl **eb init** das EB CLI-Repository.

   ```
   ~/eb-go$ eb init -p go go-tutorial --region us-east-2
   Application go-tutorial has been created.
   ```

   Dieser Befehl erstellt eine Anwendung mit dem Namen `go-tutorial` und konfiguriert Ihr lokales Repository so, dass Umgebungen mit der neuesten Go-Plattformversion erstellt werden.

1. (Optional) Führen Sie den Vorgang **eb init** erneut aus, um ein Standardschlüsselpaar zu konfigurieren, sodass Sie SSH verwenden können, um eine Verbindung zu der EC2 Instance herzustellen, auf der Ihre Anwendung ausgeführt wird.

   ```
   ~/eb-go$ eb init
   Do you want to set up SSH for your instances?
   (y/n): y
   Select a keypair.
   1) my-keypair
   2) [ Create new KeyPair ]
   ```

   Wählen Sie ein Schlüsselpaar aus (sofern vorhanden) oder befolgen Sie die Anweisungen, um ein Schlüsselpaar zu erstellen. Falls keine Anweisungen angezeigt werden oder Sie die Einstellungen später ändern möchten, führen Sie **eb init -i** aus.

1. Verwenden Sie **eb create**, um eine Umgebung zu erstellen und die Anwendung darin bereitzustellen. Elastic Beanstalk erstellt automatisch eine Zip-Datei für Ihre Anwendung und startet sie auf Port 5000.

   ```
   ~/eb-go$ eb create go-env
   ```

   Es dauert etwa fünf Minuten, bis Elastic Beanstalk Ihre Umgebung erstellt hat.

## Schritt 3: Führen Sie Ihre Anwendung auf Elastic Beanstalk aus
<a name="go-quickstart-run-eb-ap"></a>

Wenn der Prozess zur Erstellung Ihrer Umgebung abgeschlossen ist, öffnen Sie Ihre Website mit. **eb open**

```
~/eb-go$ eb open
```

Herzlichen Glückwunsch\$1 Sie haben eine Go-Anwendung mit Elastic Beanstalk bereitgestellt\$1 Es wird ein Browserfenster mit dem für die Anwendung erstellten Domainnamen geöffnet.

## Schritt 4: Bereinigen
<a name="go-tutorial-cleanup"></a>

Sie können Ihre Umgebung beenden, wenn Sie mit der Arbeit an Ihrer Anwendung fertig sind. Elastic Beanstalk beendet alle AWS Ressourcen, die mit Ihrer Umgebung verknüpft sind.

Führen Sie den folgenden Befehl aus, um Ihre Elastic Beanstalk Beanstalk-Umgebung mit der EB-CLI zu beenden.

```
~/eb-go$ eb terminate
```

## AWS Ressourcen für Ihre Anwendung
<a name="go-quickstart-eb-resources"></a>

Sie haben gerade eine Einzelinstanzanwendung erstellt. Es dient als einfache Beispielanwendung mit einer einzigen EC2 Instanz, sodass kein Lastenausgleich oder auto Skalierung erforderlich sind. Für Einzelinstanzanwendungen erstellt Elastic Beanstalk die folgenden Ressourcen: AWS 
+ **EC2 Instanz** — Eine EC2 virtuelle Maschine von Amazon, die so konfiguriert ist, dass sie Web-Apps auf der von Ihnen ausgewählten Plattform ausführt.

  Jede Plattform führt eine andere Gruppe von Software, Konfigurationsdateien und Skripts zur Unterstützung einer bestimmten Sprachversion, eines Framework, Webcontainers oder einer Kombination daraus aus. Die meisten Plattformen verwenden entweder Apache oder nginx als Reverse-Proxy, der Web-Datenverkehr vor Ihrer Web-App verarbeitet, Anforderungen an sie weiterleitet, statische Komponenten verarbeitet und Zugriffs- und Fehlerprotokolle generiert.
+ **Instance-Sicherheitsgruppe** — Eine EC2 Amazon-Sicherheitsgruppe, die so konfiguriert ist, dass sie eingehenden Datenverkehr auf Port 80 zulässt. Diese Ressource ermöglicht es dem HTTP-Verkehr vom Load Balancer, die EC2 Instance zu erreichen, auf der Ihre Web-App ausgeführt wird. Standardmäßig ist Datenverkehr ist auf anderen Ports nicht zulässig.
+ **Amazon S3-Bucket** – Ein Speicherort für Ihren Quellcode, Protokolle und andere Artefakte, die bei der Verwendung von Elastic Beanstalk erstellt werden.
+ ** CloudWatch Amazon-Alarme** — Zwei CloudWatch Alarme, die die Auslastung der Instances in Ihrer Umgebung überwachen und ausgelöst werden, wenn die Last zu hoch oder zu niedrig ist. Wenn ein Alarm ausgelöst wird, wird Ihre Auto Scaling-Gruppe nach oben oder nach unten skaliert.
+ **CloudFormation stack** — Elastic Beanstalk verwendet CloudFormation , um die Ressourcen in Ihrer Umgebung zu starten und Konfigurationsänderungen zu propagieren. Die Ressourcen werden in einer Vorlage definiert, die Sie in der [CloudFormation -Konsole](https://console.aws.amazon.com/cloudformation) anzeigen können.
+  **Domainname** *— Ein Domainname, der in der Form an Ihre Web-App weitergeleitet wird. *subdomain* *region*.elasticbeanstalk.com*. 

Elastic Beanstalk verwaltet all diese Ressourcen. Wenn Sie die Umgebung beenden, werden alle darin enthaltenen Ressourcen von Elastic Beanstalk beendet.

## Nächste Schritte
<a name="go-quickstart-next-steps"></a>

Nachdem Sie eine Umgebung erstellt haben, in der eine Anwendung ausgeführt wird, können Sie jederzeit eine neue Version der Anwendung oder eine andere Anwendung bereitstellen. Die Bereitstellung einer neuen Anwendungsversion ist sehr schnell, da dafür keine Bereitstellung oder Neustarts von Instances erforderlich sind. EC2 Sie können Ihre neue Umgebung auch mit der Elastic Beanstalk Beanstalk-Konsole erkunden. Ausführliche Schritte finden [Sie unter Erkunden Sie Ihre Umgebung](GettingStarted.md#GettingStarted.Explore) im Kapitel *Erste Schritte* dieses Handbuchs.

Wenn Sie ein oder zwei Beispielanwendungen bereitgestellt haben, können Sie mit der lokalen Entwicklung und Ausführung von Go-Anwendungen beginnen. Informationen dazu finden Sie unter [Einrichtung Ihrer Go-Entwicklungsumgebung für Elastic Beanstalk](go-devenv.md).

## Bereitstellung mit der Elastic Beanstalk Beanstalk-Konsole
<a name="go-quickstart-console"></a>

Sie können die Beispielanwendung auch mit der Elastic Beanstalk Beanstalk-Konsole starten. Ausführliche Schritte finden Sie unter [Erstellen einer Beispielanwendung](GettingStarted.md#GettingStarted.CreateApp) im Kapitel *Erste Schritte* dieses Handbuchs.

# Einrichtung Ihrer Go-Entwicklungsumgebung für Elastic Beanstalk
<a name="go-devenv"></a>

Dieses Thema enthält Anweisungen zum Einrichten einer Go-Entwicklungsumgebung, in der Sie Ihre Anwendung lokal testen können, bevor Sie sie bereitstellen. AWS Elastic Beanstalk Es verweist auch auf Websites, die Installationsanweisungen für nützliche Tools bereitstellen. 

## Installieren von Go
<a name="go-devenv-go"></a>

Zum lokalen Ausführen von Go-Anwendungen installieren Sie Go. Wenn Sie keine bestimmte Version benötigen, laden Sie die neueste Version herunter, die Elastic Beanstalk unterstützt. Eine Liste der unterstützten Versionen finden Sie unter [Go](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go) im Dokument *AWS Elastic Beanstalk -Plattformen*.

Laden Sie Go unter [https://golang herunter. org/doc/install](https://golang.org/doc/install).

## Das AWS SDK for Go installieren
<a name="go-devenv-awssdk"></a>

Wenn Sie AWS Ressourcen von Ihrer Anwendung aus verwalten müssen, installieren Sie das AWS SDK for Go mit dem folgenden Befehl.

```
$ go get github.com/aws/aws-sdk-go
```

Weitere Informationen finden Sie unter [AWS SDK for Go](https://aws.amazon.com/sdk-for-go/).

# Verwenden der Go-Plattform von Elastic Beanstalk
<a name="go-environment"></a>

In diesem Thema wird beschrieben, wie Sie Ihre Go-Anwendungen auf Elastic Beanstalk konfigurieren, erstellen und ausführen.

AWS Elastic Beanstalk unterstützt eine Reihe von Plattformzweigen für verschiedene Versionen der Go-Programmiersprache. Eine vollständige Liste finden [Sie unter Go](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go) im Dokument *AWS Elastic Beanstalk Plattformen*.

Bei einfachen Go-Anwendungen gibt es zwei Möglichkeiten, Ihre Anwendung bereitzustellen:
+ Stellen Sie ein Quell-Bundle mit einer Quelldatei im Stammverzeichnis namens `application.go` bereit, das das Hauptpaket Ihrer Anwendung enthält. Elastic Beanstalk entwickelt den binären Wert mithilfe des folgenden Befehls:

  ```
  go build -o bin/application application.go
  ```

  Nachdem die Anwendung erstellt wurde, startet Elastic Beanstalk sie auf Port 5000.
+ Stellen Sie ein Quell-Bundle mit einer Binärdatei namens `application` bereit. Die Binärdatei befindet sich entweder im Stammverzeichnis des Quell-Bundle oder im `bin/`-Verzeichnis des Quell-Bundle. Wenn Sie die `application`-Binärdatei in beiden Speicherorten platzieren, verwendet Elastic Beanstalk die Datei im `bin/`-Verzeichnis.

  Elastic Beanstalk startet diese Anwendung auf Port 5000.

In beiden Fällen können Sie mit unseren unterstützten Go-Plattformbranchen auch die Modulanforderungen in einer Datei mit dem Namen angeben`go.mod`. Weitere Informationen finden Sie unter [Migrating to Go Modules (Migration zu Go-Modulen)](https://blog.golang.org/migrating-to-go-modules) im Go-Blog.

Bei komplexeren Go-Anwendungen gibt es zwei Möglichkeiten, um Ihre Anwendung bereitzustellen:
+ Stellen Sie ein Quell-Bundle bereit, das Ihre Anwendungsquelldateien zusammen mit einer [Buildfile-Datei](go-buildfile.md) und einer [Procfile-Datei](go-procfile.md) enthält. Die Buildfile-Datei enthält einen Befehl zum Erstellen der Anwendung und die Procfile-Datei enthält Anweisungen zum Ausführen der Anwendung.
+ Stellen Sie ein Quell-Bundle bereit, das Ihre Binärdateien der Anwendung mit einer Procfile-Datei enthält. Die Procfile-Datei enthält Anweisungen zur Ausführung der Anwendung.

Die Go-Plattform umfasst einen Proxy-Server, der statische Komponenten bereitstellt und den Datenverkehr an Ihre Anwendung weiterleitet. Bei erweiterten Szenarien können Sie die [Standard-Proxy-Konfiguration erweitern oder überschreiben](go-nginx.md).

Details zu den verschiedenen Erweiterungsmöglichkeiten einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter [Erweitern von Elastic Beanstalk-Linux-Plattformen](platforms-linux-extend.md).

## Konfigurieren Ihrer Go-Umgebung
<a name="go-options"></a>

Mit den Go-Plattformeinstellungen können Sie das Verhalten Ihrer EC2 Amazon-Instances optimieren. Sie können die EC2 Amazon-Instance-Konfiguration der Elastic Beanstalk Beanstalk-Umgebung mithilfe der Elastic Beanstalk Beanstalk-Konsole bearbeiten.

Mithilfe der Elastic Beanstalk-Konsole aktivieren Sie die Protokollrotation an Amazon S3 und konfigurieren Variablen, die die Anwendung aus der Umgebung auslesen kann.

**So konfigurieren Sie Ihre Go-Umgebung in der Elastic Beanstalk-Konsole**

1. Öffnen Sie die [Elastic Beanstalk Beanstalk-Konsole](https://console.aws.amazon.com/elasticbeanstalk) und wählen Sie in der Liste **Regionen** Ihre aus. AWS-Region

1. Wählen Sie im Navigationsbereich **Environments (Umgebungen)** aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

1. Wählen Sie im Navigationsbereich **Configuration (Konfiguration)** aus.

1. Wählen Sie in der Konfigurationskategorie **Updates, monitoring and logging ** (Updates, Überwachung und Protokolle) die Option **Edit** (Bearbeiten) aus.

### Protokolloptionen
<a name="go-options-logs"></a>

Im Abschnitt mit den Protokolloptionen sind zwei Einstellungen vorhanden:
+ **Instance profile (Instance-Profil)** – Gibt das Instance-Profil an, das zum Zugriff auf den entsprechenden Amazon S3-Bucket der Anwendung berechtigt ist.
+ **Rotation der Protokolldateien nach Amazon S3 aktivieren** — Gibt an, ob Protokolldateien für die EC2 Amazon-Instances Ihrer Anwendung in den Amazon S3-Bucket kopiert werden, der Ihrer Anwendung zugeordnet ist.

### Statische Dateien
<a name="go-options-staticfiles"></a>

Um die Leistung zu verbessern, können Sie den Abschnitt **Static files** (Statische Dateien) benutzen, um den Proxy-Server so zu konfigurieren, dass er statische Dateien (z. B. HTML oder Bilder) aus Verzeichnissen innerhalb Ihrer Webanwendung bereitstellt. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter [Bereitstellen von statischen Dateien](environment-cfg-staticfiles.md).

### Umgebungseigenschaften
<a name="go-options-properties"></a>

Im Abschnitt **Umgebungseigenschaften** können Sie die Umgebungskonfigurationseinstellungen für die EC2 Amazon-Instances angeben, auf denen Ihre Anwendung ausgeführt wird. Umgebungseigenschaften werden als Schlüssel/Wert-Paare an die Anwendung weitergeleitet.

Innerhalb der Go-Umgebung, die in Elastic Beanstalk ausgeführt wird, können Sie über die Funktion `os.Getenv` auf Umgebungsvariablen zugreifen. Beispielsweise können Sie mit folgendem Code eine Eigenschaft mit dem Namen `API_ENDPOINT` als Variable lesen:

```
endpoint := os.Getenv("API_ENDPOINT")
```

Weitere Informationen finden Sie unter [Umgebungsvariablen und andere Softwareeinstellungen](environments-cfg-softwaresettings.md).

## Namespace der Go-Konfiguration
<a name="go-namespaces"></a>

Mithilfe einer [Konfigurationsdatei](ebextensions.md) können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können [plattformspezifisch](command-options-specific.md) sein oder für [alle Plattformen](command-options-general.md) im Elastic Beanstalk-Service als Ganzes gelten. *Die Konfigurationsoptionen sind in Namespaces organisiert.*

Die Go-Plattform definiert keine plattformspezifischen Namespaces. Sie können den Proxy so konfigurieren, dass statische Dateien mittels des `aws:elasticbeanstalk:environment:proxy:staticfiles`-Namespace bereitgestellt werden. Einzelheiten und ein Beispiel finden Sie unter [Bereitstellen von statischen Dateien](environment-cfg-staticfiles.md).

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der AWS CLI einrichten. Weitere Informationen finden Sie unter [Konfigurationsoptionen](command-options.md).

## Die Amazon Linux AMI (Vorgängerversion von Amazon Linux 2) Go-Plattform
<a name="go.alami"></a>

Wenn Ihre Elastic Beanstalk Go-Umgebung eine Amazon Linux AMI-Plattformversion verwendet (Vorgängerversion von Amazon Linux 2), lesen Sie die zusätzlichen Informationen in diesem Abschnitt.

**Hinweise**  
Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und *erfordern andere Konfigurationseinstellungen*.
 [Am 18. Juli 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **hat Elastic Beanstalk den Status aller Plattformbranches, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt.** Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter [Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2](using-features.migration-al.md).

### Namespaces für die Go-Konfiguration — Amazon Linux AMI () AL1
<a name="go.alami.namespaces"></a>

Mithilfe einer [Konfigurationsdatei](ebextensions.md) können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können [plattformspezifisch](command-options-specific.md) sein oder für [alle Plattformen](command-options-general.md) im Elastic Beanstalk-Service als Ganzes gelten. *Die Konfigurationsoptionen sind in Namespaces organisiert.*

**Anmerkung**  
Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und *erfordern andere Konfigurationseinstellungen*.

Die Amazon Linux AMI Go-Plattform unterstützt zusätzlich zu den [Namespaces, die von allen Plattformen unterstützt werden](command-options-general.md), eine weitere Konfigurationsoption für einen plattformspezifischen Namespace. Mit dem `aws:elasticbeanstalk:container:golang:staticfiles`-Namespace können Sie Optionen definieren, um für die Webanwendung Pfade zu Ordnern im Quell-Bundle der Anwendung zuzuweisen, die statische Inhalte enthalten.

Diese [Konfigurationsdatei](ebextensions.md) weist den Proxy-Server beispielsweise an, Dateien im `staticimages`-Ordner im Pfad `/images` bereitzustellen:

**Example .ebextensions/go-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:container:golang:staticfiles:
    /html: statichtml
    /images: staticimages
```

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der AWS CLI einrichten. Weitere Informationen finden Sie unter [Konfigurationsoptionen](command-options.md).

# Konfiguration benutzerdefinierter Startbefehle mit einer Profildatei auf Elastic Beanstalk
<a name="go-procfile"></a>

Zur Angabe benutzerdefinierter Befehle zum Starten einer Go-Anwendung, schließen Sie eine Datei mit dem Namen `Procfile` in das Stammverzeichnis Ihres Quell-Bundle ein.

Einzelheiten zum Schreiben und Verwenden von a finden Sie `Procfile` unter. [Buildfile und Procfile](platforms-linux-extend.build-proc.md)

**Example Procfile**  

```
web: bin/server
queue_process: bin/queue_processor
foo: bin/fooapp
```

Sie müssen die Hauptanwendung `web` aufrufen und als ersten Befehl in Ihrem `Procfile` auflisten. Elastic Beanstalk stellt die `web`-Hauptanwendung auf der Stamm-URL der Umgebung bereit, z. B. `http://my-go-env.elasticbeanstalk.com`.

Elastic Beanstalk führt außerdem alle Anwendungen aus, deren Namen kein `web_`-Präfix haben. Diese Anwendungen sind jedoch nicht von außerhalb Ihrer Instance verfügbar.

Elastic Beanstalk erwartet von Prozessen, die aus der `Procfile` ausgeführt werden, dass sie kontinuierlich laufen. Elastic Beanstalk überwacht diese Anwendungen und startet alle Prozesse, die beendet werden, neu. Für kurz laufende Prozesse verwenden Sie einen [Buildfile](go-buildfile.md)-Befehl.

## Verwenden einer Procfile-Datei auf Amazon Linux-AMI (vor Amazon Linux 2)
<a name="go-procfile.alami"></a>

Wenn Ihre Elastic Beanstalk Go-Umgebung eine Amazon Linux AMI-Plattformversion verwendet (Vorgängerversion von Amazon Linux 2), lesen Sie die zusätzlichen Informationen in diesem Abschnitt.

**Hinweise**  
Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und *erfordern andere Konfigurationseinstellungen*.
 [Am 18. Juli 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **hat Elastic Beanstalk den Status aller Plattformbranches, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt.** Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter [Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2](using-features.migration-al.md).

### Port-Weitergabe — Amazon Linux AMI (AL1)
<a name="go-procfile.alami.ports"></a>

**Anmerkung**  
Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und *erfordern andere Konfigurationseinstellungen*.

Elastic Beanstalk konfiguriert den nginx-Proxy für die Weitergabe von Anfragen an Ihre Anwendung, und zwar auf der Portnummer, die in der `PORT` [Umgebungseigenschaft](go-environment.md#go-options) für Ihre Anwendung angegeben ist. Ihre Anwendung sollte Port stets abhören. Sie können auf diese Variable im Anwendungscode zugreifen, indem Sie die `os.Getenv("PORT")`-Methode aufrufen.

Elastic Beanstalk nutzt die Portnummer, die in der `PORT`-Umgebungseigenschaft für den Port der ersten Anwendung in `Procfile` angegeben wurde und erhöht dann die Portnummer für jede nachfolgende Anwendung in der `Procfile`-Datei um 100. Wenn die `PORT`-Umgebungseigenschaft nicht festgelegt ist, verwendet für den anfänglichen Port Elastic Beanstalk 5000.

Im Beispiel oben ist die `PORT`-Umgebungseigenschaft der `web`-Anwendung 5000, der `queue_process`-Anwendung 5100 und der `foo`-Anwendung 5200. 

Sie können den anfängliche Port angeben, indem Sie die `PORT`-Option mit dem [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)-Namespace festlegen, wie im folgenden Beispiel veranschaulicht. 

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  PORT
    value:  <first_port_number>
```

Weitere Informationen zum Festlegen von Umgebungseigenschaften für Ihre Anwendung finden Sie unter [Optionseinstellungen](ebextensions-optionsettings.md).

# Benutzerdefinierter Build und Konfiguration mit einer Builddatei auf Elastic Beanstalk
<a name="go-buildfile"></a>

Zur Angabe eines benutzerdefinierten Build- und Konfigurationsbefehls für Ihre Go-Anwendung, schließen Sie eine Datei mit dem Namen `Buildfile` in das Stammverzeichnis Ihres Quell-Bundle ein. Beachten Sie beim Dateinamen die Groß- und Kleinschreibung. Verwenden Sie für die `Buildfile` folgendes Format: 

```
<process_name>: <command>
```

Der Befehl in Ihrer `Buildfile` muss folgendem regulären Ausdruck entsprechen: `^[A-Za-z0-9_]+:\s*.+$`.

Elastic Beanstalk überwacht nicht die Anwendung, die mit einer `Buildfile` ausgeführt wird. Verwenden Sie eine `Buildfile` für Befehle, die für kurze Zeiträume ausgeführt und nach Abschluss ihrer Aufgaben beendet werden. Für lange laufende Anwendungsprozesse, die nicht beendet werden sollen, verwenden Sie stattdessen die [Procfile-Datei](go-procfile.md).

Im folgenden Beispiel einer `Buildfile` ist `build.sh` ein Shell-Skript, das sich im Stammverzeichnis des Quell-Bundle befindet:

```
make: ./build.sh
```

Alle Pfade in der `Buildfile` sind relativ zum Stammverzeichnis des Quell-Bundle. Wenn Sie im Voraus wissen, wo sich die Dateien auf der Instance befinden, können Sie absolute Pfade in die `Buildfile` einschließen.

# Konfigurieren des Proxy-Server
<a name="go-nginx"></a>

Elastic Beanstalk verwendet nginx als Reverse-Proxy, um Ihre Anwendung Ihrem Elastic-Load-Balancing-Load-Balancer auf Port 80 zuzuordnen. Elastic Beanstalk bietet eine nginx-Standardkonfiguration, die Sie entweder erweitern oder gänzlich mit einer eigenen Konfiguration überschreiben können.

Standardmäßig wird der nginx-Proxy von Elastic Beanstalk so konfiguriert, dass alle Anforderungen an die Anwendung über Port 5000 weitergeleitet werden. Diese Port-Standardeinstellung können Sie überschreiben. Legen Sie dazu die `PORT`-[Umgebungseigenschaft](go-environment.md#go-options) auf den Überwachungsport der Hauptanwendung fest.

**Anmerkung**  
Der Überwachungsport der Anwendung kollidiert nicht mit dem Überwachungsport des nginx-Servers, von dem dieser die Anforderungen des Load Balancers empfängt.

**Konfigurieren des Proxy-Servers auf Ihrer Plattformversion**  
Alle AL2 023/ AL2 -Plattformen unterstützen eine einheitliche Proxy-Konfigurationsfunktion. Weitere Informationen zur Konfiguration des Proxyservers auf Ihren Plattformversionen, auf denen AL2 AL2 023/ ausgeführt wird, finden Sie unter. [Reverse-Proxy-Konfiguration](platforms-linux-extend.proxy.md) 

## Konfigurieren des Proxys in Amazon Linux AMI (Vorgängerversion von Amazon Linux 2)
<a name="go-nginx.alami"></a>

**Hinweise**  
Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und *erfordern andere Konfigurationseinstellungen*.
 [Am 18. Juli 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **hat Elastic Beanstalk den Status aller Plattformbranches, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt.** Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter [Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2](using-features.migration-al.md).

Wenn Ihre Elastic Beanstalk Go-Umgebung eine Amazon Linux AMI-Plattformversion verwendet (Vorgängerversion von Amazon Linux 2), lesen Sie die Informationen in diesem Abschnitt.

### Erweiterung und Außerkraftsetzung der Standard-Proxykonfiguration — Amazon Linux AMI () AL1
<a name="go-nginx.alami.extending"></a>

Elastic Beanstalk nutzt einen nginx-Server als Reverseproxy-Server, um die Anwendung dem Load Balancer auf Port 80 zuzuweisen. Wenn Sie Ihre eigene nginx-Konfiguration bereitstellen möchten, können Sie die Standardkonfiguration von Elastic Beanstalk überschreiben, indem Sie die `.ebextensions/nginx/nginx.conf`-Datei in Ihr Quell-Bundle einschließen. Wenn sie vorhanden ist, nutzt Elastic Beanstalk diese Datei anstelle der nginx-Standardkonfigurationsdatei.

Wenn Sie Richtlinien zusätzlich zu denen im `nginx.conf` `http`-Block hinzufügen möchten, können Sie auch weitere Konfigurationsdateien im `.ebextensions/nginx/conf.d/`-Verzeichnis Ihres Quell-Bundle bereitstellen. Alle Dateien in diesem Verzeichnis müssen über die `.conf`-Erweiterung verfügen. 

Wenn Sie die Funktionalität von Elastic Beanstalk nutzen möchten, z. B. [Verbesserte Gesundheitsberichterstattung und Überwachung in Elastic Beanstalk](health-enhanced.md), automatische Anwendungszuordnungen und statische Dateien, müssen Sie die folgende Zeile in den `server`-Block der nginx-Konfigurationsdatei einfügen:

```
include conf.d/elasticbeanstalk/*.conf;
```