

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 COBOL Db2-Programme mit und AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

*Luis Gustavo Dantas und Eduardo Zimelewicz, Amazon Web Services*

## Zusammenfassung
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-summary"></a>

**Anmerkung**  
AWS Mainframe Modernization Der Service (Managed Runtime Environment Experience) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Dieses Muster erklärt, wie Sie mithilfe der AWS CodeBuild Replatform-Tools ein einfaches Projekt erstellen, um COBOL Db2-Programme vorzukompilieren und zu binden. AWS Mainframe Modernization Dies ermöglicht die Bereitstellung und Ausführung dieser Programme in der Replatform-Laufzeitumgebung. AWS Mainframe Modernization 

COBOL, eine geschäftsorientierte Programmiersprache, unterstützt aufgrund ihrer Zuverlässigkeit und Lesbarkeit viele kritische Anwendungen. IBM Db2, ein relationales Datenbankmanagementsystem, verwaltet große Datenmengen effizient und lässt sich über SQL in COBOL-Programme integrieren. Zusammen bilden COBOL und Db2 trotz des Aufkommens neuerer Technologien das Rückgrat geschäftskritischer Abläufe in Branchen wie Finanzen und Behörden.

Die Migration von COBOL- und Db2-Komponenten aus der Mainframe-Umgebung auf andere Plattformen führt zu Herausforderungen wie Plattformkompatibilität, Integrationskomplexität, Datenmigration und Leistungsoptimierung. Die Migration dieser kritischen Komponenten erfordert sorgfältige Planung, technisches Fachwissen und Ressourcen, um eine reibungslose Migration zu gewährleisten und gleichzeitig Zuverlässigkeit und Funktionalität zu gewährleisten.

Der AWS Mainframe Modernization Service bietet Tools und Ressourcen zur Neuplattformierung von Mainframe-Anwendungen und Datenbanken, sodass sie auf AWS Infrastrukturen wie Amazon Elastic Compute Cloud (Amazon EC2) -Instances ausgeführt werden können. Dies beinhaltet die Verlagerung von Mainframe-Workloads in die Cloud ohne größere Codeänderungen.

Der Db2-Vorkompilierungs- und Bindungsprozess ist für die Optimierung der Leistung und Zuverlässigkeit von Datenbankanwendungen unerlässlich. Durch die Vorkompilierung werden eingebettete SQL-Anweisungen in ausführbaren Code umgewandelt, wodurch der Laufzeitaufwand reduziert und die Effizienz gesteigert wird. Der Bind-Prozess verknüpft den vorkompilierten Code mit Datenbankstrukturen und erleichtert so die Zugriffspfade und die Abfrageoptimierung. Dieser Prozess gewährleistet die Datenintegrität, verbessert die Reaktionsfähigkeit von Anwendungen und schützt vor Sicherheitslücken. Ordnungsgemäß vorkompilierte und gebundene Anwendungen minimieren den Ressourcenverbrauch, verbessern die Skalierbarkeit und verringern die Risiken von SQL-Injection-Angriffen.

## Voraussetzungen und Einschränkungen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Voraussetzungen**
+ Ein AWS-Konto Konsolenzugriff auf Administratorebene.
+ Ein IBM Db2-Datenbanksystem, wie IBM Db2 für z/OS oder Db2 für Linux, Unix und Windows (LUW).
+ [Die IBM Data Server Client-Software, die von der IBM-Website heruntergeladen werden kann.](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers) Weitere Informationen finden Sie unter [IBM Data Server Client- und Data Server-Treibertypen](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Ein COBOL Db2-Programm, das kompiliert und gebunden werden soll. Alternativ bietet dieses Muster ein grundlegendes Beispielprogramm, das Sie verwenden können.
+ Eine virtuelle private Cloud (VPC) AWS mit einem privaten Netzwerk. Informationen zum Erstellen einer VPC finden Sie in der Dokumentation zu [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Ein Quellcodeverwaltungs-Repository wie GitHub oder. GitLab

**Einschränkungen**
+ Informationen zu AWS CodeBuild Kontingenten finden Sie unter [Kontingente für AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html).
+ 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 auf der Seite [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.

## Architektur
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-architecture"></a>

**Quelltechnologie-Stack**

Der Quellstapel umfasst:
+ COBOL-Programme, die eine Db2-Datenbank zum Speichern von Daten verwenden
+ IBM COBOL-Compiler und Db2 für Precompiler z/OS 
+ Andere Teile des Mainframe-Setups, wie das Dateisystem, der Transaktionsmanager und der Spool

**Zieltechnologie-Stack**

Der Ansatz dieses Musters funktioniert für zwei Optionen: das Verschieben von Daten von Db2 für LUW z/OS nach Db2 oder das Verbleiben auf Db2 für z/OS. Die Zielarchitektur umfasst:
+ COBOL-Programme, die eine Db2-Datenbank zum Speichern von Daten verwenden
+ AWS Mainframe Modernization Kompilierungstools auf eine neue Plattform
+ AWS CodeBuild als Infrastruktur für die Erstellung der Anwendung
+ Andere AWS Cloud Ressourcen wie Amazon Linux

**Zielarchitektur**

![\[Architektur für die Erstellung von COBOL Db2-Programmen auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Das Diagramm veranschaulicht folgende Vorgänge:

1. Der Benutzer lädt seinen Code in ein Quellcodeverwaltungs-Repository wie oder hoch. GitHub GitLab

1. AWS CodePipeline bemerkt die Änderung und ruft den Code aus dem Repository ab.

1. CodePipeline startet AWS CodeBuild und sendet den Code.

1. CodeBuild folgt den Anweisungen in der `buildspec.yml` Vorlage (im Abschnitt [Zusätzliche Informationen](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)), um:

   1. Holen Sie sich den IBM Data Server Client aus einem Amazon Simple Storage Service (Amazon S3) -Bucket.

   1. Installieren und richten Sie den IBM Data Server Client ein.

   1. Rufen Sie die Db2-Anmeldeinformationen von ab AWS Secrets Manager.

   1. Stellen Sie eine Verbindung zum Db2-Server her.

   1. Kompilieren Sie das COBOL-Programm vor, kompilieren Sie es und binden Sie es.

   1. Speichern Sie die fertigen Produkte zur AWS CodeDeploy Verwendung in einem S3-Bucket.

1. CodePipeline beginnt CodeDeploy.

1. CodeDeploy koordiniert seine Agenten, die bereits in den Laufzeitumgebungen installiert sind. Die Agenten rufen die Anwendung von Amazon S3 ab und installieren sie gemäß den Anweisungen in`appspec.yml`.

Um die Dinge einfach zu halten und sich auf den Build zu konzentrieren, decken die Anweisungen in diesem Muster die Schritte 1 bis 4 ab, beinhalten jedoch nicht die Bereitstellung des COBOL Db2-Programms.

**Automatisierung und Skalierung**

Der Einfachheit halber beschreibt dieses Muster, wie Ressourcen manuell bereitgestellt werden. Es stehen jedoch zahlreiche Automatisierungsoptionen zur Verfügung, wie, und HashiCorp Terraform CloudFormation AWS Cloud Development Kit (AWS CDK), mit denen diese Aufgaben automatisiert werden können. Weitere Informationen finden Sie in der Dokumentation [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)und [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

## Tools
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**AWS-Services**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)ist ein vollständig verwalteter Build-Service, der Sie beim Kompilieren von Quellcode, beim Ausführen von Komponententests und beim Erstellen von Artefakten unterstützt, die sofort einsatzbereit sind.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatisiert Bereitstellungen für Amazon EC2 - oder lokale Instances, AWS Lambda Funktionen oder Amazon Elastic Container Service (Amazon ECS) -Services.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)hilft Ihnen dabei, die verschiedenen Phasen einer Softwareversion schnell zu modellieren und zu konfigurieren und die Schritte zu automatisieren, die für die kontinuierliche Veröffentlichung von Softwareänderungen erforderlich sind.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)stellt Tools und Ressourcen bereit, die Sie bei der Planung und Implementierung der Migration und Modernisierung von Mainframes zu AWS verwalteten Runtime-Umgebungen unterstützen.

**Andere Tools**
+ **Amazon ECR-Image für AWS Mainframe Modernization Replatform-Tools**. Um eine COBOL-Anwendung zu kompilieren, müssen Sie sie CodeBuild mithilfe eines Amazon Elastic Container Registry (Amazon ECR) -Images initiieren, das die AWS Mainframe Modernization Replatform-Tools enthält:

  `673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`

  *Weitere Informationen zum verfügbaren ECR-Image finden Sie im [Tutorial im Benutzerhandbuch](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html).AWS Mainframe Modernization *
+ Die [IBM Data Server Client-Software](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) ist für die Vorkompilierung und Einbindung von COBOL Db2-Programmen unverzichtbar. CodeBuild Sie fungiert als Brücke zwischen dem COBOL-Compiler und Db2.

## Best Practices
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Nicht jedes COBOL-Programm stützt sich auf Db2 als Datenpersistenzschicht. Stellen Sie sicher, dass Kompilierungsanweisungen für den Zugriff auf Db2 nur auf COBOL-Programme angewendet werden, die speziell für die Interaktion mit Db2 entwickelt wurden. Implementieren Sie eine Logik, um zwischen COBOL-Db2-Programmen und COBOL-Programmen zu unterscheiden, die Db2 nicht verwenden.
+ Es wird empfohlen, das Kompilieren von Programmen zu vermeiden, die nicht geändert wurden. Implementieren Sie einen Prozess, um zu ermitteln, welche Programme kompiliert werden müssen.

## Epen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-epics"></a>

### Erstellen Sie die Cloud-Infrastruktur
<a name="create-the-cloud-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket, um den IBM Data Server Client und die Pipeline-Artefakte zu hosten. | Sie müssen einen S3-Bucket einrichten, um (a) den IBM Data Server Client hochzuladen, (b) Ihren Code aus dem Repository zu speichern und (c) die Ergebnisse des Build-Prozesses zu speichern.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Informationen zum Erstellen eines S3-Buckets finden Sie in der [Amazon S3 S3-Dokumentation.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) | Allgemeines AWS | 
| Laden Sie den IBM Data Server Client in den S3-Bucket hoch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Allgemeines AWS | 
| Erstellen Sie ein AWS Secrets Manager Geheimnis für Ihre Db2-Anmeldeinformationen. | Um ein Geheimnis zu erstellen, um Ihre DB2 Anmeldeinformationen sicher zu speichern:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Weitere Informationen zum Erstellen von Geheimnissen finden Sie in der [Secrets Manager Manager-Dokumentation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | Allgemeines AWS | 
| Stellen Sie sicher, dass auf Db2 vom VPC-Subnetz aus zugegriffen werden kann. | AWS CodeBuild benötigt eine Verbindung zum Db2-Server, damit der Data Server Client Vorkompilierungs- und Bindungsvorgänge durchführen kann. Stellen Sie sicher, dass der Db2-Server über eine sichere Verbindung erreicht werden CodeBuild kann.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Netzwerkadministrator, General AWS | 

### Erstellen Sie die Anwendungsartefakte
<a name="create-the-application-artifacts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das COBOL Db2-Asset. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | App-Developer | 
| Erstellen Sie die Datei `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connect dein Repository mit CodePipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Sie benötigen den Amazon-Ressourcennamen (ARN) für die Verbindung, wenn Sie CodePipeline in einem späteren Schritt die AWS Identity and Access Management (IAM) -Richtlinie für erstellen. | AWS DevOps | 

### Konfigurieren von -Berechtigungen
<a name="configure-permissions"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine IAM-Richtlinie für CodeBuild. | Das CodeBuild Projekt benötigt Zugriff auf einige Ressourcen, darunter Secrets Manager und Amazon S3.So richten Sie die erforderlichen Berechtigungen ein:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Weitere Informationen zum Erstellen von IAM-Richtlinien finden Sie in der [IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | Allgemeines AWS | 
| Erstellen Sie eine IAM-Rolle für CodeBuild. | Um die Sicherheitsrichtlinien für verfügbar zu machen CodeBuild, müssen Sie eine IAM-Rolle konfigurieren.Um diese Rolle zu erstellen:1. Wählen Sie in der [IAM-Konsole](https://console.aws.amazon.com/iam) im Navigationsbereich **Rollen**, **Rolle erstellen** aus.3. Behalten Sie für den **Entitätstyp Vertrauenswürdig** die **AWS-Service**Standardeinstellung bei.4. Wählen **Sie unter Anwendungsfall** den CodeBuild Dienst aus und klicken Sie dann auf **Weiter**.4. Suchen Sie in der Liste der verfügbaren IAM-Richtlinien nach der Richtlinie, für die Sie sie erstellt haben CodeBuild, und klicken Sie dann auf **Weiter**, um sie der Rolle hinzuzufügen.5. Geben Sie einen Namen für die Rolle an und wählen Sie **Rolle erstellen** aus, um sie zur future in zu speichern CodeBuild.Weitere Informationen zum Erstellen einer IAM-Rolle für eine AWS-Service finden Sie in der [IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | Allgemeines AWS | 
| Erstellen Sie eine IAM-Richtlinie für CodePipeline. | Die AWS CodePipeline Pipeline benötigt Zugriff auf einige Ressourcen, einschließlich Ihres Code-Repositorys und Amazon S3.Wiederholen Sie die zuvor beschriebenen Schritte CodeBuild , um eine IAM-Richtlinie für zu erstellen CodePipeline (wählen Sie in Schritt 2 **CodePipeline**statt **CodeBuild**). | AWS DevOps | 
| Erstellen Sie eine IAM-Rolle für CodePipeline. | Um die Sicherheitsrichtlinien für verfügbar zu machen CodePipeline, müssen Sie eine IAM-Rolle konfigurieren.Um diese Rolle zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Kompilieren und binden Sie das COBOL Db2-Programm
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CodePipeline Pipeline und ein CodeBuild Projekt. | So erstellen Sie eine CodePipeline Pipeline und das CodeBuild Projekt, das das COBOL Db2-Programm kompiliert und bindet:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Überprüfen Sie die Ausgabe. | Überprüfen Sie den Erfolg des Builds, indem Sie die CodePipeline Build-Logs überprüfen. | AWS DevOps | 
| Überprüfen Sie die Ergebnisse in Db2. | Überprüfen Sie die Paketversion in der SYSPLAN-Tabelle.<pre>select CAST(NAME AS VARCHAR(10)) as name, VALIDATE, LAST_BIND_TIME, LASTUSED, CAST(PKGVERSION AS VARCHAR(10)) as PKGVERSION from SYSIBM.SYSPLAN where NAME = 'CDB2SMP' order by LAST_BIND_TIME desc<br /></pre>Die Version muss mit der CodeBuild Build-ID übereinstimmen, die `CDB2SMP` in unserem Beispiel wie folgt lautet:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Fehlerbehebung
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Gelegentlich wechselt die AWS Konsole zwischen Regionen, wenn Sie zwischen Diensten wechseln. | Stellen Sie sicher, dass Sie bei AWS-Region jedem Wechsel zwischen Diensten die Auswahl überprüfen.Der AWS-Region Selektor befindet sich in der oberen rechten Ecke des Konsolenfensters. | 
| Es kann schwierig sein, Db2-Konnektivitätsprobleme anhand von zu identifizieren. CodeBuild | Um Verbindungsprobleme zu beheben, fügen Sie der `buildspec.yml` Datei den folgenden DB2 Verbindungsbefehl hinzu. Dieser Zusatz hilft Ihnen beim Debuggen und Beheben von Verbindungsproblemen.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Gelegentlich wird im Rollenbereich der IAM-Konsole die von Ihnen erstellte IAM-Richtlinie nicht sofort angezeigt. | Wenn Sie auf eine Verzögerung stoßen, aktualisieren Sie den Bildschirm, um die neuesten Informationen anzuzeigen. | 

## Zugehörige Ressourcen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**IBM-Dokumentation**
+ [IBM Data Server Client- und Treibertypen](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Laden Sie IBM Data Server Client und Treibertypen herunter](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS Dokumentation**
+ [Amazon S3 S3-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Benutzerhandbuch](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Benutzerhandbuch](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Benutzerhandbuch](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Benutzerhandbuch](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Benutzerhandbuch** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Zusätzliche Informationen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild Richtlinie**

Ersetzen Sie die Platzhalter `<RegionID>``<AccountID>`,, `<SubnetARN>``<BucketARN>`, und `<DB2CredSecretARN>` durch Ihre Werte.

```
{"Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*" },
        {"Action": ["ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", 
                    "ecr:BatchCheckLayerAvailability"],
         "Effect": "Allow", 
         "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools"},
        {"Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::aws-m2-repo-*/*"},
        {"Action": ["logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup"],
         "Effect": "Allow", "Resource": "arn:aws:logs:<RegionId>:<AccountId>:*"},
        {"Action": ["ec2:DescribeVpcs", "ec2:DescribeSubnets", 
                    "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", 
                    "ec2:DescribeDhcpOptions", "ec2:DeleteNetworkInterface", 
                    "ec2:CreateNetworkInterface"],
         "Effect": "Allow", "Resource": "*"},
        {"Action": "ec2:CreateNetworkInterfacePermission", 
         "Effect": "Allow", "Resource": ["<SubnetARN>"]},
        {"Action": "s3:*", "Effect": "Allow", "Resource": ["<BucketARN>/*","<BucketARN>"]},
        {"Action": "secretsmanager:GetSecretValue", 
         "Effect": "Allow", "Resource": "<DB2CredSecretARN>"}
    ]
}
```

**CodePipeline Richtlinie**

Ersetzen Sie die Platzhalter `<BucketARN>` und `<ConnectionARN>` durch Ihre Werte.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": ["s3:List*", "s3:GetObjectVersion", "s3:GetObject", "s3:GetBucketVersioning" ], 
        "Effect": "Allow",
        "Resource": ["<BucketARN>/*", "<BucketARN>"]},
        {"Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds"], 
         "Effect": "Allow", "Resource": "*"},
        {"Action": ["codestar-connections:UseConnection"],
         "Effect": "Allow", "Resource": "<ConnectionARN>"}
        ]
}
```

**`buildspec.yml`**

Ersetzen Sie den `<your-bucket-name>` Platzhalter durch Ihren tatsächlichen S3-Bucket-Namen.

```
version: 0.2
phases:
  pre_build:
    commands:
      - /var/microfocuslicensing/bin/mfcesd -no > /var/microfocuslicensing/logs/mfcesd_startup.log 2>&1 &
      - |
        mkdir $CODEBUILD_SRC_DIR/db2client
        aws s3 cp s3://<your-bucket-name>/v11.5.8_linuxx64_client.tar.gz $CODEBUILD_SRC_DIR/db2client/ >> /dev/null 2>&1
        tar -xf $CODEBUILD_SRC_DIR/db2client/v11.5.8_linuxx64_client.tar.gz -C $CODEBUILD_SRC_DIR/db2client/
        cd $CODEBUILD_SRC_DIR/db2client/
        ./client/db2_install -f sysreq -y -b /opt/ibm/db2/V11.5 >> /dev/null 2>&1        
        useradd db2cli
        /opt/ibm/db2/V11.5/instance/db2icrt -s client -u db2cli db2cli
        DB2CRED=$(aws secretsmanager get-secret-value --secret-id dev-db2-cred | jq -r '.SecretString | fromjson')
        read -r DB2USER DB2PASS DB_NODE DB_HOST DB_PORT DB_NAME DB_QUAL <<<$(echo $DB2CRED | jq -r '.username, .password, .db2node, .db2host, .db2port, .db2name, .qualifier')
        . /home/db2cli/sqllib/db2profile
        db2 catalog tcpip node $DB_NODE remote $DB_HOST server $DB_PORT
        db2 catalog db $DB_NAME as $DB_NAME at node $DB_NODE authentication server
  build:
    commands:
      - |
        revision=$CODEBUILD_SRC_DIR/loadlib
        mkdir -p $revision; cd $revision
        . /opt/microfocus/EnterpriseDeveloper/bin/cobsetenv
        cob -zU $CODEBUILD_SRC_DIR/CDB2SMP.cbl -C "DB2(DB==${DB_NAME} PASS==${DB2USER}.${DB2PASS} VERSION==${CODEBUILD_BUILD_NUMBER} COLLECTION==DB2AWSDB"
artifacts:
  files:
    - "**/*"
  base-directory: $revision
```