

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie programas COBOL Db2 usando e AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

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

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

**nota**  
AWS Mainframe Modernization O serviço (experiência do Managed Runtime Environment) não está mais aberto a novos clientes. Para recursos semelhantes ao AWS Mainframe Modernization Serviço (experiência do Managed Runtime Environment), explore o AWS Mainframe Modernization Service (Experiência autogerenciada). Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Esse padrão explica como criar um AWS CodeBuild projeto simples para pré-compilar e vincular programas COBOL Db2 usando as ferramentas Replatform. AWS Mainframe Modernization Isso permite a implantação e a execução desses programas no ambiente de execução do AWS Mainframe Modernization Replatform.

O COBOL, uma linguagem de programação voltada para os negócios, alimenta muitas aplicações essenciais devido à sua confiabilidade e à legibilidade. O IBM Db2, um sistema de gerenciamento de banco de dados relacional, gerencia grandes volumes de dados com eficiência e se integra aos programas COBOL por meio de SQL. Juntos, o COBOL e o Db2 formam a espinha dorsal de operações essenciais em setores como finanças e governo, apesar do surgimento de novas tecnologias.

A migração de componentes COBOL e Db2 do ambiente de mainframe para outras plataformas leva a desafios como compatibilidade de plataformas, complexidade de integração, migração de dados e otimização de performance. A movimentação desses componentes essenciais requer um planejamento cuidadoso, conhecimento técnico e recursos para garantir uma migração tranquila e, ao mesmo tempo, manter a confiabilidade e a funcionalidade.

O AWS Mainframe Modernization serviço fornece ferramentas e recursos para reformular aplicativos e bancos de dados de mainframe para execução em AWS infraestrutura, como instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Isso envolve mover as workloads do mainframe para a nuvem sem grandes alterações no código.

O processo de pré-compilação e vinculação do Db2 é essencial para otimizar a performance e a confiabilidade das aplicações de banco de dados. A pré-compilação transforma instruções SQL incorporadas em código executável, o que reduz a sobrecarga de runtime e aumenta a eficiência. O processo de vinculação vincula o código pré-compilado às estruturas do banco de dados, facilitando os caminhos de acesso e a otimização de consultas. Esse processo garante a integridade dos dados, melhora a capacidade de resposta da aplicação e protege contra vulnerabilidades de segurança. Aplicações devidamente pré-compiladas e vinculadas minimizam o consumo de recursos, aprimoram a escalabilidade e reduzem os riscos de ataques de injeção de SQL.

## Pré-requisitos e limitações
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Pré-requisitos **
+ Um acesso Conta da AWS ao console em nível administrativo.
+ Um sistema de banco de dados IBM Db2, como IBM Db2 para z/OS ou Db2 para Linux, Unix e Windows (LUW).
+ O software do IBM Data Server Client, que está disponível para download no [site da IBM](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers). Para obter mais informações, consulte [IBM Data Server Client and Data Server Driver types](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Um programa COBOL Db2 para ser compilado e vinculado. Como alternativa, este padrão fornece um exemplo básico de programa que você pode usar.
+ Uma nuvem privada virtual (VPC) ativada AWS com uma rede privada. Para obter mais informações sobre como criar uma VPC, consulte a [documentação da Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Um repositório de controle de origem, como GitHub ou GitLab.

**Limitações**
+ Para AWS CodeBuild cotas, consulte [Cotas](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) para. AWS CodeBuild
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [Serviços da AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte a página [Cotas e endpoints de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

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

**Pilha de tecnologia de origem**

A pilha de origem inclui:
+ Programas COBOL que usam um banco de dados Db2 para armazenar dados
+ Compilador IBM COBOL e Db2 para pré-compilador z/OS 
+ Outras partes da configuração do mainframe, como o sistema de arquivos, o gerenciador de transações e o spool

**Pilha de tecnologias de destino**

A abordagem desse padrão funciona com duas opções: mover dados do Db2 para o Db2 z/OS para LUW ou permanecer no Db2 para z/OS. A arquitetura de destino inclui:
+ Programas COBOL que usam um banco de dados Db2 para armazenar dados
+ AWS Mainframe Modernization Ferramentas de compilação de replataformas
+ AWS CodeBuild como a infraestrutura para criar o aplicativo
+ Outros Nuvem AWS recursos, como Amazon Linux

**Arquitetura de destino**

![\[A arquitetura para criar programas COBOL Db2 na AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


O diagrama ilustra o seguinte:

1. O usuário carrega seu código em um repositório de controle de origem, como GitHub ou. GitLab

1. AWS CodePipeline percebe a alteração e obtém o código do repositório.

1. CodePipeline inicia AWS CodeBuild e envia o código.

1. CodeBuild segue as instruções no `buildspec.yml` modelo (fornecidas na seção [Informações adicionais](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)) para:

   1. Obter o IBM Data Server Client de um bucket do Amazon Simple Storage Service (Amazon S3).

   1. Instalar e configurar o IBM Data Server Client.

   1. Recupere as credenciais do Db2 de. AWS Secrets Manager

   1. Conecte-se ao servidor do Db2.

   1. Pré-compilar, compilar e vincular o programa COBOL.

   1. Guarde os produtos acabados em um balde S3 AWS CodeDeploy para uso.

1. CodePipeline começa CodeDeploy.

1. CodeDeploy coordena seus agentes, que já estão instalados nos ambientes de execução. Os agentes buscam a aplicação no Amazon S3 e a instalam com base nas instruções em `appspec.yml`.

Para simplificar e manter o foco no processo de compilação, as instruções neste padrão abrangem as etapas de 1 a 4, mas não incluem a implantação do programa COBOL Db2.

**Automação e escala**

Para simplificar, este padrão descreve como provisionar recursos manualmente. No entanto, existem várias opções de automação disponíveis, como CloudFormation AWS Cloud Development Kit (AWS CDK), e HashiCorp Terraform, que automatizam essas tarefas. Para obter mais informações, consulte a documentação do [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) e do [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

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

**Serviços da AWS**
+ O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatiza implantações na Amazon EC2 ou em instâncias, AWS Lambda funções ou serviços do Amazon Elastic Container Service (Amazon ECS).
+ O [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)fornece ferramentas e recursos para ajudá-lo a planejar e implementar a migração e a modernização de mainframes para ambientes de tempo de execução AWS gerenciados.

**Outras ferramentas**
+ **Imagem do Amazon ECR para ferramentas de AWS Mainframe Modernization replataforma**. Para compilar um aplicativo COBOL, você precisará começar CodeBuild usando uma imagem do Amazon Elastic Container Registry (Amazon ECR) que contém as ferramentas Replatform: AWS Mainframe Modernization 

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

  Para obter mais informações sobre a imagem do ECR disponível, consulte o [tutorial](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html) no *Guia do usuário do AWS Mainframe Modernization *.
+ O software [IBM Data Server Client](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) é essencial para pré-compilar e vincular programas COBOL Db2. CodeBuild Ele atua como uma ponte entre o compilador COBOL e o Db2.

## Práticas recomendadas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Nem todo programa COBOL depende do Db2 como sua camada de persistência de dados. Certifique-se de que as diretivas de compilação para acessar o Db2 sejam aplicadas somente aos programas COBOL projetados especificamente para interagir com o Db2. Implemente uma lógica para distinguir entre programas COBOL Db2 e programas COBOL que não usam o Db2.
+ Recomendamos que você evite compilar programas que não tenham sido modificados. Implemente um processo para identificar quais programas precisam de compilação.

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

### Criar a infraestrutura de nuvem
<a name="create-the-cloud-infrastructure"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um bucket do S3 para hospedar o IBM Data Server Client e artefatos do pipeline. | Você precisa configurar um bucket do S3 para (a) carregar o IBM Data Server Client, (b) armazenar seu código do repositório e (c) armazenar os resultados do processo de criação.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para saber como criar um bucket do S3, consulte a [documentação do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | AWS geral | 
| Carregue o IBM Data Server Client no bucket do S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS geral | 
| Crie um AWS Secrets Manager segredo para suas credenciais do Db2. | Para criar um segredo para armazenar suas DB2 credenciais com segurança:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obter mais informações sobre como criar segredos, consulte a [documentação do Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | AWS geral | 
| Verifique se o Db2 pode ser acessado pela sub-rede da VPC. | AWS CodeBuild precisa de uma conexão com o servidor Db2 para que o Data Server Client possa realizar operações de pré-compilação e vinculação. Certifique-se de que CodeBuild possa acessar o servidor Db2 por meio de uma conexão segura.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Administrador de rede, AWS geral | 

### Criar os artefatos da aplicação
<a name="create-the-application-artifacts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o ativo COBOL Db2. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Desenvolvedor de aplicativos | 
| Crie o arquivo `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Conecte seu repositório a. CodePipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Você precisará do Amazon Resource Name (ARN) para a conexão ao criar a política AWS Identity and Access Management (IAM) para uma CodePipeline etapa posterior. | AWS DevOps | 

### Configurar permissões do
<a name="configure-permissions"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política do IAM para CodeBuild. | O CodeBuild projeto requer acesso a alguns recursos, incluindo Secrets Manager e Amazon S3.Para configurar as permissões necessárias:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Para obter mais informações sobre criação de políticas do IAM, consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | AWS geral | 
| Crie uma função do IAM para CodeBuild. | Para disponibilizar as políticas de segurança CodeBuild, você precisa configurar uma função do IAM.Para criar esse perfil:1. No painel [console do IAM](https://console.aws.amazon.com/iam), no painel de navegação, selecione **Perfis**, **Criar perfil**.3. Para o **Tipo de entidade confiável**, mantenha a configuração padrão **AWS service (Serviço da AWS)**.4. **Em Caso de uso**, selecione o CodeBuild serviço e escolha **Avançar**.4. Na lista de políticas do IAM disponíveis, localize a política para CodeBuild a qual você criou e escolha **Avançar** para anexá-la à função.5. Especifique um nome para a função e escolha **Create role** para salvá-la para futura referência CodeBuild.Para obter mais informações sobre a criação de uma função do IAM para um AWS service (Serviço da AWS), consulte a [documentação do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | AWS geral | 
| Crie uma política do IAM para CodePipeline. | O AWS CodePipeline pipeline requer acesso a alguns recursos, incluindo seu repositório de código e o Amazon S3.Repita as etapas fornecidas anteriormente CodeBuild para criar uma política do IAM para CodePipeline (na etapa 2, escolha **CodePipeline**em vez de **CodeBuild**). | AWS DevOps | 
| Crie uma função do IAM para CodePipeline. | Para disponibilizar as políticas de segurança CodePipeline, você precisa configurar uma função do IAM.Para criar esse perfil:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Compilar e vincular o programa COBOL Db2
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um CodePipeline pipeline e um CodeBuild projeto. | Para criar um CodePipeline pipeline e o CodeBuild projeto que compila e vincula o programa COBOL Db2:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Revise a saída. | Verifique o sucesso da compilação revisando os registros da CodePipeline compilação. | AWS DevOps | 
| Verifique os resultados no Db2. | Verifique a versão do pacote na tabela 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>A versão deve corresponder ao ID da CodeBuild compilação, que está `CDB2SMP` em nosso exemplo:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Solução de problemas
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Ocasionalmente, o AWS console muda de região quando você se move entre os serviços. | Certifique-se de verificar o selecionado Região da AWS sempre que alternar entre os serviços.O Região da AWS seletor está no canto superior direito da janela do console. | 
| Pode ser difícil identificar problemas de conectividade do Db2 a partir do CodeBuild. | Para solucionar problemas de conectividade, adicione o seguinte comando DB2 connect ao `buildspec.yml` arquivo. Essa adição ajuda você a depurar e resolver problemas de conectividade.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Ocasionalmente, o painel de perfis no console do IAM não mostra imediatamente a política do IAM que você criou. | Se você encontrar um atraso, atualize a tela para exibir as informações mais recentes. | 

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

**Documentação da IBM**
+ [IBM Data Server Client and driver types](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Download IBM Data Server Client and driver types](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS documentação**
+ [Guia do usuário do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Guia do usuário](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Guia do usuário](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Guia do usuário](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Guia do usuário](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Guia do usuário** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Mais informações
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild política**

Substitua os espaços reservados `<RegionID>`, `<AccountID>`, `<SubnetARN>`, `<BucketARN>` e `<DB2CredSecretARN>` com seus valores.

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

Substitua os espaços reservados `<BucketARN>` e `<ConnectionARN>` com seus valores.

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

Substitua o espaço reservado `<your-bucket-name>` pelo nome do seu bucket do 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
```