Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Erstellen Sie COBOL Db2-Programme mit AWS Mainframe Modernization und AWS CodeBuild - AWS Prescriptive Guidance

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.

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 AWS Mainframe Modernization und AWS CodeBuild

Erstellt von Luis Gustavo Dantas () und Eduardo Zimelewicz () AWS AWS

Übersicht

Dieses Muster erklärt, wie ein einfaches AWS CodeBuild Projekt zum Vorkompilieren und Binden von Db2-Programmen mithilfe der Replatform-Tools erstellt wird. COBOL AWS Mainframe Modernization Dies ermöglicht die Bereitstellung und Ausführung dieser Programme in der AWS Mainframe Modernization Replatform-Laufzeitumgebung.

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 so in COBOL Programme integrieren. SQL Zusammen bilden Db2 COBOL und Db2 trotz des Aufkommens neuerer Technologien das Rückgrat geschäftskritischer Abläufe in Branchen wie dem Finanzwesen und der Regierung.

Die Migration COBOL von 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 (AmazonEC2) -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 das Risiko von SQL Injektionsangriffen.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

Architektur

Quelltechnologie-Stack

Der Quellstapel umfasst:

  • COBOLProgramme, die eine Db2-Datenbank zum Speichern von Daten verwenden

  • IBMCOBOLCompiler und Db2 für z/OS-Precompiler

  • Andere Teile des Mainframe-Setups, wie das Dateisystem, der Transaktionsmanager und der Spool

Zieltechnologie-Stack

Der Ansatz dieses Musters funktioniert bei zwei Optionen: beim Verschieben von Daten von Db2 für z/OS nach Db2 for oder beim Verbleiben auf Db2 for LUW z/OS. Die Zielarchitektur umfasst:

  • COBOLProgramme, 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 den Aufbau von COBOL Db2-Programmen. AWS

Das Diagramm veranschaulicht folgende Vorgänge:

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

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

  3. CodePipeline startet AWS CodeBuild und sendet den Code.

  4. CodeBuild folgt den Anweisungen in der buildspec.yml Vorlage (im Abschnitt Zusätzliche Informationen), um:

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

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

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

    4. Connect zum Db2-Server her.

    5. Das Programm vorkompilieren, kompilieren und binden. COBOL

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

  5. CodePipeline beginnt CodeDeploy.

  6. 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 inappspec.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 AWS CloudFormation AWS Cloud Development Kit (AWS CDK), mit denen diese Aufgaben automatisiert werden können. Weitere Informationen finden Sie in der Dokumentation AWS CloudFormationund AWS CDK.

Tools

AWS-Services

  • AWS CodeBuildist 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 CodeDeployautomatisiert Bereitstellungen für Amazon EC2 - oder lokale Instances, AWS Lambda Funktionen oder Amazon Elastic Container Service (AmazonECS) -Services.

  • AWS CodePipelinehilft 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 Modernizationstellt 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

  • ECRAmazon-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 (AmazonECR) -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 zu dem verfügbaren ECR Image finden Sie im Tutorial im AWS Mainframe Modernization Benutzerhandbuch.

  • IBMDie Data Server Client-Software ist für die Vorkompilierung und Einbindung von COBOL Db2-Programmen unerlässlich. CodeBuild Sie fungiert als Brücke zwischen dem COBOL Compiler und Db2.

Bewährte Methoden

  • 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

AufgabeBeschreibungErforderliche 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.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3 S3-Konsole.

  2. Wählen Sie einen vorhandenen S3-Bucket oder erstellen Sie einen neuen Bucket. Notieren Sie sich den Amazon-Ressourcennamen (ARN) des Buckets für die future Verwendung.

Informationen zum Erstellen eines S3-Buckets finden Sie in der Amazon S3 S3-Dokumentation.

Allgemein AWS

Laden Sie den IBM Data Server Client in den S3-Bucket hoch.

  1. Wählen Sie auf der Amazon S3 S3-Konsole den Bucket aus, um ihn zu öffnen.

  2. Wählen Sie Ordner erstellen, geben Sie seinen Namen als Client an und wählen Sie dann Ordner erstellen.

  3. Öffnen Sie den Client-Ordner und wählen Sie Hochladen, Dateien hinzufügen.

  4. Wählen Sie die IBMData Server Client-Datei aus, die Sie zuvor von der IBMWebsite in Ihr lokales Dateisystem heruntergeladen haben.

    Der Dateiname sollte v11.5.8_linuxx64_client.tar.gz oder ähnelnv11.5.9_linuxx64_client.tar.gz.

  5. Wählen Sie Öffnen, Hochladen und warten Sie, bis der Upload abgeschlossen ist.

  6. Wählen Sie auf der Registerkarte Dateien und Ordner den Data Server Client aus und notieren Sie sich dessen S3URI.

Allgemein 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:

  1. Wählen Sie in der Secrets Manager Manager-Konsole die Option Neues Geheimnis speichern aus.

  2. Wählen Sie im Bereich Geheimtyp auswählen die Optionen Anderer Geheimtyp und Klartext aus.

  3. Geben Sie in das Feld Klartext Ihre Db2-Anmeldeinformationen ein, indem Sie die folgende Struktur verwenden. JSON

    { "username": "<your-db2-user-name>", "password": "<your-db2-password>", "db2node": "db2dev", "db2host": "<your-db2-hostname-or-IP>", "db2port": <your-db2-port>, "db2name": "<your-db2-location>", "qualifier": "<your-db2-qualifier>" }
  4. Wählen Sie Weiter und geben Sie dem Geheimnis einen Namen wie. dev-db2-cred

  5. Wählen Sie Weiter, Weiter und Speichern.

Weitere Informationen zum Erstellen von Geheimnissen finden Sie in der Secrets Manager Manager-Dokumentation.

Allgemein 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.

  1. Öffnen Sie die VPCAmazon-Konsole.

  2. Wählen Sie im Navigationsbereich Subnetze aus und notieren Sie sich die IDs und IPv4CIDRsdie privaten Subnetze, in denen sie funktionieren CodeBuild sollen.

  3. Aktualisieren Sie die aktuellen Einstellungen für die Netzwerkzugriffskontrolle für Ihr Db2-System, indem Sie eine Regel für eingehenden Datenverkehr einführen. Diese Regel sollte den benutzerdefinierten TCP Zugriff auf den Db2-Port ausschließlich von dem Subnetz aus ermöglichenCIDRs, das Ihrem Projekt zugeordnet ist. CodeBuild

Netzwerkadministrator, Allgemein AWS

Erstellen Sie die Cloud-Infrastruktur

AufgabeBeschreibungErforderliche 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.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon S3 S3-Konsole.

  2. Wählen Sie einen vorhandenen S3-Bucket oder erstellen Sie einen neuen Bucket. Notieren Sie sich den Amazon-Ressourcennamen (ARN) des Buckets für die future Verwendung.

Informationen zum Erstellen eines S3-Buckets finden Sie in der Amazon S3 S3-Dokumentation.

Allgemein AWS

Laden Sie den IBM Data Server Client in den S3-Bucket hoch.

  1. Wählen Sie auf der Amazon S3 S3-Konsole den Bucket aus, um ihn zu öffnen.

  2. Wählen Sie Ordner erstellen, geben Sie seinen Namen als Client an und wählen Sie dann Ordner erstellen.

  3. Öffnen Sie den Client-Ordner und wählen Sie Hochladen, Dateien hinzufügen.

  4. Wählen Sie die IBMData Server Client-Datei aus, die Sie zuvor von der IBMWebsite in Ihr lokales Dateisystem heruntergeladen haben.

    Der Dateiname sollte v11.5.8_linuxx64_client.tar.gz oder ähnelnv11.5.9_linuxx64_client.tar.gz.

  5. Wählen Sie Öffnen, Hochladen und warten Sie, bis der Upload abgeschlossen ist.

  6. Wählen Sie auf der Registerkarte Dateien und Ordner den Data Server Client aus und notieren Sie sich dessen S3URI.

Allgemein 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:

  1. Wählen Sie in der Secrets Manager Manager-Konsole die Option Neues Geheimnis speichern aus.

  2. Wählen Sie im Bereich Geheimtyp auswählen die Optionen Anderer Geheimtyp und Klartext aus.

  3. Geben Sie in das Feld Klartext Ihre Db2-Anmeldeinformationen ein, indem Sie die folgende Struktur verwenden. JSON

    { "username": "<your-db2-user-name>", "password": "<your-db2-password>", "db2node": "db2dev", "db2host": "<your-db2-hostname-or-IP>", "db2port": <your-db2-port>, "db2name": "<your-db2-location>", "qualifier": "<your-db2-qualifier>" }
  4. Wählen Sie Weiter und geben Sie dem Geheimnis einen Namen wie. dev-db2-cred

  5. Wählen Sie Weiter, Weiter und Speichern.

Weitere Informationen zum Erstellen von Geheimnissen finden Sie in der Secrets Manager Manager-Dokumentation.

Allgemein 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.

  1. Öffnen Sie die VPCAmazon-Konsole.

  2. Wählen Sie im Navigationsbereich Subnetze aus und notieren Sie sich die IDs und IPv4CIDRsdie privaten Subnetze, in denen sie funktionieren CodeBuild sollen.

  3. Aktualisieren Sie die aktuellen Einstellungen für die Netzwerkzugriffskontrolle für Ihr Db2-System, indem Sie eine Regel für eingehenden Datenverkehr einführen. Diese Regel sollte den benutzerdefinierten TCP Zugriff auf den Db2-Port ausschließlich von dem Subnetz aus ermöglichenCIDRs, das Ihrem Projekt zugeordnet ist. CodeBuild

Netzwerkadministrator, Allgemein AWS
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie das COBOL Db2-Asset.

  1. Wenn Sie ein einfaches COBOL Db2-Beispiel verwenden möchten, speichern Sie den folgenden Quellcode unter. CDB2SMP.cbl Sie können dieses Beispiel auch durch ein Programm ersetzen, das Sie bereits besitzen.

    IDENTIFICATION DIVISION. PROGRAM-ID. CDB2SMP. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAME PIC X(100). PROCEDURE DIVISION. EXEC SQL SELECT NAME INTO :WS-NAME FROM SYSIBM.SYSTABLES END-EXEC GOBACK.
  2. Übernehmen Sie die Änderungen und übertragen Sie die Datei in Ihr Repository.

App-Developer

Erstellen Sie die Datei buildspec.yml.

  1. Generieren Sie die buildspec.yml Datei anhand des Beispiels, das im Abschnitt Zusätzliche Informationen bereitgestellt wird.

  2. Übernehmen Sie die Änderungen und übertragen Sie die Datei in Ihr Repository.

AWS DevOps

Connect dein Repository mit CodePipeline.

  1. Öffnen Sie die AWS Developer Tools-Konsole.

  2. Wählen Sie im Navigationsbereich Einstellungen, Verbindungen aus.

  3. Folgen Sie den Anweisungen in der Dokumentation der Developer Tools-Konsole für den Quellanbieter Ihrer Wahl.

Sie benötigen den Amazon-Ressourcennamen (ARN) für die Verbindung, wenn Sie CodePipeline in einem späteren Schritt die Richtlinie AWS Identity and Access Management (IAM) für erstellen.

AWS DevOps

Erstellen Sie die Anwendungsartefakte

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie das COBOL Db2-Asset.

  1. Wenn Sie ein einfaches COBOL Db2-Beispiel verwenden möchten, speichern Sie den folgenden Quellcode unter. CDB2SMP.cbl Sie können dieses Beispiel auch durch ein Programm ersetzen, das Sie bereits besitzen.

    IDENTIFICATION DIVISION. PROGRAM-ID. CDB2SMP. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAME PIC X(100). PROCEDURE DIVISION. EXEC SQL SELECT NAME INTO :WS-NAME FROM SYSIBM.SYSTABLES END-EXEC GOBACK.
  2. Übernehmen Sie die Änderungen und übertragen Sie die Datei in Ihr Repository.

App-Developer

Erstellen Sie die Datei buildspec.yml.

  1. Generieren Sie die buildspec.yml Datei anhand des Beispiels, das im Abschnitt Zusätzliche Informationen bereitgestellt wird.

  2. Übernehmen Sie die Änderungen und übertragen Sie die Datei in Ihr Repository.

AWS DevOps

Connect dein Repository mit CodePipeline.

  1. Öffnen Sie die AWS Developer Tools-Konsole.

  2. Wählen Sie im Navigationsbereich Einstellungen, Verbindungen aus.

  3. Folgen Sie den Anweisungen in der Dokumentation der Developer Tools-Konsole für den Quellanbieter Ihrer Wahl.

Sie benötigen den Amazon-Ressourcennamen (ARN) für die Verbindung, wenn Sie CodePipeline in einem späteren Schritt die Richtlinie AWS Identity and Access Management (IAM) für erstellen.

AWS DevOps
AufgabeBeschreibungErforderliche 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:

  1. Öffnen Sie die IAM-Konsole.

  2. Wählen Sie im Navigationsbereich Policies, Create Policy und dann den CodeBuild Service aus.

  3. Wechseln Sie zur Formatierung von Visual zu JSONund kopieren Sie die CodeBuild Richtlinie, die im Abschnitt Zusätzliche Informationen bereitgestellt wird, in das Feld Richtlinien-Editor.

  4. Benennen Sie diese Richtlinie und speichern Sie sie, future Sie im nächsten Schritt später darauf zurückgreifen können.

Weitere Informationen zum Erstellen von IAM Richtlinien finden Sie in der IAMDokumentation.

Allgemein 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 auf der IAMKonsole im Navigationsbereich Rollen, Rolle erstellen aus.

3. Behalten Sie für den Entitätstyp Vertrauenswürdig die AWS-ServiceStandardeinstellung 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 IAMDokumentation.

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 angegebenen Schritte CodeBuild , um eine IAM Richtlinie für zu erstellen CodePipeline (wählen Sie in Schritt 2 CodePipelinestatt 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:

  1. Wählen Sie auf der IAMKonsole Rollen, Rolle erstellen aus.

  2. Für Trusted entity type (Vertrauenstyp der Entität), wählen Sie Custom trust policy (Benutzerdefinierte Vertrauensrichtlinie).

    Eine Richtlinie mit einem leeren Principal Element wird angezeigt.

  3. Fügen Sie in der Principal Zeile zwischen den geschweiften Klammern Folgendes hinzu:

    "Service": "codepipeline.amazonaws.com"

    Die Vertrauensrichtlinie wird wie folgt aussehen:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": "codepipeline.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  4. Wählen Sie Weiter.

  5. Suchen Sie in der Liste der verfügbaren IAM Richtlinien nach der Richtlinie, für die Sie sie erstellt haben CodePipeline, und klicken Sie dann auf Weiter, um sie der Rolle hinzuzufügen.

  6. Geben Sie einen Namen für die Rolle an und wählen Sie Rolle erstellen aus, um sie zur future in zu speichern CodePipeline.

AWS DevOps

Konfigurieren von Berechtigungen

AufgabeBeschreibungErforderliche 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:

  1. Öffnen Sie die IAM-Konsole.

  2. Wählen Sie im Navigationsbereich Policies, Create Policy und dann den CodeBuild Service aus.

  3. Wechseln Sie zur Formatierung von Visual zu JSONund kopieren Sie die CodeBuild Richtlinie, die im Abschnitt Zusätzliche Informationen bereitgestellt wird, in das Feld Richtlinien-Editor.

  4. Benennen Sie diese Richtlinie und speichern Sie sie, future Sie im nächsten Schritt später darauf zurückgreifen können.

Weitere Informationen zum Erstellen von IAM Richtlinien finden Sie in der IAMDokumentation.

Allgemein 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 auf der IAMKonsole im Navigationsbereich Rollen, Rolle erstellen aus.

3. Behalten Sie für den Entitätstyp Vertrauenswürdig die AWS-ServiceStandardeinstellung 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 IAMDokumentation.

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 angegebenen Schritte CodeBuild , um eine IAM Richtlinie für zu erstellen CodePipeline (wählen Sie in Schritt 2 CodePipelinestatt 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:

  1. Wählen Sie auf der IAMKonsole Rollen, Rolle erstellen aus.

  2. Für Trusted entity type (Vertrauenstyp der Entität), wählen Sie Custom trust policy (Benutzerdefinierte Vertrauensrichtlinie).

    Eine Richtlinie mit einem leeren Principal Element wird angezeigt.

  3. Fügen Sie in der Principal Zeile zwischen den geschweiften Klammern Folgendes hinzu:

    "Service": "codepipeline.amazonaws.com"

    Die Vertrauensrichtlinie wird wie folgt aussehen:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": "codepipeline.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  4. Wählen Sie Weiter.

  5. Suchen Sie in der Liste der verfügbaren IAM Richtlinien nach der Richtlinie, für die Sie sie erstellt haben CodePipeline, und klicken Sie dann auf Weiter, um sie der Rolle hinzuzufügen.

  6. Geben Sie einen Namen für die Rolle an und wählen Sie Rolle erstellen aus, um sie zur future in zu speichern CodePipeline.

AWS DevOps
AufgabeBeschreibungErforderliche 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:

  1. Öffnen Sie die CodePipeline Konsole und wählen Sie „Pipeline erstellen“, „Benutzerdefinierte Pipeline erstellen“.

  2. Geben Sie einen Namen für die Pipeline an.

  3. Wählen Sie für Servicerolle die Option Existierende Servicerolle aus und geben Sie die ARN für die IAM Rolle an, für die Sie sie erstellt haben CodePipeline.

  4. Erweitern Sie Erweiterte Einstellungen, wählen Sie Benutzerdefinierter Speicherort, wählen Sie den S3-Bucket aus, den Sie zuvor erstellt haben, und klicken Sie dann auf Weiter.

  5. Wählen Sie unter Quellanbieter Ihren externen Quellanbieter aus und geben Sie die entsprechenden Informationen für den Anbieter ein:.

    1. Wählen Sie unter Verbindung die Verbindung aus, die für den Quellanbieter erstellt wurde.

    2. Wählen Sie unter Repository-Name Ihr Repository aus.

    3. Wählen Sie unter Standardzweig den Zweig aus, in dem Ihr COBOL Programm gespeichert ist, undbuildspec.yml.

    4. Wählen Sie Weiter.

  6. Wählen Sie für Buildanbieter die Option Andere Buildanbieter, aus AWS CodeBuild.

  7. Wählen Sie als Projektname die Option Projekt erstellen aus.

    In der Konsole wird ein CodeBuild Fenster angezeigt, in dem Sie ein Build-Projekt erstellen können. In diesem Fenster:

    1. Geben Sie einen Namen für das Projekt ein.

    2. Wählen Sie unter Environment image (Umgebungsabbild) die Option Custom image (Benutzerdefiniertes Abbild) aus.

    3. Wählen Sie als Umgebungstyp die Option Linux Container aus.

    4. Wählen Sie für ECRKonto die Option Anderes ECR Konto aus.

    5. Geben Sie für Amazon ECR Repository URI Folgendes ein:673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:8.0.9.R1.

    6. Wählen Sie für Servicerolle die Option Bestehende Servicerolle und wählen Sie die Rolle aus, für die Sie erstellt haben CodeBuild.

    7. Erweitern Sie den Abschnitt Zusätzliche Konfiguration und wählen Sie dann die VPC privaten Subnetze und die Sicherheitsgruppe für dieses Projekt aus.

    8. Wählen Sie im Abschnitt Buildspec die Option Use a buildspec-Datei aus.

    9. Wählen Sie am Ende des Fensters Weiter zu. CodePipeline Das CodeBuild Fenster wird geschlossen, sodass Sie zur CodePipeline Konsole zurückkehren können.

  8. Zurück in der CodePipeline Konsole wählen Sie Weiter.

  9. Wählen Sie im Bereich Bereitstellungsphase hinzufügen die Option Bereitstellungsphase überspringen aus und bestätigen Sie.

  10. Überprüfen Sie die Pipeline-Parameter und wählen Sie dann Pipeline erstellen aus.

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.

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

Die Version muss mit der CodeBuild Build-ID übereinstimmen, die CDB2SMP in unserem Beispiel lautet:

NAME VALIDATE LAST_BIND_TIME LASTUSED PKGVERSION ---------- -------- -------------------------- ---------- ---------- CDB2SMP B 2024-05-18-11.53.11.503738 01/01/0001 19

Kompilieren und binden Sie das COBOL Db2-Programm

AufgabeBeschreibungErforderliche 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:

  1. Öffnen Sie die CodePipeline Konsole und wählen Sie „Pipeline erstellen“, „Benutzerdefinierte Pipeline erstellen“.

  2. Geben Sie einen Namen für die Pipeline an.

  3. Wählen Sie für Servicerolle die Option Existierende Servicerolle aus und geben Sie die ARN für die IAM Rolle an, für die Sie sie erstellt haben CodePipeline.

  4. Erweitern Sie Erweiterte Einstellungen, wählen Sie Benutzerdefinierter Speicherort, wählen Sie den S3-Bucket aus, den Sie zuvor erstellt haben, und klicken Sie dann auf Weiter.

  5. Wählen Sie unter Quellanbieter Ihren externen Quellanbieter aus und geben Sie die entsprechenden Informationen für den Anbieter ein:.

    1. Wählen Sie unter Verbindung die Verbindung aus, die für den Quellanbieter erstellt wurde.

    2. Wählen Sie unter Repository-Name Ihr Repository aus.

    3. Wählen Sie unter Standardzweig den Zweig aus, in dem Ihr COBOL Programm gespeichert ist, undbuildspec.yml.

    4. Wählen Sie Weiter.

  6. Wählen Sie für Buildanbieter die Option Andere Buildanbieter, aus AWS CodeBuild.

  7. Wählen Sie als Projektname die Option Projekt erstellen aus.

    In der Konsole wird ein CodeBuild Fenster angezeigt, in dem Sie ein Build-Projekt erstellen können. In diesem Fenster:

    1. Geben Sie einen Namen für das Projekt ein.

    2. Wählen Sie unter Environment image (Umgebungsabbild) die Option Custom image (Benutzerdefiniertes Abbild) aus.

    3. Wählen Sie als Umgebungstyp die Option Linux Container aus.

    4. Wählen Sie für ECRKonto die Option Anderes ECR Konto aus.

    5. Geben Sie für Amazon ECR Repository URI Folgendes ein:673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:8.0.9.R1.

    6. Wählen Sie für Servicerolle die Option Bestehende Servicerolle und wählen Sie die Rolle aus, für die Sie erstellt haben CodeBuild.

    7. Erweitern Sie den Abschnitt Zusätzliche Konfiguration und wählen Sie dann die VPC privaten Subnetze und die Sicherheitsgruppe für dieses Projekt aus.

    8. Wählen Sie im Abschnitt Buildspec die Option Use a buildspec-Datei aus.

    9. Wählen Sie am Ende des Fensters Weiter zu. CodePipeline Das CodeBuild Fenster wird geschlossen, sodass Sie zur CodePipeline Konsole zurückkehren können.

  8. Zurück in der CodePipeline Konsole wählen Sie Weiter.

  9. Wählen Sie im Bereich Bereitstellungsphase hinzufügen die Option Bereitstellungsphase überspringen aus und bestätigen Sie.

  10. Überprüfen Sie die Pipeline-Parameter und wählen Sie dann Pipeline erstellen aus.

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.

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

Die Version muss mit der CodeBuild Build-ID übereinstimmen, die CDB2SMP in unserem Beispiel lautet:

NAME VALIDATE LAST_BIND_TIME LASTUSED PKGVERSION ---------- -------- -------------------------- ---------- ---------- CDB2SMP B 2024-05-18-11.53.11.503738 01/01/0001 19

Fehlerbehebung

ProblemLö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.

db2 connect to $DB_NAME user $DB2USER using $DB2PASS

Gelegentlich wird im Rollenbereich in 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

IBM-Dokumentation

AWS Dokumentation

Zusätzliche Informationen

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
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.