AWS Mainframe Modernization と を使用して COBOL Db2 プログラムを構築する AWS CodeBuild - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Mainframe Modernization と を使用して COBOL Db2 プログラムを構築する AWS CodeBuild

Amazon Web Services、Luis Gustavo Dantas、Eduardo Zimelewicz

概要

注記

AWS Mainframe Modernization サービス (マネージドランタイム環境エクスペリエンス) は、新規のお客様に公開されなくなりました。 AWS Mainframe Modernization サービス (マネージドランタイム環境エクスペリエンス) に似た機能については、 AWS Mainframe Modernization サービス (セルフマネージドエクスペリエンス) をご覧ください。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「AWS Mainframe Modernization  可用性の変更」を参照してください。

このパターンでは、 AWS Mainframe Modernization Replatform ツールを使用して COBOL Db2 プログラムをプリコンパイルしてバインドするシンプルな AWS CodeBuild プロジェクトを作成する方法について説明します。これにより、 AWS Mainframe Modernization Replatform ランタイム環境でこれらのプログラムのデプロイと実行が可能になります。

ビジネス指向のプログラミング言語である COBOL は、その信頼性と読みやすさにより、多くの重要なアプリケーションを強化します。リレーショナルデータベース管理システムである IBM Db2 は、大量のデータを効率的に管理し、SQL を介して COBOL プログラムと統合されます。COBOL と Db2 は、今後いくつもの新しいテクノロジーが出現するとしても、金融や政府機関などの業界でミッションクリティカルな運用のバックボーンを形成します。

COBOL コンポーネントと Db2 コンポーネントをメインフレーム環境から他のプラットフォームに移行する場合、プラットフォームの互換性、統合の複雑さ、データ移行、パフォーマンスの最適化などの課題が生じます。これらの重要なコンポーネントを移動するには、信頼性と機能性を維持しながらスムーズに移行できるように、慎重な計画、技術的専門知識、リソースが必要です。

この AWS Mainframe Modernization サービスは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどの AWS インフラストラクチャで実行するメインフレームアプリケーションとデータベースをリプラットフォームするためのツールとリソースを提供します。これには、大規模なコード変更を伴わずにメインフレームワークロードをクラウドに移行する機能も含まれます。

Db2 プリコンパイルとバインドプロセスは、データベースアプリケーションのパフォーマンスと信頼性を最適化するために不可欠です。プリコンパイルにより、埋め込み SQL ステートメントが実行可能コードに変換されるため、ランタイムのオーバーヘッドが軽減され、効率が向上します。バインドプロセスは、プリコンパイルされたコードをデータベース構造にリンクするため、アクセスパスとクエリを容易に最適化できます。このプロセスにより、データの整合性が確保され、アプリケーションの応答性が向上し、セキュリティの脆弱性から保護されます。適切にプリコンパイルおよびバインドされたアプリケーションは、リソースの消費を最小限に抑え、スケーラビリティを強化し、SQL インジェクション攻撃のリスクを軽減します。

前提条件と制限事項

前提条件

  • AWS アカウント と管理レベルのコンソールアクセス。

  • IBM Db2 for z/OS や Db2 for Linux、Unix、Windows (LUW) などの IBM Db2 データベースシステム。

  • IBM Data Server Client ソフトウェア。IBM のウェブサイトからダウンロードできます。詳細は、「IBM Data Server Client and Data Server Driver types」を参照してください。

  • コンパイルおよびバインドする COBOL Db2 プログラム。このパターンには、代わりに使用できる基本的なサンプルプログラムも用意されています。

  • プライベートネットワーク AWS を持つ 上の仮想プライベートクラウド (VPC)。VPC の作成については、Amazon Virtual Private Cloud (Amazon VPC) ドキュメントを参照してください。

  • GitHub や GitLab などのソースコントロールリポジトリ。

制限事項

アーキテクチャ

ソーステクノロジースタック

ソーススタックには以下が含まれます。

  • Db2 データベースを使用してデータを保存する COBOL プログラム

  • IBM COBOL コンパイラと Db2 for z/OS プリコンパイラ

  • ファイルシステム、トランザクションマネージャー、スプールなど、メインフレーム設定の他の部分

ターゲットテクノロジースタック

このパターンのアプローチには、Db2 for z/OS のデータを Db2 for LUW に移行するか、データを Db2 for z/OS 上にそのまま維持するかの 2 つのオプションがあります。ターゲットアーキテクチャには以下が含まれます。

  • Db2 データベースを使用してデータを保存する COBOL プログラム

  • AWS Mainframe Modernization リプラットフォームコンパイルツール

  • AWS CodeBuild アプリケーションを構築するためのインフラストラクチャとしての

  • Amazon Linux などのその他の AWS クラウド リソース

ターゲットアーキテクチャ

AWS で COBOL Db2 プログラムを構築するためのアーキテクチャ。

この図表は、以下を示すものです。

  1. ユーザーは、GitHub や GitLab などのソースコントロールリポジトリにコードをアップロードします。

  2. AWS CodePipeline は変更に気づき、リポジトリからコードを取得します。

  3. CodePipeline はコードを起動 AWS CodeBuild して送信します。

  4. CodeBuild は buildspec.yml テンプレート (「追加情報」セクションで提供) の指示に従い、以下を行います。

    1. Amazon Simple Storage Service (Amazon S3) バケットから IBM Data Server Client を取得します。

    2. IBM Data Server Client をインストールしてセットアップします。

    3. から Db2 認証情報を取得します AWS Secrets Manager。

    4. Db2 サーバーに接続します。

    5. COBOL プログラムをプリコンパイル、コンパイル、バインドします。

    6. が使用するために、完成した製品を S3 バケット AWS CodeDeploy に保存します。

  5. CodePipeline が CodeDeploy を開始します。

  6. CodeDeploy は、ランタイム環境に既にインストールされているエージェントを調整します。エージェントは Amazon S3 からアプリケーションを取得し、appspec.yml の指示に従ってインストールします。

ビルドに焦点を当て、説明を簡潔にするため、このパターンの手順ではステップ 1 から 4 までを説明しますが、COBOL Db2 プログラムのデプロイについては説明しません。

自動化とスケール

わかりやすくするために、このパターンではリソースを手動でプロビジョニングする方法を説明します。ただし、 CloudFormation AWS Cloud Development Kit (AWS CDK)や HashiCorp Terraform など、これらのタスクを自動化する自動化オプションは多数あります。詳細については、CloudFormation ドキュメントおよび AWS CDK ドキュメントを参照してください。

ツール

AWS のサービス

  • AWS CodeBuild は完全マネージド型の構築サービスです。ソースコードのコンパイル、ユニットテストの実行、すぐにデプロイできるアーティファクトの生成を行います。

  • AWS CodeDeploy は、Amazon EC2、オンプレミスインスタンス、 AWS Lambda 関数、または Amazon Elastic Container Service (Amazon ECS) サービスへのデプロイを自動化します。

  • AWS CodePipeline は、ソフトウェアリリースのさまざまな段階を迅速にモデル化および設定し、ソフトウェアの変更を継続的にリリースするために必要なステップを自動化するのに役立ちます。

  • AWS Mainframe Modernization には、メインフレームから AWS マネージドランタイム環境への移行とモダナイゼーションの計画と実装に役立つツールとリソースが用意されています。

その他のツール

  • リプラットフォームツール用の Amazon ECR AWS Mainframe Modernization イメージ。COBOL アプリケーションをコンパイルするには、 AWS Mainframe Modernization Replatform ツールを含む Amazon Elastic Container Registry (Amazon ECR) イメージを使用して CodeBuild を開始する必要があります。

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

    利用可能な ECR イメージの詳細については、AWS Mainframe Modernization ユーザーガイドの「チュートリアル」を参照してください。

  • IBM Data Server Client ソフトウェアは、CodeBuild で COBOL Db2 プログラムをプリコンパイルおよびバインドするために不可欠です。これは、COBOL コンパイラと Db2 間のブリッジとして機能します。

ベストプラクティス

  • すべての COBOL プログラムがデータ永続化レイヤーとして Db2 に依存しているわけではありません。Db2 にアクセスするためのコンパイルディレクティブが、Db2 とのやり取り専用に設計された COBOL プログラムにのみ適用されることを確認してください。COBOL Db2 プログラムと、Db2 を使用しない COBOL プログラムとを区別するロジックを実装します。

  • 変更されていないプログラムはコンパイルしないことをお勧めします。コンパイルが必要なプログラムを特定するプロセスを実装します。

エピック

タスク説明必要なスキル

IBM Data Server Client とパイプラインアーティファクトをホストする S3 バケットを作成する

(a) IBM Data Server Client をアップロードし、(b) リポジトリからコードを保存し、(c) ビルドプロセスの結果を保存するように、S3 バケットを設定する必要があります。

  1. にサインインし AWS マネジメントコンソール、Amazon S3 コンソールを開きます。

  2. 既存の S3 バケットを使用するか、新しいバケットを作成します。今後使用するために、バケットの Amazon リソースネーム (ARN) を書き留めます。

S3 バケットの作成手順については、Amazon S3 ドキュメントを参照してください。

AWS 全般

IBM Data Server Client を S3 バケットにアップロードする

  1. Amazon S3 コンソールで、バケットを選択して開きます。

  2. [フォルダの作成]を選択し、その名前を「client」として指定してから、[フォルダの作成]を選択します。

  3. client フォルダを開き、[アップロード][ファイルを追加] の順に選択します。

  4. 以前に IBM のウェブサイトからローカルファイルシステムにダウンロードした IBM Data Server Client ファイルを選択します。

    ファイル名は v11.5.8_linuxx64_client.tar.gz または v11.5.9_linuxx64_client.tar.gz のようになります。

  5. [開く][アップロード] の順に選択し、アップロードが完了するまで待ちます。

  6. [ファイルとフォルダ] タブで、Data Server Client を選択し、その S3 URI を書き留めます。

AWS 全般

Db2 認証情報の AWS Secrets Manager シークレットを作成します。

DB2 認証情報を安全に保存するためのシークレットを作成するには、次の手順を実行します。

  1. Secrets Manager コンソールで、[新しいシークレットを保存する] を選択します。

  2. [シークレットのタイプを選択] ペインで、[別のタイプのシークレット][プレーンテキスト] を選択します。

  3. [プレーンテキスト] ボックスに、次の JSON 構造を使用して Db2 認証情報を入力します。

    { "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. [次へ] を選択し、シークレットに dev-db2-cred などの名前を付けます。

  5. [次へ][次へ][保存] の順に選択します。

シークレットの作成の詳細は、Secrets Manager ドキュメントを参照してください。

AWS 全般

VPC サブネットから Db2 にアクセスできることを確認

AWS CodeBuild では、データサーバークライアントがプリコンパイルおよびバインド操作を実行できるように、Db2 サーバーへの接続が必要です。CodeBuild が安全な接続を介して Db2 サーバーに到達できることを確認します。

  1. Amazon VPC コンソール を開きます。

  2. ナビゲーションペインで [サブネット] を選択し、CodeBuild が動作するプライベートサブネットの ID と IPv4 CIDR を書き留めます。

  3. インバウンドルールを導入して、Db2 システムの現在のネットワークアクセス制御設定を更新します。このルールは、CodeBuild プロジェクトに関連付けられているサブネット CIDR からのみ Db2 ポートにアクセスする、カスタム TCP アクセスを有効にする必要があります。

ネットワーク管理者、AWS 全般
タスク説明必要なスキル

COBOL Db2 アセットの作成

  1. シンプルな COBOL Db2 の例を使用する場合は、次のソースコードを CDB2SMP.cbl として保存します。または、この例を既に所有しているプログラムに置き換えることもできます。

    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. 変更をコミットし、ファイルをリポジトリにプッシュします。

アプリ開発者

buildspec.yml ファイルの作成

  1. 追加情報」セクションに記載の例に基づき、buildspec.yml ファイルを生成します。

  2. 変更をコミットし、ファイルをリポジトリにプッシュします。

AWS DevOps

リポジトリを CodePipeline に接続する

  1. AWS デベロッパーツールコンソールを開きます。

  2. ナビゲーションペインで、[設定]、[接続] の順に選択します。

  3. 選択したソースプロバイダーのデベロッパーツールコンソールドキュメントの指示に従います。

後のステップで CodePipeline の (IAM) ポリシーを作成するときに、接続に Amazon リソースネーム AWS Identity and Access Management (ARN) が必要になります。

AWS DevOps
タスク説明必要なスキル

CodeBuild 用の IAM ポリシーの作成

CodeBuild プロジェクトでは、Secrets Manager や Amazon S3 などのいくつかのリソースにアクセスする必要があります。

必要なアクセス権限を設定するには:

  1. [IAM コンソール] を開きます。

  2. ナビゲーションペインで、[ポリシー][ポリシーの作成] の順に選択してから、[CodeBuild サービス] を選択します。

  3. 形式を [ビジュアル] から [JSON] に切り替え、「追加情報」セクションに記載の CodeBuild ポリシー[ポリシーエディタ] フィールドにコピーします。

  4. 次のステップで参照できるように、このポリシーに名前を付けて保存します。

IAM ポリシーの作成の詳細は、IAM ドキュメントを参照してください。

AWS 全般

CodeDeploy 用の IAM ロールの作成

CodeBuild でセキュリティポリシーを使用できるようにするには、IAM ロールを設定する必要があります。

このロールを作成するには以下の手順に従ってください。

1. IAM コンソールのナビゲーションペインで、[ロール][ロールを作成] を選択します。

3. [信頼されたエンティティタイプ] は、デフォルトの AWS のサービスのままにします。

4. [ユースケース] で CodeBuild サービスを選択し、[次へ] を選択します。

4. 使用可能な IAM ポリシーのリストで、CodeBuild 用に作成したポリシーを見つけ、[次へ] を選択して、このポリシーをロールにアタッチします。

5. ロールの名前を指定し、[ロールを作成] を選択して、今後 CodeBuild で参照できるように保存します。

の IAM ロールの作成の詳細については AWS のサービス、IAM ドキュメントを参照してください。

AWS 全般

CodePipeline の IAM ポリシーの作成

AWS CodePipeline パイプラインでは、コードリポジトリや Amazon S3 など、一部のリソースにアクセスする必要があります。

CodeBuild 用に説明した前述のステップを繰り返して、CodePipeline の IAM ポリシーを作成します (ステップ 2 では CodeBuild ではなく CodePipeline を選択)。

AWS DevOps

CodePipeline 用の IAM ロールの作成

CodePipeline でセキュリティポリシーを使用できるようにするには、IAM ロールを設定する必要があります。

このロールを作成するには以下の手順に従ってください。

  1. IAM コンソールで、[ロール][ロールを作成] の順に選択します。

  2. [信頼されたエンティティのタイプ] で、[カスタム信頼ポリシー] を選択します。

    空の Principal 要素を持つポリシーが表示されます。

  3. Principal 行の中かっこ内に、以下を追加します。

    "Service": "codepipeline.amazonaws.com"

    信頼ポリシーは次のようになります。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": "codepipeline.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  4. [次へ] を選択します。

  5. 使用可能な IAM ポリシーのリストで、CodePipeline 用に作成したポリシーを見つけ、[次へ] を選択して、このポリシーをロールにアタッチします。

  6. ロールの名前を指定し、[ロールを作成] を選択して、今後 CodePipeline で参照できるように保存します。

AWS DevOps
タスク説明必要なスキル

CodePipeline パイプラインと CodeBuild プロジェクトの作成

COBOL Db2 プログラムをコンパイルしてバインドする CodePipeline パイプラインと CodeBuild プロジェクトを作成するには、以下の手順に従います。

  1. CodePipeline コンソールを開き、[パイプラインを作成する][カスタムパイプラインを構築する] の順に選択します。

  2. パイプラインの名前を指定します。

  3. [サービスロール][既存のサービスロール] を選択し、CodePipeline 用に作成した IAM ロールの ARN を指定します。

  4. [詳細設定] を展開し、[カスタムロケーション] を選択して、以前に作成した S3 バケットを選択し、[次へ] を選択します。

  5. [ソースプロバイダー] で、サードパーティーのソースプロバイダーを選択し、プロバイダーの関連情報を入力します。

    1. [接続] で、ソースプロバイダー用に作成された接続を選択します。

    2. [リポジトリ名] でリポジトリを選択します。

    3. [デフォルトブランチ] で、COBOL プログラムと buildspec.yml を保存するブランチを選択します。

    4. [次へ] を選択します。

  6. [プロバイダーを構築する] で、[その他のビルドプロバイダー][AWS CodeBuild] の順に選択します。

  7. [プロジェクト名] で、[プロジェクトを作成する] を選択します。

    コンソールに、ビルドプロジェクトを作成するための CodeBuild ウィンドウが表示されます。このウィンドウで、次の操作を行います。

    1. プロジェクトの名前を入力します。

    2. [環境イメージ] で、[カスタムイメージ] を選択します。

    3. [環境タイプ][Linux コンテナ] を選択します。

    4. [ECR アカウント][別の ECR アカウント] を選択します。

    5. [Amazon ECR リポジトリ URI] には「673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:8.0.9.R1」と入力します。

    6. [サービスロール][既存のサービスロール] を選択し、CodeBuild 用に作成したロールを選択します。

    7. [追加設定] セクションを展開し、このプロジェクトの VPC、プライベートサブネット、セキュリティグループを選択します。

    8. [Buildspec] セクションで [buildspec ファイルを使用する] を選択します。

    9. ウィンドウの最後で、[CodePipeline に進む] を選択します。CodeBuild ウィンドウが閉じ、CodePipeline コンソールに戻ることができます。

  8. CodePipeline コンソールに戻り、[次へ] を選択します。

  9. [デプロイステージを追加する] ペインで、[導入段階をスキップ] を選択して確定します。

  10. パイプラインの各パラメータを確認し、[パイプラインを作成する] を選択します。

AWS DevOps

出力の確認

CodePipeline ビルドログを確認して、ビルドが成功したかどうかを確認します。

AWS DevOps

Db2 で結果を確認

SYSPLAN テーブルでパッケージバージョンを確認します。

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

このバージョンは、CodeBuild ビルド ID と一致する必要があります (この例では「CDB2SMP」)。

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

トラブルシューティング

問題ソリューション

サービス間を移動すると、 AWS コンソールでリージョンが切り替わることがあります。

サービスを切り替える AWS リージョン ときは、必ず選択した を確認してください。

AWS リージョン セレクターは、コンソールウィンドウの右上隅にあります。

CodeBuild から Db2 接続の問題を特定するのが難しい場合がある

接続の問題をトラブルシューティングするには、次の DB2 connect コマンドを buildspec.yml ファイルに追加します。このコマンドの追加により、接続の問題をデバッグして解決できます。

db2 connect to $DB_NAME user $DB2USER using $DB2PASS

IAM コンソールのロールペインに、作成した IAM ポリシーがすぐに表示されない場合がある

遅延が発生した場合は、画面を更新して最新情報を表示します。

関連リソース

IBM ドキュメント

AWS ドキュメント

追加情報

CodeBuild ポリシー

プレースホルダの <RegionID><AccountID><SubnetARN><BucketARN><DB2CredSecretARN> は、それぞれ必要な値に置き換えてください。

{"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 ポリシー

プレースホルダの <BucketARN> および <ConnectionARN> は、それぞれ必要な値に置き換えてください。

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

プレースホルダの <your-bucket-name> は、実際の 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