

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.

# Erstellen Sie Ihre erste Lambda MicroVM
<a name="microvms-getting-started"></a>

Dieses Tutorial führt Sie durch die Erstellung eines AWS Lambda MicroVM-Images und das Ausführen einer MicroVM von diesem aus. Am Ende haben Sie eine laufende Anwendung, auf die über HTTPS zugegriffen werden kann.

## Voraussetzungen
<a name="microvms-getting-started-prereqs"></a>

Sie benötigen zwei Dinge, bevor Sie beginnen:

1. **Ein Amazon S3-Bucket ** in Ihrer bevorzugten AWS Region zum Speichern Ihres Anwendungsartefakts (die ZIP-Datei, die Sie in Schritt 2 erstellen).

1. **Eine IAM-Build-Rolle**, die Lambda bei der Image-Erstellung übernimmt. Lambda verwendet diese Rolle, um Ihr Code-Artefakt von Amazon S3 herunterzuladen und Build-Protokolle in Amazon S3 zu schreiben. CloudWatch

Erstellen Sie die IAM-Rolle mit der folgenden Vertrauensrichtlinie. Dadurch kann der Lambda-Service die Rolle übernehmen:

```
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": { "Service": "lambda.amazonaws.com" },
    "Action": ["sts:AssumeRole", "sts:TagSession"]
  }]
}
```

Hängen Sie die folgende Berechtigungsrichtlinie an die Rolle an. `<your-bucket-name>`Ersetzen Sie durch Ihren Amazon S3-Bucket-Namen:

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::<your-bucket-name>/*"
    },
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"],
      "Resource": "arn:aws:logs:*:*:*"
    }
  ]
}
```

**Anmerkung**  
Wenn Ihre Daten `Dockerfile` aus einem privaten AWS ECR-Repository abgerufen werden, fügen Sie der Berechtigungsrichtlinie auch `ecr:GetAuthorizationToken` und `ecr:BatchGetImage` hinzu.

## Erstellen Ihres ersten MicroVM-Images
<a name="microvms-getting-started-first-image"></a>

Ein MicroVM-Image erfasst Ihre Anwendung in einem vollständig initialisierten Zustand. Wenn Sie eine MicroVM von diesem Image aus ausführen, wird Ihre Anwendung sofort gestartet — ohne Verzögerung beim Start oder bei der Initialisierung.

### Schritt 1: Schreiben Sie Ihre Anwendung und Dockerfile
<a name="microvms-getting-started-step1"></a>

Erstellen Sie einen einfachen HTTP-Server, der in Ihrer MicroVM ausgeführt wird. In diesem Beispiel wird Folgendes Node.js ohne externe Abhängigkeiten verwendet:

**`app.js`**

```
// Minimal HTTP server — listens on port 8080
const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'application/json' });
  res.end(JSON.stringify({ status: 'ok', path: req.url }));
});

server.listen(8080, () => {
  console.log('Listening on port 8080');
});
```

Erstellen Sie als Nächstes `Dockerfile` ein Paket und starten Sie Ihre Anwendung:

**`Dockerfile`**

```
# Use a lightweight Node.js runtime for your application layers
FROM node:24-alpine

# Set the working directory inside the container
WORKDIR /app

# Copy your application code
COPY app.js .

# Declare the port your app listens on
EXPOSE 8080

# Start the application — Lambda snapshots the running state
CMD ["node", "app.js"]
```

**Anmerkung**  
Die `FROM` Anweisung legt das Container-Image für Ihre Anwendungsebenen fest. Sie können jedes kompatible Container-Image verwenden. Das von Lambda verwaltete Basisimage (das das MicroVM-Betriebssystem und die Servicekomponenten bereitstellt) wird `--base-image-arn` in Schritt 3 separat angegeben.  
Wenn Ihre Anwendung eindeutige Werte (IDs, Geheimnisse oder kryptografisches Material) generiert, verwenden Sie die Standardbibliothek für den kryptografisch sicheren Pseudozufallszahlengenerator (CSPRNG) Ihrer Sprache, um die Eindeutigkeit aller MicroVMs sicherzustellen. Wenn Ihre Anwendung OpenSSL verwendet, verwenden Sie das Lambda-Basiscontainer-Image, das eine Snapshot-kompatible Version enthält. Einzelheiten finden Sie im Abschnitt zur Snapshot-Kompatibilität unter. [MicroVM-Images](microvms-images.md)

### Schritt 2: Verpacken und auf Amazon S3 hochladen
<a name="microvms-getting-started-step2"></a>

Verpacken Sie Ihr `Dockerfile` Land in ein ZIP-Archiv `app.js` und laden Sie es dann in Ihren Amazon S3-Bucket hoch. Führen Sie die folgenden Befehle in Ihrem Terminal aus:

```
zip app.zip app.js Dockerfile
aws s3 cp app.zip s3://{{your-bucket-name}}/app.zip
```

### Schritt 3: Erstellen Sie das MicroVM-Image
<a name="microvms-getting-started-step3"></a>

Rufen Sie `create-microvm-image` auf, um den Build zu starten. Lambda lädt Ihre Zip-Datei von Amazon S3 herunter, führt Ihre aus`Dockerfile`, startet Ihre Anwendung und erfasst einen Firecracker-Snapshot des vollständig initialisierten Zustands:

```
aws lambda-microvms create-microvm-image \
  --name my-first-microvm-image \
  --code-artifact uri=s3://{{your-bucket-name}}/app.zip \
  --base-image-arn arn:aws:lambda:{{us-east-1}}:aws:microvm-image:al2023-1 \
  --build-role-arn arn:aws:iam::{{123456789012}}:role/MicrovmBuildRole
```

Das Bild beginnt im Status. `CREATING` Überprüfen Sie den Build-Status mit:

```
aws lambda-microvms get-microvm-image \
  --image-identifier my-first-microvm-image
```

Wenn der Build abgeschlossen ist, ändert sich das `state` Feld in`CREATED`:

```
{
  "imageName": "my-first-microvm-image",
  "imageArn": "arn:aws:lambda:us-east-1:123456789012:microvm-image:my-first-microvm-image",
  "state": "CREATED",
  "imageVersion": "1.0",
  ...
}
```

Wenn der Status lautet`CREATE_FAILED`, überprüfen Sie die Build-Protokolle CloudWatch unter`/aws/lambda/microvms/my-first-microvm-image`.

## Führen Sie Ihre erste MicroVM aus
<a name="microvms-getting-started-run"></a>

Sobald Ihr MicroVM-Image den `CREATED` Status erreicht hat, können Sie MicroVMs von dort aus ausführen. Jedes Image kann viele MicroVMs starten — eine pro Mandant, Benutzersitzung oder Job.

Führen Sie eine MicroVM mit dem folgenden Befehl aus:

```
aws lambda-microvms run-microvm \
  --image-identifier my-first-microvm-image \
  --ingress-network-connectors "arn:aws:lambda:{{us-east-1}}:aws:network-connector:aws-network-connector:ALL_INGRESS" \
  --egress-network-connectors "arn:aws:lambda:{{us-east-1}}:aws:network-connector:aws-network-connector:INTERNET_EGRESS" \
  --idle-policy '{"autoResumeEnabled":true,"maxIdleDurationSeconds":900,"suspendedDurationSeconds":300}'
```

Parameter erklärt:
+ `--ingress-network-connectors`— Aktiviert eingehenden HTTPS-Verkehr zu Ihrer MicroVM auf allen Ports. Dies ist ein Connector Lambda-managed.
+ `--egress-network-connectors`— Ermöglicht den ausgehenden Internetzugang von Ihrer MicroVM aus. Dies ist ein Connector Lambda-managed.
+ `--idle-policy`— Konfiguriert das automatische Verhalten bei Unterbrechung und Wiederaufnahme. Diese Richtlinie setzt die MicroVM nach 15 Minuten Inaktivität aus, hält sie für bis zu 5 Minuten in den Ruhezustand und setzt sie automatisch fort, wenn Datenverkehr eintrifft.

Die Antwort enthält die MicroVM-ID und die Endpunkt-URL:

```
{
  "microvmId": "mvm-01234567-abcd-ef01-2345-6789abcdef01",
  "state": "PENDING",
  "endpoint": "mvm-01234567-abcd-ef01-2345-6789abcdef01.lambda-microvm.us-east-1.on.aws",
  ...
}
```

Warten Sie, bis der Status Folgendes erreicht `RUNNING` hat:

```
aws lambda-microvms get-microvm \
  --microvm-identifier mvm-01234567-abcd-ef01-2345-6789abcdef01
```

## Stellen Sie eine Verbindung zu Ihrer MicroVM her
<a name="microvms-getting-started-connect"></a>

Für alle Anfragen an einen MicroVM-Endpunkt ist ein Authentifizierungstoken erforderlich. Generieren Sie eine mit:

```
aws lambda-microvms create-microvm-auth-token \
  --microvm-identifier mvm-01234567-abcd-ef01-2345-6789abcdef01 \
  --expiration-in-minutes 30 \
  --allowed-ports '[{"allPorts":{}}]'
```

Die Antwort enthält ein Token im `authToken` Feld. Verwenden Sie es, um eine Anfrage an Ihre laufende Anwendung zu senden:

```
curl https://mvm-01234567-abcd-ef01-2345-6789abcdef01.lambda-microvm.us-east-1.on.aws/ \
  -H "X-aws-proxy-auth: {{<token-value>}}"
```

Sie sollten die Antwort Ihrer Anwendung sehen:

```
{"status":"ok","path":"/"}
```

Ihre MicroVM läuft und verarbeitet den Datenverkehr. Die Anwendung, die Sie in Schritt 1 geschrieben haben, ist unter der Endpunkt-URL live.

## Bereinigen
<a name="microvms-getting-started-cleanup"></a>

Um laufende Gebühren zu vermeiden, beenden Sie die MicroVM, wenn Sie fertig sind:

```
aws lambda-microvms terminate-microvm \
  --microvm-identifier mvm-01234567-abcd-ef01-2345-6789abcdef01
```

## Nächste Schritte
<a name="microvms-getting-started-next"></a>
+ Erfahren Sie mehr über [Schlüsselkonzepte](microvms-how-it-works.md) den Snapshot-Prozess, die Lebenszyklusstatus und die Basis-Images.
+ Erfahren [MicroVM-Images](microvms-images.md) Sie mehr über Image-Build-Hooks, Versionierung und Snapshot-Kompatibilität.
+ SDK-Beispiele, Lifecycle-Hooks und Skalierungsstrategien finden [MicroVMS ausführen](microvms-launching.md) Sie unter.
+ Informationen zu [Integrationen](microvms-integrations.md) unterstützten Serviceintegrationen finden Sie unter.