

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.

# Optimieren Sie serverlose Bereitstellungen mit mehreren Konten mithilfe der AWS CDK Workflows und Aktionen GitHub
<a name="optimize-multi-account-serverless-deployments"></a>

*Sarat Chandra Pothula und VAMSI KRISHNA SUNKAVALLI, Amazon Web Services*

## Zusammenfassung
<a name="optimize-multi-account-serverless-deployments-summary"></a>

Organizations, die eine serverlose Infrastruktur in mehreren AWS-Konten Umgebungen einsetzen, stehen häufig vor Herausforderungen wie Codeduplizierung, manuellen Prozessen und inkonsistenten Praktiken. Die Lösung dieses Musters zeigt, wie die wiederverwendbaren Workflows AWS Cloud Development Kit (AWS CDK) In Go und GitHub Actions verwendet werden können, um die serverlose Infrastrukturverwaltung für mehrere Konten zu optimieren. Diese Lösung zeigt, wie Sie Cloud-Ressourcen als Code definieren, standardisierte Prozesse für die kontinuierliche integration/continuous Bereitstellung (CI/CD) implementieren und modulare, wiederverwendbare Komponenten erstellen können. 

Mithilfe dieser Tools können Unternehmen kontenübergreifende Ressourcen effizient verwalten, konsistente Bereitstellungspipelines implementieren und komplexe serverlose Architekturen vereinfachen. Der Ansatz verbessert auch die Sicherheit und die Einhaltung der Vorschriften, indem standardisierte Verfahren für die Verwendung durchgesetzt werden AWS-Konten, was letztendlich die Produktivität verbessert und Fehler bei der Entwicklung und Bereitstellung serverloser Anwendungen reduziert.

## Voraussetzungen und Einschränkungen
<a name="optimize-multi-account-serverless-deployments-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver. AWS-Konto
+ AWS Identity and Access Management (IAM) [-Rollen und -Berechtigungen](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam.html) sind für den Bereitstellungsprozess vorhanden. Dazu gehören Berechtigungen für den Zugriff auf Amazon Elastic Container Registry (Amazon ECR) -Repositorys, zum Erstellen von AWS Lambda Funktionen und für alle anderen erforderlichen Ressourcen im gesamten Ziel. AWS-Konten
+ AWS Command Line Interface [https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ AWS Cloud Development Kit (AWS CDK) [https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [Go 1.22 oder höher, installiert.](https://go.dev/doc/install)
+ [Docker 24.0.6 oder höher, installiert.](https://docs.docker.com/engine/install/)

**Einschränkungen**
+ **Sprachkompatibilität** — Go ist eine beliebte Sprache für serverlose Anwendungen. Neben Go AWS CDK unterstützt der jedoch auch andere Programmiersprachen, darunter C\$1, Java, Python und TypeScript. Wenn Ihr Unternehmen bereits über Codebasen oder Kenntnisse in anderen Sprachen verfügt, müssen Sie Go möglicherweise anpassen oder lernen, um die im Muster beschriebene Lösung vollständig nutzen zu können.
+ **Lernkurve** — Die Einführung von Workflows AWS CDK, Go-Workflows (sofern sie für das Unternehmen neu sind) und GitHub wiederverwendbaren Workflows kann für Entwickler und DevOps Teams eine gewisse Lernkurve mit sich bringen. Möglicherweise sind Schulungen und Unterlagen erforderlich, um eine reibungslose Einführung und effektive Nutzung dieser Technologien zu gewährleisten.

## Architektur
<a name="optimize-multi-account-serverless-deployments-architecture"></a>

Das folgende Diagramm zeigt den Workflow und die Architekturkomponenten für dieses Muster.

![\[Architektur der AWS CDK- und GitHub Actions-Workflows für die serverlose Infrastrukturverwaltung mit mehreren Konten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8d61917b-bd27-44fa-ae95-55358aaf8812/images/a4b36793-95c7-42f7-a92f-99b4722c9c64.png)


Diese Lösung führt die folgenden Schritte aus:

1. Der Entwickler klont das Repository, erstellt einen neuen Branch und nimmt Änderungen am Anwendungscode in seiner lokalen Umgebung vor.

1. Der Entwickler überträgt diese Änderungen und überträgt den neuen Branch in das Repository. GitHub 

1. Der Entwickler erstellt eine Pull-Anfrage im GitHub Repository und schlägt vor, sein Feature oder seinen neuen Feature-Branch mit dem Haupt-Branch zusammenzuführen.

1. Dieser Pull-Request löst den Workflow für Continuous Integration (CI) GitHub -Aktionen aus. Die CI- und die Continuous Deployment (CD) -Workflows in diesem Muster verwenden wiederverwendbare Workflows, bei denen es sich um vordefinierte, modulare Vorlagen handelt, die gemeinsam genutzt und in verschiedenen Projekten oder Repositorys ausgeführt werden können. Wiederverwendbare Workflows fördern die Standardisierung und Effizienz der CI/CD Prozesse.

1. Der CI-Workflow richtet die erforderliche Umgebung ein, generiert ein Docker-Tag für das Image und erstellt das Docker-Image mithilfe des Anwendungscodes. 

1. Der CI-Workflow authentifiziert sich AWS mithilfe der zentralen AWS-Konto GitHub OIDC-Rolle. Für CI-Workflows verwendet die zentrale AWS-Konto GitHub OIDC-Rolle AWS -Security-Token-Service (AWS STS), um temporäre Anmeldeinformationen abzurufen. Diese Anmeldeinformationen ermöglichen es der Rolle, Docker-Images zu erstellen und in das Amazon ECR-Repository der Zentrale zu übertragen. AWS-Konto

1. Der CI-Workflow überträgt das erstellte Docker-Image an Amazon ECR.

1. Der CI-Workflow speichert das Image-Tag im Systems Manager Manager-Parameterspeicher.

1. Nachdem der CI-Workflow erfolgreich abgeschlossen wurde, wird das Docker-Image-Tag ausgegeben. 

1. Beim Auslösen des CD-Workflows gibt der Entwickler das Image-Tag des Docker-Images, das er bereitstellen möchte, manuell ein. Dieses Image-Tag entspricht dem Tag, das während des CI-Workflows generiert und an Amazon ECR übertragen wurde.

1. Der Entwickler löst den CD-Workflow manuell aus, wobei der Workflow für wiederverwendbare CDs verwendet wird. 

1. Der CD-Workflow authentifiziert sich AWS mithilfe der zentralen AWS-Konto GitHub OIDC-Rolle. Für den CD-Workflow AWS STS wird zunächst die zentrale AWS-Konto GitHub OIDC-Rolle übernommen. Anschließend übernimmt diese Rolle die CDK-Bootstrap-Rollen für die Bereitstellung von Zielkonten. 

1. Der CD-Workflow verwendet die, um Vorlagen AWS CDK zu synthetisieren. AWS CloudFormation 

1. Der CD-Workflow stellt die Anwendung mithilfe AWS-Konto von CDK Deploy auf dem Ziel bereit, wobei das manuell angegebene Image-Tag für die Lambda-Funktion verwendet wird.

## Tools
<a name="optimize-multi-account-serverless-deployments-tools"></a>

**AWS-Services**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung von AWS Cloud Infrastruktur im Code unterstützt.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und zu verwalten AWS-Regionen. CloudFormation ist ein integraler Bestandteil des AWS CDK Bereitstellungsprozesses. Das CDK synthetisiert CloudFormation Vorlagen und verwendet sie dann CloudFormation , um die Ressourcen in der Umgebung zu erstellen oder zu aktualisieren. AWS 
+ [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) ist ein verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) bietet sicheren, hierarchischen Speicher für die Verwaltung von Konfigurationsdaten und Geheimnissen.

**Andere Tools**
+ [Docker](https://www.docker.com/) ist eine Reihe von Platform-as-a-Service (PaaS) -Produkten, die Virtualisierung auf Betriebssystemebene nutzen, um Software in Containern bereitzustellen.
+ [GitHub Actions](https://docs.github.com/en/actions/writing-workflows/quickstart) ist eine CI/CD-Plattform (Continuous Integration and Continuous Delivery), die eng in Repositorys integriert ist. GitHub Sie können GitHub Actions verwenden, um Ihre Build-, Test- und Bereitstellungspipeline zu automatisieren.
+ [Go](https://go.dev/doc/install) ist eine Open-Source-Programmiersprache, die Google unterstützt.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [aws-cdk-golang-serverlesscicd-github-actions-Repository](https://github.com/aws-samples/aws-cdk-golang-serverless-cicd-github-actions) verfügbar.

## Best Practices
<a name="optimize-multi-account-serverless-deployments-best-practices"></a>
+ **Modularer Aufbau** — Organisieren Sie Ihren AWS CDK Code in modulare und wiederverwendbare Konstrukte oder Stapel und fördern so die Wiederverwendung und Wartbarkeit von Code über mehrere Konten und Projekte hinweg.
+ **Trennung von Problemen** — Trennen Sie den Infrastrukturcode vom Anwendungscode, sodass jede Komponente unabhängig bereitgestellt und verwaltet werden kann.
+ **Versionierung und Unveränderlichkeit** — Behandle deine Infrastruktur als Code (IaC) und verwende Git für die Versionskontrolle. Machen Sie sich unveränderliche Infrastrukturprinzipien zunutze, indem Sie neue Ressourcen erstellen, anstatt bestehende zu modifizieren.
+ **Testen und Validieren** — Implementieren Sie umfassende Teststrategien, einschließlich Komponententests, Integrationstests und end-to-end Tests, um die Richtigkeit und Zuverlässigkeit Ihres AWS CDK Codes und Ihrer Implementierungen zu gewährleisten.
+ **Sicherheit und Compliance** — Halten Sie sich an bewährte AWS Sicherheitsmethoden wie den Zugriff mit geringsten Rechten, sichere Kommunikation und Datenverschlüsselung. Implementieren Sie Compliance-Prüfungen und Auditmechanismen, um die Einhaltung der Unternehmensrichtlinien und behördlichen Anforderungen sicherzustellen. Implementieren Sie bewährte Sicherheitsmethoden für Container-Images, z. B. das Scannen nach Sicherheitslücken, die Durchsetzung der Image-Signierung und die Einhaltung der Compliance-Anforderungen für Ihr Unternehmen.
+ **Überwachung und Protokollierung** — Richten Sie Überwachungs- und Protokollierungsmechanismen ein, um den Zustand und die Leistung Ihrer serverlosen Anwendungen und Infrastruktur zu verfolgen. Verwenden Sie AWS-Services es wie Amazon CloudWatch und AWS X-Ray für Überwachungs- und Prüfungszwecke. AWS CloudTrail
+ **Automatisierung und CI/CD** — Verwenden Sie GitHub wiederverwendbare Workflows und andere CI/CD Tools, um die Erstellungs-, Test- und Bereitstellungsprozesse zu automatisieren, wodurch konsistente und wiederholbare Bereitstellungen über mehrere Konten hinweg unterstützt werden können.
+ **Umgebungsmanagement** — Pflegen Sie separate Umgebungen (z. B. Entwicklung, Staging und Produktion). Implementieren Sie Strategien zur Förderung von Änderungen zwischen Umgebungen und stellen Sie sicher, dass vor der Bereitstellung in der Produktion ordnungsgemäße Tests und Validierungen durchgeführt werden.
+ **Dokumentation und Zusammenarbeit** — Dokumentieren Sie Ihren Infrastrukturcode, Ihre Bereitstellungsprozesse und Best Practices, um den Wissensaustausch und die Zusammenarbeit innerhalb Ihres Teams zu erleichtern.
+ **Kostenoptimierung** — Implementieren Sie Strategien zur Kostenüberwachung und -optimierung, z. B. die richtige Dimensionierung von Ressourcen, die Nutzung der auto-scaling und die Nutzung von AWS Kostenoptimierungsdiensten wie AWS Budgets und. AWS Cost Explorer
+ **Notfallwiederherstellung und Backup** — Planen Sie Notfallwiederherstellungsszenarien, indem Sie Sicherungs- und Wiederherstellungsmechanismen für Ihre serverlosen Anwendungen und Infrastrukturressourcen implementieren.
+ **Kontinuierliche Verbesserung** — Überprüfen und aktualisieren Sie Ihre Verfahren, Tools und Prozesse regelmäßig, um sie an die neuesten Best Practices, Sicherheitsempfehlungen und technologischen Fortschritte im serverlosen Ökosystem anzupassen.
+ **Verbessern Sie die Sicherheitslage** — Verwenden Sie diese Option, [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)um die Sicherheitslage Ihrer Virtual Private Cloud (VPC) zu verbessern, indem Sie VPC-Schnittstellen-Endpunkte für Amazon ECR und Parameter Store AWS Lambda konfigurieren. AWS Systems Manager 

## Epen
<a name="optimize-multi-account-serverless-deployments-epics"></a>

### Richten Sie die Umgebungen ein
<a name="set-up-the-environments"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Amazon ECR-Repository in der Zentrale AWS-Konto. | Um Container-Images für mehrere freizugeben AWS-Konten, müssen Sie den kontoübergreifenden Zugriff für Amazon ECR konfigurieren. Erstellen Sie zunächst ein Amazon ECR-Repository in der Zentrale AWS-Konto.Führen Sie den folgenden Befehl aus, um ein Amazon ECR-Repository zu erstellen:<pre>aws ecr create-repository --repository-name sample-repo</pre>Gewähren Sie in einer späteren Aufgabe den anderen Benutzern, die das Container-Image verwenden müssen AWS-Konten , Pull-Zugriff. | AWS DevOps | 
| Fügen Sie kontoübergreifende Berechtigungen zum Amazon ECR-Repository hinzu. | Um kontoübergreifende Berechtigungen zum Amazon ECR-Repository in der Zentrale hinzuzufügen AWS-Konto, führen Sie den folgenden Code aus:<pre>{<br />  "Version": "2008-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Sid": "LambdaECRImageRetrievalPolicy",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Service": "lambda.amazonaws.com"<br />      },<br />      "Action": [<br />        "ecr:BatchGetImage",<br />        "ecr:GetDownloadUrlForLayer",<br />      ],<br />      "Condition": {<br />        "StringLike": {<br />          "aws:sourceArn": "arn:aws:lambda:<Target_Region>:<Target_Account_ID>:function:*"<br />        }<br />      }<br />    },<br />    {<br />      "Sid": "new statement",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "AWS": "arn:aws:iam::<Target_Account_ID>:root"<br />        },<br />      "Action": [<br />        "ecr:BatchGetImage",<br />        "ecr:GetDownloadUrlForLayer",<br />      ],<br />    }<br />  ] <br />}</pre> | AWS DevOps | 
| Konfigurieren Sie eine Rolle für die GitHub OIDC-Rolle in der Zentrale. AWS-Konto | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | AWS DevOps | 
| Bootstrapping der AWS Umgebung im Ziel AWS-Konten. | Richten Sie eine CDK-Umgebung in einer bestimmten AWS-Konto Umgebung ein AWS-Region , die kontoübergreifende Bereitstellungen von einem zentralen Konto aus ermöglicht und bei der Ausführungsrolle die Prinzipien der geringsten Rechte anwendet. CloudFormation Führen Sie den folgenden Befehl aus, um eine [AWS Umgebung zu booten](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html):<pre>cdk bootstrap aws://<Target_Account_ID>/<Target_Region> --trust <Central_Account_ID> --cloudformation-execution-policies arn:aws:iam::aws:policy/<Least_Privilege_Policy></pre> | AWS DevOps | 
| Gewähren Sie der zentralen AWS-Konto OIDC-Rolle Zugriff auf die AWS-Konto Bootstrap-Zielrollen. | Der CDK-Bootstrap erstellt die folgenden IAM-Rollen, die so konzipiert sind, dass sie von der zentralen Stelle in verschiedenen Phasen des AWS-Konto CDK-Bereitstellungsprozesses übernommen werden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html)Jede Rolle verfügt über spezifische Berechtigungen, die auf ihren Zweck zugeschnitten sind und dem Prinzip der geringsten Rechte folgen. Das „`Target_Account_ID`und“ `Target_Region` in jedem Rollennamen weist darauf hin, dass diese Rollen in verschiedenen AWS-Konten Regionen einzigartig sind. Dieser Ansatz unterstützt eine klare Identifizierung und Verwaltung in Konfigurationen mit mehreren Konten und mehreren Regionen.<pre>Target Account CDK Bootstrap Roles<br />arn:aws:iam::<Target_Account_ID>:role/cdk-deploy-role-<Target_Account_ID>-<Target_Region><br />arn:aws:iam::<Target_Account_ID>:role/cdk-file-publishing-role-<Target_Account_ID>-<Target_Region><br />arn:aws:iam::<Target_Account_ID>:role/cdk-image-publishing-role-<Target_Account_ID>-<Target_Region><br />arn:aws:iam::<Target_Account_ID>:role/cdk-lookup-role-<Target_Account_ID>-<Target_Region></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html)Verwenden Sie den folgenden Code, um die Berechtigungsrichtlinie für die OIDC-Rolle in der Zentrale AWS-Konto zu aktualisieren:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "sts:AssumeRole",<br />            "Resource": [<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-deploy-role-<Target_Account_ID>-<Target_Region>",<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-file-publishing-role-<Target_Account_ID>-<Target_Region>",<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-image-publishing-role-<Target_Account_ID>-<Target_Region>",<br />                "arn:aws:iam::<Target_Account_ID>:role/cdk-lookup-role-<Target_Account_ID>-<Target_Region>"<br />            ]<br />        }<br />    ]<br /> }<br /></pre> | AWS DevOps | 

### Erstellen Sie das Docker-Image
<a name="build-the-docker-image"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das Projekt-Repository. | Führen Sie den folgenden Befehl aus, um das [GitHub Repository](https://github.com/aws-samples/aws-cdk-golang-serverless-cicd-github-actions) dieses Musters zu klonen:<pre>git clone https://github.com/aws-samples/aws-cdk-golang-serverless-cicd-github-actions.git</pre> | AWS DevOps | 
| Gehen Sie zum Dockerfile-Pfad. | Führen Sie den folgenden Befehl aus, um zum Dockerfile-Pfad zu navigieren:<pre>cd lambda</pre> | AWS DevOps | 
| Authentifizieren Sie Docker mit Amazon ECR. | Amazon ECR benötigt sicheren Zugriff auf Ihre privaten Container-Repositorys. Wenn Sie sich auf diese Weise anmelden, ermöglichen Sie Docker auf Ihrem lokalen Computer oder Ihrer CI/CD Umgebung, sicher mit Amazon ECR zu interagieren.Führen Sie den folgenden Befehl aus, um Docker mit Amazon ECR zu authentifizieren:<pre>aws ecr get-login-password --region <AWS_REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com</pre>Überarbeiten Sie die Platzhalter `AWS_REGION` und fügen Sie Ihre Informationen hinzu. `AWS_Account_ID` | AWS DevOps | 
| Erstellen Sie das Docker-Image. | Führen Sie den folgenden Befehl aus, um das Docker-Image zu erstellen:<pre>docker build --platform linux/arm64 -t sample-app .</pre> | AWS DevOps | 
| Markieren und übertragen Sie das Docker-Image. | Führen Sie die folgenden Befehle aus, um das Docker-Image zu taggen und in das Amazon ECR-Repository zu übertragen:<pre>docker tag sample-app:latest <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPOSITORY>:<DOCKER_TAG></pre><pre>docker push <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPOSITORY>:<DOCKER_TAG></pre>Überarbeiten Sie die Platzhalter`AWS_Account_ID`, `AWS_REGION``ECR_REPOSITORY`, und `DOCKER_TAG` mit Ihren Informationen. | AWS DevOps | 

### Stellen Sie die AWS CDK App bereit
<a name="deploy-the-cdk-app"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Synthetisieren Sie den CDK-Stack mit umgebungsspezifischen Variablen. | Führen Sie den folgenden Befehl aus, um die CloudFormation Vorlage für Ihre Infrastruktur zu generieren, wie sie in Ihrem CDK-Code definiert ist:<pre>ENV=<environment> IMAGETAG=<image_tag> ECR_ARN=<ecr_repo_arn> cdk synth</pre>Überarbeiten Sie die folgenden Platzhalter mit Ihren Informationen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | AWS DevOps | 
| Stellen Sie den CDK-Stack bereit. | Führen Sie den folgenden Befehl aus AWS-Konto, um den CDK-Stack auf Ihrem bereitzustellen. Das `--require-approval never` Flag bedeutet, dass das CDK *alle* Änderungen automatisch genehmigt und ausführt. Dazu gehören auch Änderungen, die das CDK normalerweise als manuell überprüfbar kennzeichnen würde (z. B. Änderungen der IAM-Richtlinien oder das Entfernen von Ressourcen). Stellen Sie sicher, dass Ihr CDK-Code und Ihre CI/CD Pipeline gut getestet und sicher sind, bevor Sie das `--require-approval never` Flag in Produktionsumgebungen verwenden.<pre>ENV=<environment> IMAGETAG=<image_tag> ECR_ARN=<ecr_repo_arn> cdk deploy --require-approval never</pre> | AWS DevOps | 

### Automatisieren Sie CI/CD mithilfe von GitHub Aktions-Workflows
<a name="automate-ci-cd-using-github-actions-workflows"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Feature-Branch und fügen Sie Ihre Änderungen hinzu. | Verwenden Sie das geklonte Repository, das Sie zuvor erstellt haben, erstellen Sie einen Feature-Branch und fügen Sie dann Ihre Änderungen zum Anwendungscode hinzu. Verwenden Sie die folgenden Befehle:<pre>git checkout -b <feature_branch><br />git add .<br />git commit -m "add your changes"<br />git push origin <feature_branch></pre>Im Folgenden finden Sie Beispiele für Änderungen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html)GitHub Aktionen verwenden die wiederverwendbaren Workflows und lösen die CI/CD Pipelines aus. | AWS DevOps | 
| Führen Sie Ihre Änderungen zusammen. | Erstelle einen Pull-Request und füge deine Änderungen mit dem Hauptteil zusammen. | AWS DevOps | 

## Fehlerbehebung
<a name="optimize-multi-account-serverless-deployments-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| `AccessDenied`Fehler beim Bereitstellen von Ressourcen auf AWS-Konten, zum Beispiel`AccessDenied: User not authorized to perform: "sts:AssumeRole"`. | Gehen Sie wie folgt vor, um die kontoübergreifenden Berechtigungen zu überprüfen, um dieses Problem zu beheben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | 
| Kompatibilitätsprobleme aufgrund von Versionskonflikten, z. B. `undefined: awscdkStack` Fehler mit einer veralteten CDK-Version. | Gehen Sie wie folgt vor, um zu überprüfen, ob Sie die erforderlichen Versionen von AWS CDK and Go verwenden, um dieses Problem zu lösen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-multi-account-serverless-deployments.html) | 
| CI/CD-Pipeline-Fehler, z. B. `Error: No such file or directory` aufgrund einer falschen YAML-Konfiguration oder `Permission denied` aufgrund geschützter Zweige. | Um Probleme mit der GitHub Aktionskonfiguration zu lösen, stellen Sie sicher, dass die wiederverwendbaren Workflows ordnungsgemäß referenziert und konfiguriert sind. | 

## Zugehörige Ressourcen
<a name="optimize-multi-account-serverless-deployments-resources"></a>

**AWS-Ressourcen**
+ [AWS Bewährte Methoden für Sicherheit, Identität und Compliance](https://aws.amazon.com/architecture/security-identity-compliance/)
+ [AWS CDK Workshop](https://cdkworkshop.com/60-go.html)
+ [AWS Bibliothek Cloud Development Kit](https://pkg.go.dev/github.com/aws/aws-cdk-go/awscdk/v2)
+ [Erstellen Sie eine Lambda-Funktion mit einem Container-Image](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html)
+ [Identity and Access Management für Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security-iam.html)
+ [Arbeiten mit dem AWS CDK in Go](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-go.html)

**Sonstige Ressourcen**
+ [Konfiguration von OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services) (GitHub Dokumentation)
+ [Golang-Dokumentation](https://golang.org/doc/)
+ [Schnellstart für GitHub Aktionen (Dokumentation](https://docs.github.com/en/actions/writing-workflows/quickstart)) GitHub 
+ [Wiederverwendung von Workflows (Dokumentation](https://docs.github.com/en/actions/sharing-automations/reusing-workflows)) GitHub 