

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.

# Bereitstellen von AWS Service Catalog Produkten auf der Grundlage von AWS CloudFormation Vorlagen mithilfe von GitHub Aktionen
<a name="provision-aws-service-catalog-products-using-github-actions"></a>

*Ashish Bhatt und Ruchika Modi, Amazon Web Services*

## Zusammenfassung
<a name="provision-aws-service-catalog-products-using-github-actions-summary"></a>

Dieses Muster bietet Unternehmen einen optimierten Ansatz, bei dem [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)Produkte und Portfolios verwendet werden, um teamübergreifend standardisierte und konforme Lösungen bereitzustellen. AWS-Services [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft dabei, wichtige Komponenten in Service Catalog-Produkten und -Portfolios für die Bereitstellung der Basisnetzwerkinfrastruktur zu AWS Cloud kombinieren. [Dieses Muster fördert auch DevOps Praktiken, indem Infrastructure-as-Code (IaC) mithilfe GitHub von Aktionen in automatisierte Entwicklungsworkflows integriert wird.](https://github.com/features/actions)

AWS Service Catalog ermöglicht es Unternehmen, zugelassene IT-Services zu erstellen und zu verwalten AWS, was Vorteile wie Standardisierung, zentrale Steuerung, Self-Service-Bereitstellung und Kostenmanagement bietet. Durch die Automatisierung der Bereitstellung von Service Catalog-Portfolios und -Produkten durch GitHub Aktionen können Unternehmen Folgendes tun:
+ Erzielen Sie konsistente und wiederholbare Bereitstellungen. 
+ Verwenden Sie die Versionskontrolle für IaC. 
+ Integrieren Sie das Cloud-Ressourcenmanagement in bestehende Entwicklungsworkflows. 

Diese Kombination rationalisiert den Cloud-Betrieb, sorgt für die Einhaltung von Vorschriften und beschleunigt die Bereitstellung genehmigter Dienste. Gleichzeitig werden manuelle Fehler reduziert und die Gesamteffizienz verbessert.

## Voraussetzungen und Einschränkungen
<a name="provision-aws-service-catalog-products-using-github-actions-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto 
+ Zugriff auf das [GitHub Repository](https://docs.github.com/en/get-started/quickstart/create-a-repo)
+ Grundlegendes Verständnis von AWS CloudFormation und AWS Service Catalog
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket zum Hosten von CloudFormation Vorlagen
+ Eine benannte AWS Identity and Access Management (IAM-) Rolle`github-actions`, die für die Konnektivität zwischen und GitHub verwendet wird AWS

**Einschränkungen**
+ Der wiederverwendbare Code dieses Musters wurde nur mit GitHub Aktionen getestet.
+ Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie unter [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

**Produktversionen**

Die Lösung dieses Musters wurde mithilfe der folgenden [GitHub Marketplace-Aktionen](https://github.com/marketplace) und ihrer jeweiligen Versionen erstellt:
+ `actions/checkout@v4`
+ `aws-actions/configure-aws-credentials@v2`
+ `aws-actions/aws-cloudformation-github-deploy@v1.2.0`

## Architektur
<a name="provision-aws-service-catalog-products-using-github-actions-architecture"></a>

Das folgende Diagramm zeigt die Architektur für diese Lösung.

![\[Verwenden von GitHub Aktionen zur Bereitstellung von Service Catalog-Produkten auf der Grundlage von CloudFormation Vorlagen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/49f82fa7-0c74-4581-bf92-95505dca264c/images/a13c7b41-534e-4a9e-bdca-2974fa40a49a.png)


1. Administratoren oder Plattformingenieure übertragen standardisierte CloudFormation Vorlagen in ein GitHub Repository, in dem die Vorlagen verwaltet werden. Das GitHub Repo enthält auch Workflows, die die Bereitstellung von AWS Service Catalog Using GitHub Actions automatisieren.

1. GitHub Aktionen lösen einen Workflow aus, der eine Verbindung AWS Cloud mit dem herstellt, der einen OpenID Connect (OIDC) -Anbieter verwendet, um Service Catalog bereitzustellen.

1. Der Service Catalog enthält das Portfolio und die Produkte, mit denen Entwickler direkt standardisierte AWS Ressourcen bereitstellen können. Dieses Muster bündelt AWS Ressourcen wie virtuelle private Clouds (VPCs), Subnetze, NAT- und Internet-Gateways sowie Routing-Tabellen.

1. Nachdem der Entwickler ein Service Catalog-Produkt erstellt hat, konvertiert Service Catalog es in vorkonfigurierte und standardisierte AWS Ressourcen. Dadurch sparen Entwickler Zeit, da sie keine einzelnen Ressourcen bereitstellen und manuell konfigurieren müssen.

## Tools
<a name="provision-aws-service-catalog-products-using-github-actions-tools"></a>

**AWS-Services**
+ [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. Es handelt sich um einen Infrastructure-as-Code-Service (IaC), der problemlos als einer der Produkttypen mit AWS Service Catalog verwendet werden kann.
+ [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 Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted.html)unterstützt Sie bei der zentralen Verwaltung des Katalogs von IT-Services, für die eine Genehmigung erteilt wurde. AWS Endbenutzer können schnell nur die jeweils benötigten genehmigten IT-Services bereitstellen, wobei die Einschränkungen Ihrer Organisation berücksichtigt werden.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

**Andere**
+ [GitHub Actions](https://docs.github.com/en/actions) ist eine CI/CD-Plattform (Continuous Integration and Continuous Delivery), die eng in Repositorien integriert GitHub ist. Sie können GitHub Actions verwenden, um Ihre Build-, Test- und Bereitstellungspipeline zu automatisieren.

**Code-Repository**

Der Code für dieses Muster ist im Repository GitHub [service-catalog-with-github-actions](https://github.com/aws-samples/service-catalog-with-github-actions) verfügbar. Das Repo enthält die folgenden interessanten Dateien:
+ `github/workflows`:
  + `e2e-test.yaml`— Diese Datei ruft auf`workflow.yaml`, was der [wiederverwendbare Workflow](https://docs.github.com/en/actions/sharing-automations/reusing-workflows) ist. Dieser Workflow wird ausgelöst, sobald ein Commit und ein Push für einen Branch erfolgt.
  + `workflow.yaml`— Diese Datei enthält den wiederverwendbaren Workflow für diese Lösung und ist `workflow_call` als Auslöser konfiguriert. Als wiederverwendbarer Workflow `workflow.yaml` kann er von jedem anderen Workflow aus aufgerufen werden.
+ `templates`:
  + `servicecatalog-portfolio.yaml`— Diese CloudFormation Vorlage enthält Ressourcen, die das Service Catalog-Portfolio und das Service Catalog-Produkt bereitstellen. Die Vorlage enthält eine Reihe von Parametern, die bei der Bereitstellung des Service Catalog-Portfolios und der Produkte verwendet werden. Ein Parameter akzeptiert eine Amazon S3 S3-Datei-URL, in die die Vorlage hochgeladen `vpc.yaml` wird. Dieses Muster beinhaltet zwar die `vpc.yaml` Datei zur Bereitstellung von AWS Ressourcen, Sie können jedoch auch den Parameter S3-Datei-URL für die Konfiguration verwenden.
  + `vpc.yaml`— Diese CloudFormation Vorlage enthält AWS Ressourcen, die dem Service Catalog-Produkt hinzugefügt werden sollen. AWS Zu den Ressourcen gehören VPCs Subnetze, Internet-Gateways, NAT-Gateways und Routing-Tabellen. Die `vpc.yaml` Vorlage ist ein Beispiel dafür, wie Sie eine beliebige CloudFormation Vorlage mit einer Produkt- und Portfoliovorlage für einen Service Catalog verwenden können.

## Best Practices
<a name="provision-aws-service-catalog-products-using-github-actions-best-practices"></a>
+ Weitere Informationen finden Sie AWS Service Catalog in der AWS Service Catalog Dokumentation unter [Bewährte Sicherheitsmethoden für](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html). 
+ Weitere Informationen finden Sie in der GitHub Dokumentation unter [Sicherheitshärtung für GitHub Aktionen](https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions).

## Epen
<a name="provision-aws-service-catalog-products-using-github-actions-epics"></a>

### Richten Sie eine lokale Workstation ein
<a name="set-up-local-workstation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Einrichtung von Git auf Ihrer lokalen Workstation. | Um Git auf deiner lokalen Workstation zu installieren und zu konfigurieren, verwende die Anleitung [Erste Schritte — Installation von Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) in der Git-Dokumentation. | App-Developer | 
| Klonen Sie das GitHub Projekt-Repo. | Gehen Sie wie folgt vor, um das GitHub Projekt-Repo zu klonen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | DevOps Ingenieur | 

### Richten Sie den OIDC-Anbieter ein
<a name="set-up-the-oidc-provider"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie einen OIDC-Anbieter. | Erstellen Sie einen OpenID Connect (OIDC) -Anbieter, der den GitHub Actions-Workflows den Zugriff auf Ressourcen ermöglicht AWS, ohne dass die AWS Anmeldeinformationen als langlebige Geheimnisse gespeichert werden müssen. GitHub Anweisungen finden Sie in der GitHub Dokumentation unter [Konfiguration von OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services).Nach der Konfiguration eines OIDC-Anbieters wird die Vertrauensrichtlinie der IAM-Rolle`github-actions`, die bereits in den [Voraussetzungen erwähnt wurde, aktualisiert](#provision-aws-service-catalog-products-using-github-actions-prereqs). | AWS-Administrator, AWS DevOps, Allgemeines AWS | 

### Trigger GitHub Actions-Pipeline zur Bereitstellung des Service Catalog-Portfolios und der Produkte
<a name="trigger-github-actions-pipeline-to-deploy-sc-portfolio-and-products"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren von `e2e-test.yaml`. | Die `e2e-test.yaml` Datei löst den wiederverwendbaren Workflow unter aus`workflow.yaml`. Aktualisieren und validieren Sie die Werte für die folgenden Eingabeparameter in`e2e-test.yaml`:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | DevOps Ingenieur | 

### Bereitstellung validieren
<a name="validate-deployment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Service Catalog-Ressourcen. | Gehen Sie wie folgt vor, um die Service Catalog-Ressourcen zu validieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | AWS DevOps | 

### Bereinigen von Ressourcen
<a name="clean-up-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie den CloudFormation Stapel. | Gehen Sie wie folgt vor, um den CloudFormation Stapel zu löschen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html)Weitere Informationen finden Sie in der CloudFormation Dokumentation unter [Löschen eines Stacks aus der CloudFormation Konsole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) | DevOps Ingenieur, AWS-Administrator | 

## Fehlerbehebung
<a name="provision-aws-service-catalog-products-using-github-actions-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| `e2e-test``Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '*/home/runner/work/service-catalog-with-github-actions/service-catalog-with-github-actions``Did you forget to run actions/checkout before running your local action?` | Gehen Sie wie folgt vor, um sicherzustellen, dass Sie die richtigen Repository-Einstellungen aktiviert haben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/provision-aws-service-catalog-products-using-github-actions.html) | 

## Zugehörige Ressourcen
<a name="provision-aws-service-catalog-products-using-github-actions-resources"></a>

**AWS Dokumentation**
+ [Überblick über den Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html)

**Sonstige Ressourcen**
+ [Informationen zu Ereignissen, die Workflows auslösen](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#about-events-that-trigger-workflows) (GitHub Dokumentation)
+ [Wiederverwendung von Workflows](https://docs.github.com/en/actions/sharing-automations/reusing-workflows) (GitHub Dokumentation)

## Zusätzliche Informationen
<a name="provision-aws-service-catalog-products-using-github-actions-additional"></a>

Screenshots zu den [Epics](#provision-aws-service-catalog-products-using-github-actions-epics) finden Sie im Ordner **Images im Repo** dieses Patterns GitHub . Die folgenden Screenshots sind verfügbar:
+ [AWS Service Catalog Portfolio, Bereich Verwaltung](https://github.com/aws-samples/service-catalog-with-github-actions/blob/main/images/SC_portfolio.png)
+ [AWS Service Catalog Produkt, Bereich Verwaltung](https://github.com/aws-samples/service-catalog-with-github-actions/blob/main/images/SC_Product.png)
+ [AWS Service Catalog Produkt, User/Provisioning Abschnitt](https://github.com/aws-samples/service-catalog-with-github-actions/blob/main/images/SC_Product_User.png)