

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea programmi COBOL Db2 usando e Modernizzazione del mainframe AWS AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

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

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

**Nota**  
Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience) non è più aperto a nuovi clienti. Per funzionalità simili a Modernizzazione del mainframe AWS Service (Managed Runtime Environment experience), esplora Modernizzazione del mainframe AWS Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Modifica della Modernizzazione del mainframe AWS disponibilità](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Questo modello spiega come creare un semplice AWS CodeBuild progetto per precompilare e associare i programmi COBOL Db2 utilizzando gli strumenti Replatform. Modernizzazione del mainframe AWS Ciò consente la distribuzione e l'esecuzione di questi programmi nell'ambiente di runtime Replatform. Modernizzazione del mainframe AWS 

COBOL, un linguaggio di programmazione orientato al business, alimenta molte applicazioni critiche grazie alla sua affidabilità e leggibilità. IBM Db2, un sistema di gestione di database relazionali, gestisce grandi volumi di dati in modo efficiente e si integra con i programmi COBOL tramite SQL. Insieme, COBOL e Db2 costituiscono la spina dorsale delle operazioni cruciali in settori come quello finanziario e governativo, nonostante l'emergere di nuove tecnologie.

La migrazione dei componenti COBOL e Db2 dall'ambiente mainframe ad altre piattaforme comporta sfide quali la compatibilità della piattaforma, la complessità dell'integrazione, la migrazione dei dati e l'ottimizzazione delle prestazioni. Lo spostamento di questi componenti critici richiede un'attenta pianificazione, competenze tecniche e risorse per garantire una migrazione senza intoppi pur mantenendo affidabilità e funzionalità.

Il Modernizzazione del mainframe AWS servizio fornisce strumenti e risorse per ripiattaforma applicazioni e database mainframe da eseguire sull' AWS infrastruttura, come le istanze Amazon Elastic Compute Cloud (Amazon EC2). Ciò comporta lo spostamento dei carichi di lavoro mainframe sul cloud senza importanti modifiche al codice.

Il processo di precompilazione e associazione di Db2 è essenziale per ottimizzare le prestazioni e l'affidabilità delle applicazioni di database. La precompilazione trasforma le istruzioni SQL incorporate in codice eseguibile, riducendo il sovraccarico di runtime e migliorando l'efficienza. Il processo di associazione collega il codice precompilato con le strutture del database, facilitando i percorsi di accesso e l'ottimizzazione delle query. Questo processo garantisce l'integrità dei dati, migliora la reattività delle applicazioni e protegge dalle vulnerabilità di sicurezza. Le applicazioni correttamente precompilate e associate riducono al minimo il consumo di risorse, migliorano la scalabilità e mitigano i rischi degli attacchi di SQL injection.

## Prerequisiti e limitazioni
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Prerequisiti**
+ Un accesso Account AWS alla console a livello amministrativo.
+ Un sistema di database IBM Db2, ad esempio IBM Db2 for z/OS o Db2 per Linux, Unix e Windows (LUW).
+ [Il software IBM Data Server Client, disponibile per il download dal sito Web IBM.](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers) Per ulteriori informazioni, consulta i tipi di [client IBM Data Server e Driver Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Un programma COBOL Db2 da compilare e associare. In alternativa, questo modello fornisce un programma di esempio di base che è possibile utilizzare.
+ Un cloud privato virtuale (VPC) AWS con una rete privata. Per informazioni sulla creazione di un VPC, consulta la documentazione di [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Un repository per il controllo del codice sorgente come o. GitHub GitLab

**Limitazioni**
+ Per le AWS CodeBuild quote, vedere [Quote](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) per. AWS CodeBuild
+ Alcune Servizi AWS non sono disponibili in tutte. Regioni AWS Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta la pagina [Endpoint e quote del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

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

**Stack tecnologico di origine**

Lo stack di origine include:
+ Programmi COBOL che utilizzano un database Db2 per archiviare i dati
+ Compilatore IBM COBOL e Db2 per precompilatore z/OS 
+ Altre parti della configurazione del mainframe, come il file system, il gestore delle transazioni e lo spool

**Stack tecnologico Target**

L'approccio di questo modello funziona per due opzioni: spostare i dati da Db2 for z/OS a Db2 per LUW o rimanere su Db2 per z/OS. L'architettura di destinazione include:
+ Programmi COBOL che utilizzano un database Db2 per archiviare i dati
+ Modernizzazione del mainframe AWS Strumenti di compilazione per ripiattaforme
+ AWS CodeBuild come infrastruttura per creare l'applicazione
+ Altre Cloud AWS risorse come Amazon Linux

**Architettura Target**

![\[Architettura per la creazione di programmi COBOL Db2 su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Il diagramma illustra quanto segue:

1. L'utente carica il proprio codice in un repository di controllo del codice sorgente come o. GitHub GitLab

1. AWS CodePipeline rileva la modifica e ottiene il codice dal repository.

1. CodePipeline avvia AWS CodeBuild e invia il codice.

1. CodeBuild segue le istruzioni contenute nel `buildspec.yml` modello (fornito nella sezione [Informazioni aggiuntive](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) per:

   1. Ottieni l'IBM Data Server Client da un bucket Amazon Simple Storage Service (Amazon S3).

   1. Installa e configura IBM Data Server Client.

   1. Recupera le credenziali Db2 da. Gestione dei segreti AWS

   1. Connettiti al server Db2.

   1. Precompila, compila e associa il programma COBOL.

   1. Salva i prodotti finiti in un bucket S3 per utilizzarli. AWS CodeDeploy 

1. CodePipeline inizia. CodeDeploy

1. CodeDeploy coordina i suoi agenti, che sono già installati negli ambienti di runtime. Gli agenti recuperano l'applicazione da Amazon S3 e la installano in base alle istruzioni contenute in. `appspec.yml`

Per semplificare le cose e concentrarsi sulla compilazione, le istruzioni riportate in questo schema coprono i passaggi da 1 a 4 ma non includono l'implementazione del programma COBOL Db2.

**Automazione e scalabilità**

Per semplicità, questo modello descrive come fornire le risorse manualmente. Tuttavia, sono disponibili numerose opzioni di automazione, come CloudFormation, e HashiCorp Terraform AWS Cloud Development Kit (AWS CDK), che automatizzano queste attività. Per ulteriori informazioni, consulta la documentazione [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)e [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

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

**Servizi AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)è un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatizza le distribuzioni su Amazon EC2 o su istanze AWS Lambda , funzioni o servizi Amazon Elastic Container Service (Amazon ECS) in locale.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)ti aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.
+ [Modernizzazione del mainframe AWS](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornisce strumenti e risorse per aiutarvi a pianificare e implementare la migrazione e la modernizzazione dai mainframe agli ambienti di runtime AWS gestiti.

**Altri strumenti**
+ **Immagine Amazon ECR per gli strumenti Modernizzazione del mainframe AWS Replatform**. Per compilare un'applicazione COBOL, devi iniziare CodeBuild utilizzando un'immagine Amazon Elastic Container Registry (Amazon ECR) che contiene gli strumenti Replatform: Modernizzazione del mainframe AWS 

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

  [https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html)
+ [Il software IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) è essenziale per precompilare e associare i programmi COBOL Db2. CodeBuild Funge da ponte tra il compilatore COBOL e Db2.

## Best practice
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Non tutti i programmi COBOL si affidano a Db2 come livello di persistenza dei dati. Assicuratevi che le direttive di compilazione per l'accesso a Db2 siano applicate solo ai programmi COBOL progettati specificamente per interagire con Db2. Implementate una logica per distinguere tra i programmi COBOL Db2 e i programmi COBOL che non utilizzano Db2.
+ Ti consigliamo di evitare di compilare programmi che non sono stati modificati. Implementa un processo per identificare quali programmi richiedono la compilazione.

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

### Crea l'infrastruttura cloud
<a name="create-the-cloud-infrastructure"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un bucket S3 per ospitare il client IBM Data Server e gli artefatti della pipeline. | È necessario configurare un bucket S3 per (a) caricare IBM Data Server Client, (b) archiviare il codice dal repository e (c) archiviare i risultati del processo di compilazione.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per informazioni su come creare un bucket S3, consulta la documentazione di [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Informazioni generali su AWS | 
| Carica l'IBM Data Server Client nel bucket S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Informazioni generali su AWS | 
| Crea un Gestione dei segreti AWS segreto per le tue credenziali Db2. | Per creare un segreto per archiviare in modo sicuro le tue credenziali: DB2 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per ulteriori informazioni sulla creazione di segreti, consulta la [documentazione di Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | Informazioni generali su AWS | 
| Verifica che Db2 sia accessibile dalla sottorete VPC. | AWS CodeBuild necessita di una connessione al server Db2 in modo che il Data Server Client possa eseguire operazioni di precompilazione e associazione. Assicurati che CodeBuild possa raggiungere il server Db2 tramite una connessione sicura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Amministratore di rete, General AWS | 

### Crea gli artefatti dell'applicazione
<a name="create-the-application-artifacts"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Create la risorsa COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Sviluppatore di app | 
| Crea il file `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connect il tuo repository a. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Avrai bisogno dell'Amazon Resource Name (ARN) per la connessione quando crei la policy AWS Identity and Access Management (IAM) per una CodePipeline fase successiva. | AWS DevOps | 

### Configurazione delle autorizzazioni
<a name="configure-permissions"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una policy IAM per CodeBuild. | Il CodeBuild progetto richiede l'accesso ad alcune risorse, tra cui Secrets Manager e Amazon S3.Per configurare le autorizzazioni necessarie:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Per ulteriori informazioni sulla creazione di policy IAM, consulta la [documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | Informazioni generali su AWS | 
| Crea un ruolo IAM per CodeBuild. | Per rendere disponibili le politiche di sicurezza CodeBuild, devi configurare un ruolo IAM.Per creare questo ruolo:1. Sulla [console IAM](https://console.aws.amazon.com/iam), nel riquadro di navigazione, scegli **Ruoli**, **Crea ruolo**.3. Per il **tipo di entità affidabile**, mantieni l'**Servizio AWS**impostazione predefinita.4. Per **Caso d'uso**, seleziona il CodeBuild servizio, quindi scegli **Avanti**.4. Nell'elenco delle policy IAM disponibili, individua la policy per cui hai creato CodeBuild, quindi scegli **Avanti** per associarla al ruolo.5. Specificate un nome per il ruolo e scegliete **Crea ruolo** per salvarlo per riferimenti futuri in CodeBuild.Per ulteriori informazioni sulla creazione di un ruolo IAM per un Servizio AWS, consulta la [documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | Informazioni generali su AWS | 
| Crea una policy IAM per CodePipeline. | La AWS CodePipeline pipeline richiede l'accesso ad alcune risorse, tra cui il repository di codice e Amazon S3.Ripeti i passaggi forniti in precedenza per CodeBuild creare una policy IAM per CodePipeline (nel passaggio 2, scegli **CodePipeline**invece di). **CodeBuild** | AWS DevOps | 
| Crea un ruolo IAM per CodePipeline. | Per rendere disponibili le politiche di sicurezza CodePipeline, devi configurare un ruolo IAM.Per creare questo ruolo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compila e associa il programma COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una CodePipeline pipeline e un CodeBuild progetto. | Per creare una CodePipeline pipeline e il CodeBuild progetto che compila e associa il programma COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Esamina l'output. | Verifica il successo della build esaminando i log di CodePipeline compilazione. | AWS DevOps | 
| Controlla i risultati in Db2. | Verifica la versione del pacchetto nella tabella SYSPLAN.<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>La versione deve corrispondere all'ID di CodeBuild build, che è `CDB2SMP` nel nostro esempio:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

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


| Problema | Soluzione | 
| --- | --- | 
| Occasionalmente, la AWS console cambia regione quando ci si sposta da un servizio all'altro. | Assicurati di verificare la selezione Regione AWS ogni volta che passi da un servizio all'altro.Il Regione AWS selettore si trova nell'angolo superiore destro della finestra della console. | 
| Può essere difficile identificare i problemi di connettività di Db2. CodeBuild | Per risolvere i problemi di connettività, aggiungi il seguente comando DB2 connect al file. `buildspec.yml` Questa aggiunta consente di eseguire il debug e risolvere i problemi di connettività.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| A volte, il riquadro dei ruoli nella console IAM non mostra immediatamente la policy IAM che hai creato. | Se riscontri un ritardo, aggiorna lo schermo per visualizzare le informazioni più recenti. | 

## Risorse correlate
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**Documentazione IBM**
+ [Client e tipi di driver IBM Data Server](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Scarica i tipi di client e driver IBM Data Server](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentazione**
+ [Guida per l'utente di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guida per l'utente](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [Modernizzazione del mainframe AWS Guida per l'utente](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [Gestione dei segreti AWS Guida per l'utente](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guida per l'utente](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guida per l'utente** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Informazioni aggiuntive
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild policy**

Sostituisci i segnaposto`<RegionID>`,, `<AccountID>` `<SubnetARN>``<BucketARN>`, e `<DB2CredSecretARN>` con i tuoi valori.

```
{"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 policy**

Sostituisci i segnaposto `<BucketARN>` e `<ConnectionARN>` con i tuoi valori.

```
{
    "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`**

Sostituisci il `<your-bucket-name>` segnaposto con il nome effettivo del bucket S3.

```
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
```