|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lambdaとは。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サーバレスで任意のPGMを実行できる |
|
|
|
仕組を提供するもの。 |
|
|
|
|
|
|
|
|
いくつかランタイムが用意されており、 |
|
|
|
それぞれの言語で動かすことができる |
|
|
|
環境がすぐに作れるようになっている。 |
|
|
|
「カスタムランタイム」で任意の |
|
|
|
|
|
|
実行環境を作る事もできる。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
今回はCOBOLの実行環境を |
|
|
|
「カスタムランタイム」で構築する。 |
|
|
⇒⇒⇒ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
下記のURLの通り作業を進める。 |
|
|
https://qiita.com/nor51010/items/de720093e284c4f906ac |
|
|
|
COBOLビルド環境 |
|
|
ここでの手順は無し。 |
|
|
のちのDockerfileに記述されるベースイメージの話。 |
|
|
COBOLソースをコンパイルする環境をdockerイメージで作られている。 |
|
|
|
Lambdaレイヤーの作成 |
|
|
ここでの手順は無し。 |
|
|
のちのDockerfileに記述されるLambdaにアップロードするライブラリの話。 |
|
|
|
Lambda関数の作成 |
|
|
bootstrapの作成 |
|
|
そのままbootstrapのファイルを作成する。 |
|
|
vi bootstrap |
|
|
|
bootstrapとは、Lambdaを動かす命令が記述されているもの。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
この中にPGMを実行する命令を記載することで、LambdaでPGMが実行される。 |
|
|
|
|
|
|
|
|
|
PGMへのIN/OUTもここで記述することでPGMの出力もLambdaを介して出力することができる。 |
|
|
|
|
|
COBOLプログラム |
|
|
そのままCOBOLソースを作成する。 |
|
|
vi hello.cbl |
|
|
|
ここのCOBOLソースはjsonで出力(DISPLAY)する仕様となっている。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ビルド |
|
|
dockerfileの作成 |
|
|
そのままDockerfileを作成する。 |
|
|
vi Dockerfile |
|
|
|
|
|
|
ここのDockerfileには、 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dockerとは |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROMで前述のCOBOLコンパイル環境をdockerのベースイメージに指定する事で環境を作り |
|
|
|
|
環境をベースイメージからコンテナへ呼び出す事で |
|
|
|
|
|
|
|
COBOLの実行に必要なライブラリをコピー、COBOLソースのコンパイルを行っている。 |
|
|
|
|
|
|
|
素早く簡易に整える事ができる。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ベースイメージを作ることもできる。 |
|
|
|
|
|
|
|
|
|
|
|
build.shの作成 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
そのままbuild.shを作成する。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vi build.sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
上記のdockerfileを実行するシェル |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dockerコンテナ上で作成したライブラリのzipアーカイブや、コンパイルしたCOBOLモジュールを |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
コンテナからLinux上にコピーする命令が記述されている。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ベースイメージ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build.shを実行する。 |
|
|
./build.sh |
|
|
|
Permissionエラーの場合。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
「chmod」
で権限を変更するか、「sudo
su - 」でスーパーユーザで実行する。 |
|
|
|
|
|
|
|
|
|
|
|
AWSへの適用 |
|
|
レイヤー登録 |
|
|
|
|
手順に沿ってzipファイルをアップロードする。 |
|
|
|
|
|
|
|
|
|
|
関数の作成 |
|
|
|
手順に沿ってzipファイルをアップロードする。 |
|
|
|
|
|
|
|
|
|
|
|
動作確認 |
|
|
ここでの入力値がCOBOLプログラムでACCEPTして拾えるようにbootstrapで記述されている。 |
|
|
|
bootstrapのPermissionエラーの場合。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bootstrapを「chmod」 で権限を変更し、./build.shにて再度dockerを起動、作り直す。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|