

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.

# Builds auf dem AWS Lambda Computer ausführen
<a name="lambda"></a>

AWS Lambda Compute bietet optimierte Startgeschwindigkeiten für Ihre Builds. AWS Lambda unterstützt schnellere Builds aufgrund einer geringeren Startlatenz. AWS Lambda skaliert außerdem automatisch, sodass Builds nicht in der Warteschlange warten, bis sie ausgeführt werden. Es gibt jedoch einige Anwendungsfälle, die AWS Lambda nicht unterstützt werden, und wenn sie Sie betreffen, verwenden Sie die EC2-Rechenleistung. Weitere Informationen finden Sie unter [Einschränkungen der AWS Lambda Datenverarbeitung](#lambda.limitations).

**Topics**
+ [Welche Tools und Laufzeiten werden in der kuratierten Laufzeitumgebung enthalten sein, auf der Docker-Images ausgeführt werden? AWS Lambda](#lambda.tools)
+ [Was ist, wenn das kuratierte Bild nicht die Tools enthält, die ich benötige?](#lambda.custom)
+ [In welchen Regionen wird AWS Lambda Rechenleistung unterstützt CodeBuild?](#lambda.regions)
+ [Einschränkungen der AWS Lambda Datenverarbeitung](#lambda.limitations)
+ [Stellen Sie eine Lambda-Funktion AWS SAM mithilfe von CodeBuild Lambda Java bereit](sample-lambda-sam-gradle.md)
+ [Erstellen Sie eine einseitige React-App mit CodeBuild Lambda Node.js](sample-lambda-react-nodejs.md)
+ [Aktualisieren Sie eine Lambda-Funktionskonfiguration mit CodeBuild Lambda Python](sample-lambda-boto3-python.md)

## Welche Tools und Laufzeiten werden in der kuratierten Laufzeitumgebung enthalten sein, auf der Docker-Images ausgeführt werden? AWS Lambda
<a name="lambda.tools"></a>

AWS Lambda unterstützt die folgenden Tools: AWS CLI v2, AWS SAM CLI, Git, Go, Java, Node.js, Python, Pip, Ruby und.NET.

## Was ist, wenn das kuratierte Bild nicht die Tools enthält, die ich benötige?
<a name="lambda.custom"></a>

Wenn das kuratierte Image nicht die Tools enthält, die Sie benötigen, können Sie ein Docker-Image für die benutzerdefinierte Umgebung bereitstellen, das die erforderlichen Tools enthält.

**Anmerkung**  
Lambda unterstützt keine Funktionen, die Container-Images mit mehreren Architekturen verwenden. Weitere Informationen finden Sie unter [Erstellen einer Lambda-Funktion mithilfe eines Container-Images](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs) im *AWS Lambda Entwicklerhandbuch*.

Beachten Sie, dass Sie die folgenden Amazon ECR-Berechtigungen benötigen, um benutzerdefinierte Images für Lambda-Berechnungen zu verwenden:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/image-repo"
        }
    ]
}
```

------

Beachten Sie auch, dass `curl` or installiert sein `wget` muss, um benutzerdefinierte Images verwenden zu können.

## In welchen Regionen wird AWS Lambda Rechenleistung unterstützt CodeBuild?
<a name="lambda.regions"></a>

In CodeBuild, AWS Lambda Datenverarbeitung wird in den folgenden Ländern unterstützt AWS-Regionen: USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Oregon), Asien-Pazifik (Mumbai), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Europa (Frankfurt), Europa (Irland) und Südamerika (São Paulo). Weitere Informationen darüber, AWS-Regionen wo verfügbar CodeBuild ist, finden Sie unter [AWS Services nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Einschränkungen der AWS Lambda Datenverarbeitung
<a name="lambda.limitations"></a>

Es gibt einige Anwendungsfälle, die AWS Lambda nicht unterstützt werden, und wenn sie sich auf Sie auswirken, verwenden Sie die EC2-Berechnung:
+ AWS Lambda unterstützt keine Tools, für die Root-Rechte erforderlich sind. Verwenden Sie für Tools wie `yum` oder `rpm` den EC2-Compute-Typ oder andere Tools, für die keine Root-Rechte erforderlich sind.
+ AWS Lambda unterstützt keine Docker-Builds oder -Runs.
+ AWS Lambda unterstützt das Schreiben in Dateien außerhalb `/tmp` nicht. Die mitgelieferten Paketmanager sind so konfiguriert, dass sie das `/tmp` Verzeichnis standardmäßig zum Herunterladen und Referenzieren von Paketen verwenden.
+ AWS Lambda unterstützt den Umgebungstyp nicht `LINUX_GPU_CONTAINER` und wird unter Windows Server Core 2019 nicht unterstützt.
+ AWS Lambda unterstützt keine Zwischenspeicherung, benutzerdefinierte Build-Timeouts, Warteschlangen-Timeout, Build-Badges, privilegierten Modus, benutzerdefinierte Laufzeitumgebungen oder Laufzeiten von mehr als 15 Minuten.
+ AWS Lambda unterstützt keine VPC-Konnektivität, einen festen Bereich von CodeBuild Quell-IP-Adressen, EFS, die Installation von Zertifikaten oder SSH-Zugriff mit Session Manager.

# Stellen Sie eine Lambda-Funktion AWS SAM mithilfe von CodeBuild Lambda Java bereit
<a name="sample-lambda-sam-gradle"></a>

The AWS Serverless Application Model (AWS SAM) ist ein Open-Source-Framework für die Erstellung serverloser Anwendungen. Weitere Informationen finden Sie im [AWS Serverless Application Model Repository](https://github.com/aws/serverless-application-model) unter. GitHub Das folgende Java-Beispiel verwendet Gradle, um eine AWS Lambda Funktion zu erstellen und zu testen. Danach wird die AWS SAM CLI verwendet, um die CloudFormation Vorlage und das Bereitstellungspaket bereitzustellen. Durch die Verwendung von CodeBuild Lambda werden die Build-, Test- und Bereitstellungsschritte automatisch abgewickelt, sodass die Infrastruktur schnell aktualisiert werden kann, ohne dass in einem einzigen Build manuell eingegriffen werden muss.

## Richten Sie Ihr Repository AWS SAM ein
<a name="sample-lambda-sam-gradle.set-up-repo"></a>

Erstellen Sie ein AWS SAM `Hello World` Projekt mit der AWS SAM CLI.

**Um Ihr AWS SAM Projekt zu erstellen**

1. Folgen Sie den Anweisungen im *AWS Serverless Application Model Entwicklerhandbuch* zur [Installation der AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) auf Ihrem lokalen Computer.

1. Führen Sie die folgende Projektkonfiguration aus `sam init` und wählen Sie sie aus.

   ```
   Which template source would you like to use?: 1 - AWS Quick Start Templates
   Choose an AWS Quick Start application template: 1 - Hello World Example
   Use the most popular runtime and package type? (Python and zip) [y/N]: N
   Which runtime would you like to use?: 8 - java21
   What package type would you like to use?: 1 - Zip
   Which dependency manager would you like to use?: 1 - gradle
   Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N
   Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N
   Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]:  N
   Project name [sam-app]: <insert project name>
   ```

1. Laden Sie den AWS SAM Projektordner in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Erstellen Sie ein CodeBuild Lambda-Java-Projekt
<a name="sample-lambda-sam-gradle.create-project"></a>

Erstellen Sie ein AWS CodeBuild Lambda-Java-Projekt und richten Sie die für den Build erforderlichen IAM-Berechtigungen ein.

**So erstellen Sie Ihr CodeBuild Lambda-Java-Projekt**

1. Öffnen Sie die AWS CodeBuild Konsole unter [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt **erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein. Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer verstehen, wofür dieses Projekt verwendet wird.

1. Wählen Sie unter **Quelle** das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

1. In **Environment** (Umgebung):
   + Wählen Sie für **Compute** die Option **Lambda** aus.
   + Wählen Sie für **Runtime (s)** **Java** aus.
   + Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-lambda-standard:corretto21** aus.
   + **Lassen **Sie** für Servicerolle die Option Neue Servicerolle ausgewählt.** Notieren Sie sich den **Rollennamen**. Dies ist erforderlich, wenn Sie die IAM-Berechtigungen des Projekts später in diesem Beispiel aktualisieren.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole. 

1. Wählen Sie im Navigationsbereich **Rollen** und dann die Ihrem Projekt zugeordnete Servicerolle aus. Sie finden Ihre Projektrolle in, CodeBuild indem Sie Ihr Build-Projekt auswählen, **Bearbeiten**, **Umgebung** und dann **Servicerolle** auswählen.

1. Wählen Sie die Registerkarte **Trust Relationships** (Vertrauensstellungen) und dann **Edit trust policy** (Vertrauensrichtlinie bearbeiten) aus.

1. Fügen Sie Ihrer IAM-Rolle die folgende Inline-Richtlinie hinzu. Dies wird später für die Bereitstellung Ihrer AWS SAM Infrastruktur verwendet. Informationen finden Sie im Abschnitt [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *-IAM-Benutzerhandbuch*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Action": [
                   "cloudformation:*",
                   "lambda:*",
                   "iam:*",
                   "apigateway:*",
                   "s3:*"
               ],
               "Resource": "arn:aws:iam::*:role/Service*"
           }
       ]
   }
   ```

------

## Richten Sie das Projekt buildspec ein
<a name="sample-lambda-sam-gradle.set-up-buildspec"></a>

 CodeBuild Liest Build-Befehle aus einer Buildspec und führt sie aus, um Ihre Lambda-Funktion zu erstellen, zu testen und bereitzustellen.

**Um Ihr Projekt (Buildspec) einzurichten**

1. **Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt und dann **Bearbeiten** und Buildspec aus.**

1. **Wählen Sie in **Buildspec** die Option **Build-Befehle einfügen** und dann Zum Editor wechseln aus.**

1. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec ein.

   ```
   version: 0.2
   env:
     variables:
       GRADLE_DIR: "HelloWorldFunction"
   phases:
     build:
       commands:
         - echo "Running unit tests..."
         - cd $GRADLE_DIR; gradle test; cd ..
         - echo "Running build..."
         - sam build --template-file template.yaml
         - echo "Running deploy..."
         - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml
         - yes | sam deploy
   ```

1. Wählen Sie **Update buildspec (Buildspec aktualisieren)**.

## Stellen Sie Ihre AWS SAM Lambda-Infrastruktur bereit
<a name="sample-lambda-sam-gradle.deploy"></a>

Verwenden Sie CodeBuild Lambda, um Ihre Lambda-Infrastruktur automatisch bereitzustellen

**Um Ihre Lambda-Infrastruktur bereitzustellen**

1. Wählen Sie **Start build (Build starten)**. Dadurch wird Ihre AWS SAM Anwendung automatisch erstellt, getestet und bereitgestellt. AWS Lambda CloudFormation

1. Sobald der Build abgeschlossen ist, navigieren Sie zur AWS Lambda Konsole und suchen Sie unter dem AWS SAM Projektnamen nach Ihrer neuen Lambda-Funktion.

1. Testen Sie Ihre Lambda-Funktion, indem Sie unter der **Funktionsübersicht** **API Gateway** auswählen und dann auf die **API-Endpunkt-URL** klicken. Sie sollten eine Seite mit der Meldung `"message": "hello world"` geöffnet sehen.

## Säubern Sie Ihre Infrastruktur
<a name="sample-lambda-sam-gradle.clean-up"></a>

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die Ressourcen, die mit Ihrer AWS SAM Vorlage und erstellt wurden CodeBuild.

**Um Ihre Infrastruktur zu bereinigen**

1. Navigieren Sie zur CloudFormation Konsole und wählen Sie die`aws-sam-cli-managed-default`.

1. Leeren Sie unter **Ressourcen** den Bereitstellungs-Bucket`SamCliSourceBucket`.

1. Löschen Sie den `aws-sam-cli-managed-default` Stack.

1. Löschen Sie den CloudFormation Stapel, der Ihrem AWS SAM Projekt zugeordnet ist. Dieser Stapel sollte denselben Namen wie Ihr AWS SAM Projekt haben.

1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

1. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem **Sie Build-Projekt löschen** wählen.

# Erstellen Sie eine einseitige React-App mit CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs"></a>

[Create React App](https://create-react-app.dev/) ist eine Möglichkeit, einseitige React-Anwendungen zu erstellen. Das folgende Beispiel für Node.js verwendet Node.js, um die Quellartefakte aus Create React App zu erstellen, und gibt die Build-Artefakte zurück.

## Richten Sie Ihr Quell-Repository und Ihren Artefakt-Bucket ein
<a name="sample-lambda-react-nodejs.set-up-repo"></a>

Erstellen Sie mit yarn und Create React App ein Quell-Repository für Ihr Projekt.

**Um das Quell-Repository und den Artefakt-Bucket einzurichten**

1. Führen Sie auf Ihrem lokalen Computer aus, `yarn create react-app <app-name>` um eine einfache React-App zu erstellen.

1. Laden Sie den Projektordner der React-App in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Erstellen Sie ein CodeBuild Lambda Node.js Projekt
<a name="sample-lambda-react-nodejs.create-project"></a>

Erstellen Sie ein AWS CodeBuild Lambda Node.js -Projekt.

**So erstellen Sie Ihr CodeBuild Lambda Node.js Projekt**

1. Öffnen Sie die AWS CodeBuild Konsole unter [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt **erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein. Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer verstehen, wofür dieses Projekt verwendet wird.

1. Wählen Sie unter **Quelle** das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

1. In **Environment** (Umgebung):
   + Wählen Sie für **Compute** die Option **Lambda** aus.
   + Wählen Sie für **Runtime (s)** die Option **Node.js** aus.
   + Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-lambda-standard:nodejs20** aus.

1. In **Artifacts (Artefakte)**:
   + Wählen Sie als **Typ** **Amazon S3** aus.
   + Wählen Sie als **Bucket-Namen den Bucket** für Projektartefakte aus, den Sie zuvor erstellt haben.
   + Wählen Sie für das **Verpacken von Artefakten** die Option **Zip** aus.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

## Richten Sie das Projekt buildspec ein
<a name="sample-lambda-react-nodejs.set-up-buildspec"></a>

 CodeBuild Liest Build-Befehle aus einer Buildspec-Datei und führt sie aus, um Ihre React-App zu erstellen.

**Um dein Projekt buildspec einzurichten**

1. **Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt aus und wählen Sie dann **Bearbeiten** und Buildspec aus.**

1. **Wählen Sie in **Buildspec** die Option **Build-Befehle einfügen** und dann Zum Editor wechseln aus.**

1. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec ein.

   ```
   version: 0.2
   phases:
     build:
       commands:
         - yarn
         - yarn add --dev jest-junit @babel/plugin-proposal-private-property-in-object
         - yarn run build
         - yarn run test -- --coverage --watchAll=false --testResultsProcessor="jest-junit" --detectOpenHandles
   artifacts:
     name: "build-output"
     files:
       - "**/*"
   reports:
     test-report:
       files:
         - 'junit.xml'
       file-format: 'JUNITXML'
     coverage-report:
       files:
         - 'coverage/clover.xml'
       file-format: 'CLOVERXML'
   ```

1. Wählen Sie **Update buildspec (Buildspec aktualisieren)**.

## Erstelle deine React-App und führe sie aus
<a name="sample-lambda-react-nodejs.build"></a>

Erstellen Sie die React-App auf CodeBuild Lambda, laden Sie die Build-Artefakte herunter und führen Sie die React-App lokal aus.

**Um Ihre React-App zu erstellen und auszuführen**

1. Wählen Sie **Start build (Build starten)**.

1. Sobald der Build abgeschlossen ist, navigieren Sie zu Ihrem Amazon S3 S3-Projektartefakt-Bucket und laden Sie das React-App-Artefakt herunter.

1. Entpacken Sie das React-Build-Artefakt und fügen Sie es `run npm install -g serve && serve -s build` in den Projektordner ein.

1. Der `serve` Befehl stellt die statische Site auf einem lokalen Port bereit und druckt die Ausgabe auf Ihrem Terminal aus. Sie können die Localhost-URL unter `Local:` der Terminalausgabe aufrufen, um Ihre React-App anzuzeigen.

Weitere Informationen zum Umgang mit der Bereitstellung für einen React-basierten Server finden Sie unter [React-App-Deployment erstellen](https://create-react-app.dev/docs/deployment/).

## Bereinigen Sie Ihre Infrastruktur
<a name="sample-lambda-react-nodejs.clean-up"></a>

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die für Ihr CodeBuild Projekt erstellten Ressourcen.

**Um Ihre Infrastruktur zu bereinigen**

1. Löschen Sie Ihre Projektartefakte — Amazon S3 S3-Bucket

1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

1. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem **Sie Build-Projekt löschen** wählen.

# Aktualisieren Sie eine Lambda-Funktionskonfiguration mit CodeBuild Lambda Python
<a name="sample-lambda-boto3-python"></a>

Das folgende Python-Beispiel verwendet [Boto3](https://aws.amazon.com/sdk-for-python/) und CodeBuild Lambda Python, um die Konfiguration einer Lambda-Funktion zu aktualisieren. Dieses Beispiel kann erweitert werden, um andere Ressourcen programmgesteuert zu verwalten. AWS Weitere Informationen finden Sie in der [Boto3-Dokumentation](https://aws.amazon.com/sdk-for-python/).

## Voraussetzungen
<a name="sample-lambda-boto3-python.prerequisites"></a>

Erstellen oder suchen Sie eine Lambda-Funktion in Ihrem Konto.

In diesem Beispiel wird davon ausgegangen, dass Sie in Ihrem Konto bereits eine Lambda-Funktion erstellt haben und diese Funktion CodeBuild zur Aktualisierung der Umgebungsvariablen der Lambda-Funktion verwenden werden. Weitere Informationen zum Einrichten einer Lambda-Funktion finden CodeBuild Sie im [Stellen Sie eine Lambda-Funktion AWS SAM mithilfe von CodeBuild Lambda Java bereit](sample-lambda-sam-gradle.md) Beispiel oder unter [AWS Lambda](https://aws.amazon.com/lambda/).

## Richten Sie Ihr Quell-Repository ein
<a name="sample-lambda-boto3-python.set-up-repo"></a>

Erstellen Sie ein Quell-Repository, um Ihr Boto3-Python-Skript zu speichern.

**Um das Quell-Repository einzurichten**

1. Kopieren Sie das folgende Python-Skript in eine neue Datei namens`update_lambda_environment_variables.py`.

   ```
   import boto3
   from os import environ
   
   
   def update_lambda_env_variable(lambda_client):
       lambda_function_name = environ['LAMBDA_FUNC_NAME']
       lambda_env_variable = environ['LAMBDA_ENV_VARIABLE']
       lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE']
       print("Updating lambda function " + lambda_function_name + " environment variable "
             + lambda_env_variable + " to " + lambda_env_variable_value)
       lambda_client.update_function_configuration(
           FunctionName=lambda_function_name,
           Environment={
               'Variables': {
                   lambda_env_variable: lambda_env_variable_value
               }
           },
       )
   
   
   if __name__ == "__main__":
       region = environ['AWS_REGION']
       client = boto3.client('lambda', region)
       update_lambda_env_variable(client)
   ```

1. Laden Sie die Python-Datei in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Erstellen Sie ein CodeBuild Lambda-Python-Projekt
<a name="sample-lambda-boto3-python.create-project"></a>

Erstellen Sie ein CodeBuild Lambda-Python-Projekt.

**So erstellen Sie Ihr CodeBuild Lambda-Java-Projekt**

1. Öffnen Sie die AWS CodeBuild Konsole unter [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt **erstellen**. Erweitern Sie andernfalls im Navigationsbereich **Build**, wählen Sie **Build projects** und dann **Create build project** aus. 

1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein. Die Namen von Build-Projekten müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer verstehen, wofür dieses Projekt verwendet wird.

1. Wählen Sie unter **Quelle** das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

1. In **Environment** (Umgebung):
   + Wählen Sie für **Compute** die Option **Lambda** aus.
   + Wählen Sie für **Runtime (s)** **Python** aus.
   + Wählen Sie für **Image aws/codebuild/amazonlinux** **-x86\$164-lambda-standard:python3.12** aus.
   + **Lassen **Sie** für Servicerolle die Option Neue Servicerolle ausgewählt.** Notieren Sie sich den **Rollennamen**. Dies ist erforderlich, wenn Sie die IAM-Berechtigungen des Projekts später in diesem Beispiel aktualisieren.

1. Wählen Sie **Create build project (Build-Projekt erstellen)** aus.

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole. 

1. Wählen Sie im Navigationsbereich **Rollen** und dann die Ihrem Projekt zugeordnete Servicerolle aus. Sie finden Ihre Projektrolle in, CodeBuild indem Sie Ihr Build-Projekt auswählen, **Bearbeiten**, **Umgebung** und dann **Servicerolle** auswählen.

1. Wählen Sie die Registerkarte **Trust Relationships** (Vertrauensstellungen) und dann **Edit trust policy** (Vertrauensrichtlinie bearbeiten) aus.

1. Fügen Sie Ihrer IAM-Rolle die folgende Inline-Richtlinie hinzu. Dies wird später für die Bereitstellung Ihrer AWS SAM Infrastruktur verwendet. Informationen finden Sie im Abschnitt [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *-IAM-Benutzerhandbuch*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "UpdateLambdaPermissions",
               "Effect": "Allow",
               "Action": [
                   "lambda:UpdateFunctionConfiguration"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

## Richten Sie das Projekt buildspec ein
<a name="sample-lambda-boto3-python.set-up-buildspec"></a>

Um die Lambda-Funktion zu aktualisieren, liest das Skript Umgebungsvariablen aus der Buildspec, um den Namen, den Namen der Umgebungsvariablen und den Wert der Umgebungsvariablen der Lambda-Funktion zu ermitteln.

**Um Ihr Projekt (buildspec) einzurichten**

1. **Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt aus und wählen Sie dann **Bearbeiten** und Buildspec aus.**

1. **Wählen Sie in **Buildspec** die Option **Build-Befehle einfügen** und dann Zum Editor wechseln aus.**

1. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec ein.

   ```
   version: 0.2
   env:
     variables:
       LAMBDA_FUNC_NAME: "<lambda-function-name>"
       LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED"
       LAMBDA_ENV_VARIABLE_VALUE: "true"
   phases:
     install:
       commands:
          - pip3 install boto3
     build:
       commands:
          - python3 update_lambda_environment_variables.py
   ```

1. Wählen Sie **Update buildspec (Buildspec aktualisieren)**.

## Aktualisieren Sie Ihre Lambda-Konfiguration
<a name="sample-lambda-boto3-python.update"></a>

Verwenden Sie CodeBuild Lambda Python, um die Konfiguration Ihrer Lambda-Funktion automatisch zu aktualisieren.

**Um die Konfiguration Ihrer Lambda-Funktion zu aktualisieren**

1. Wählen Sie **Start build (Build starten)**.

1. Sobald der Build abgeschlossen ist, navigieren Sie zu Ihrer Lambda-Funktion.

1. Wählen Sie **Konfiguration** und dann **Umgebungsvariablen** aus. Sie sollten eine neue Umgebungsvariable mit Schlüssel `FEATURE_ENABLED` und Wert sehen`true`.

## Säubern Sie Ihre Infrastruktur
<a name="sample-lambda-boto3-python.clean-up"></a>

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die für Ihr CodeBuild Projekt erstellten Ressourcen.

**Um Ihre Infrastruktur zu bereinigen**

1. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

1. Navigieren Sie zur CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem **Sie Build-Projekt löschen** wählen.

1. Wenn Sie für dieses Beispiel eine Lambda-Funktion erstellt haben, wählen Sie **Aktionen** und **Funktion löschen, um Ihre Lambda-Funktion** zu bereinigen.

## Erweiterungen
<a name="sample-lambda-boto3-python.extensions"></a>

Wenn Sie dieses Beispiel erweitern möchten, um andere AWS Ressourcen mit AWS CodeBuild Lambda Python zu verwalten:
+ Aktualisieren Sie das Python-Skript, um die neuen Ressourcen mit Boto3 zu ändern.
+ Aktualisieren Sie die mit Ihrem CodeBuild Projekt verknüpfte IAM-Rolle, sodass sie über Berechtigungen für die neuen Ressourcen verfügt.
+ Fügen Sie Ihrer Buildspec alle neuen Umgebungsvariablen hinzu, die mit den neuen Ressourcen verknüpft sind.