Membangun penampil file mainframe tingkat lanjut di AWS Cloud - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membangun penampil file mainframe tingkat lanjut di AWS Cloud

Boopathy GOPALSAMY dan Jeremiah O'Connor, Amazon Web Services

Ringkasan

Pola ini menyediakan contoh kode dan langkah-langkah untuk membantu Anda membangun alat canggih untuk menjelajahi dan meninjau file format tetap mainframe Anda dengan menggunakan layanan tanpa server AWS. Pola ini memberikan contoh cara mengonversi file input mainframe ke dokumen OpenSearch Layanan Amazon untuk menjelajah dan mencari. Alat penampil file dapat membantu Anda mencapai hal berikut:

  • Pertahankan struktur dan tata letak file mainframe yang sama untuk konsistensi di lingkungan migrasi target AWS Anda (misalnya, Anda dapat mempertahankan tata letak yang sama untuk file dalam aplikasi batch yang mentransmisikan file ke pihak eksternal)

  • Mempercepat pengembangan dan pengujian selama migrasi mainframe

  • Mendukung kegiatan pemeliharaan setelah migrasi

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Virtual Private Cloud (VPC) dengan subnet yang dapat dijangkau oleh platform lama Anda

  • catatan

    File input dan copybook bahasa berorientasi bisnis umum (COBOL) yang sesuai (: Untuk contoh file input dan copybook COBOL, lihat di repositori. gfs-mainframe-solutions GitHub Untuk informasi selengkapnya tentang copybook COBOL, lihat Panduan Pemrograman COBOL Enterprise untuk z/OS 6.3 di situs web IBM.)

Batasan

  • Penguraian copybook dibatasi tidak lebih dari dua level bersarang (TERJADI)

Arsitektur

Tumpukan teknologi sumber

Tumpukan teknologi target

  • Amazon Athena

  • OpenSearch Layanan Amazon

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Lambda

  • AWS Step Functions

Arsitektur target

Diagram berikut menunjukkan proses parsing dan konversi file input mainframe ke dokumen OpenSearch Service untuk browsing dan pencarian.

Proses untuk mengurai dan mengonversi file input mainframe ke OpenSearch Layanan.

Diagram menunjukkan alur kerja berikut:

  1. Pengguna admin atau aplikasi mendorong file input ke satu bucket S3 dan copybook COBOL ke bucket S3 lainnya.

  2. catatan

    Bucket S3 dengan file input memanggil fungsi Lambda yang memulai alur kerja Step Functions tanpa server. : Penggunaan pemicu peristiwa S3 dan fungsi Lambda untuk menggerakkan alur kerja Step Functions dalam pola ini adalah opsional. Contoh GitHub kode dalam pola ini tidak termasuk penggunaan layanan ini, tetapi Anda dapat menggunakan layanan ini berdasarkan kebutuhan Anda.

  3. Alur kerja Step Functions mengkoordinasikan semua proses batch dari fungsi Lambda berikut:

    • s3copybookparser.pyFungsi mem-parsing tata letak copybook dan mengekstrak atribut bidang, tipe data, dan offset (diperlukan untuk pemrosesan data input).

    • s3toathena.pyFungsi ini menciptakan tata letak tabel Athena. Athena mem-parsing data input yang diproses oleh s3toathena.py fungsi dan mengonversi data ke file CSV.

    • s3toelasticsearch.pyFungsi ini menyerap file hasil dari bucket S3 dan mendorong file ke Service. OpenSearch

  4. Pengguna mengakses OpenSearch Dasbor dengan OpenSearch Layanan untuk mengambil data dalam berbagai format tabel dan kolom dan kemudian menjalankan kueri terhadap data yang diindeks.

Alat

Layanan AWS

  • Amazon Athena adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) menggunakan SQL standar.

  • AWS Lambda adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan. Dalam pola ini, Anda menggunakan Lambda untuk mengimplementasikan logika inti, seperti mengurai file, mengonversi data, dan memuat data ke OpenSearch Layanan untuk akses file interaktif.

  • Amazon OpenSearch Service adalah layanan terkelola yang membantu Anda menerapkan, mengoperasikan, dan menskalakan kluster OpenSearch Layanan di AWS Cloud. Dalam pola ini, Anda menggunakan OpenSearch Layanan untuk mengindeks file yang dikonversi dan menyediakan kemampuan pencarian interaktif bagi pengguna.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

  • AWS Step Functions adalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan fungsi Lambda dan layanan AWS lainnya untuk membangun aplikasi yang penting bagi bisnis. Dalam pola ini, Anda menggunakan Step Functions untuk mengatur fungsi Lambda.

Alat-alat lainnya

  • GitHubadalah layanan hosting kode yang menyediakan alat kolaborasi dan kontrol versi.

  • Python adalah bahasa pemrograman tingkat tinggi.

Kode

Kode untuk pola ini tersedia di GitHub gfs-mainframe-patternsrepositori.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat ember S3.

Buat bucket S3 untuk menyimpan copybook, file input, dan file output. Kami merekomendasikan struktur folder berikut untuk bucket S3 Anda:

  • copybook/

  • input/

  • output/

  • query/

  • results/

AWS Umum

Buat fungsi s3copybookparser.

  1. Buat fungsi Lambda yang dipanggil s3copybookparser dan unggah kode sumber (s3copybookparser.pydancopybook.py) dari repositori. GitHub

  2. Lampirkan kebijakan IAM S3ReadOnly ke fungsi Lambda.

AWS Umum

Buat fungsi s3toathena.

  1. Buat fungsi Lambda yang dipanggil s3toathena dan unggah kode sumber (s3toathena.py) dari repositori. GitHub Konfigurasikan batas waktu Lambda menjadi> 60 detik.

  2. Untuk menyediakan akses ke sumber daya yang diperlukan, lampirkan kebijakan IAM AmazonAthenaFullAccess dan S3FullAccess ke fungsi Lambda.

AWS Umum

Buat fungsi s3toelasticsearch.

  1. penting

    Tambahkan dependensi Python ke lingkungan Lambda Anda. : Untuk menggunakan s3toelasticsearch fungsi ini, Anda harus menambahkan dependensi Python karena fungsi Lambda menggunakan dependensi klien Elasticsearch Python (dan). Elasticsearch==7.9.0 requests_aws4auth

  2. Buat fungsi Lambda yang dipanggil s3toelasticsearch dan unggah kode sumber (s3toelasticsearch.py) dari repositori. GitHub

  3. Impor dependensi Python sebagai layer Lambda.

  4. Lampirkan kebijakan IAM S3ReadOnly dan AmazonOpenSearchServiceReadOnlyAccess ke fungsi Lambda.

AWS Umum

Buat kluster OpenSearch Layanan.

Buat cluster

  1. Buat kluster OpenSearch Layanan. Saat Anda membuat cluster, lakukan hal berikut:

    • catatan

      Buat pengguna utama dan kata sandi untuk cluster yang dapat Anda gunakan untuk masuk ke OpenSearch Dasbor. : Langkah ini tidak diperlukan jika Anda menggunakan otentikasi melalui Amazon Cognito.

    • Pilih kontrol akses berbutir halus. Ini memberi Anda cara tambahan untuk mengontrol akses ke data Anda di OpenSearch Layanan.

  2. Salin URL domain dan teruskan sebagai variabel lingkungan 'HOST' ke fungsi Lambda. s3toelasticsearch

Berikan akses ke peran IAM

Untuk memberikan akses berbutir halus ke peran IAM fungsi Lambda ()arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**, lakukan hal berikut:

  1. Masuk ke OpenSearch Dasbor sebagai pengguna utama.

  2. Pilih tab Keamanan, lalu pilih Peran, all_access, Map user, Backend role.

  3. Tambahkan Nama Sumber Daya Amazon (ARN) dari peran IAM fungsi Lambda, lalu pilih Simpan. Untuk informasi selengkapnya, lihat Memetakan peran ke pengguna dalam dokumentasi OpenSearch Layanan.

AWS Umum

Buat Step Functions untuk orkestrasi.

  1. Buat mesin status Step Functions dengan aliran standar. Definisi ini termasuk dalam GitHub repositori.

  2. Dalam skrip JSON, ganti fungsi Lambda dengan ARNs fungsi ARNs from Lambda di lingkungan Anda.

AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Unggah file input dan copybook ke bucket S3.

Unduh file sampel dari folder sampel GitHub repositori dan unggah file ke bucket S3 yang Anda buat sebelumnya.

  1. Unggah Mockedcopy.cpy dan acctix.cpy ke <S3_Bucket>/copybook folder.

  2. Unggah Modedupdate.txt dan acctindex.cpy sampel file input ke <S3_Bucket>/input folder.

AWS Umum

Memanggil Step Functions.

  1. Masuk ke AWS Management Console dan buka konsol Step Functions.

  2. Di panel navigasi, pilih mesin Negara.

  3. Pilih mesin status Anda, lalu pilih Mulai eksekusi.

  4. Di kotak Input, masukkan copybook/file jalur berikut sebagai variabel JSON ke bucket S3, lalu pilih Mulai eksekusi.

{ "s3_copybook_bucket_name": "<BUCKET NAME>", "s3_copybook_bucket_key": "<COPYBOOK PATH>", "s3_source_bucket_name": "<BUCKET NAME", "s3_source_bucket_key": "INPUT FILE PATH" }

Misalnya:

{ "s3_copybook_bucket_name": "fileaidtest", "s3_copybook_bucket_key": "copybook/acctix.cpy", "s3_source_bucket_name": "fileaidtest", "s3_source_bucket_key": "input/acctindex" }
AWS Umum

Validasi eksekusi alur kerja di Step Functions.

Di konsol Step Functions, tinjau eksekusi alur kerja di inspektur Grafik. Status eksekusi dijalankan diberi kode warna untuk mewakili status eksekusi. Misalnya, biru menunjukkan Dalam Kemajuan, hijau menunjukkan Berhasil, dan merah menunjukkan Gagal. Anda juga dapat meninjau tabel di bagian Riwayat peristiwa eksekusi untuk informasi lebih rinci tentang peristiwa eksekusi.

Untuk contoh eksekusi alur kerja grafis, lihat grafik Step Functions di bagian Informasi tambahan dari pola ini.

AWS Umum

Validasi log pengiriman di Amazon CloudWatch.

  1. Masuk ke AWS Management Console dan buka CloudWatch konsol.

  2. Di panel navigasi, perluas Log, lalu pilih Grup log.

  3. Di kotak pencarian, cari grup log s3toelasticsearch fungsi.

Untuk contoh log pengiriman yang berhasil, lihat log CloudWatch pengiriman di bagian Informasi tambahan dari pola ini.

AWS Umum

Validasi file yang diformat di OpenSearch Dasbor dan lakukan operasi file.

  1. Masuk ke AWS Management Console. Di bawah Analytics, pilih OpenSearch Layanan Amazon.

  2. Di panel navigasi, pilih Domain.

  3. Di kotak pencarian, masukkan URL untuk domain Anda di OpenSearch Dasbor.

  4. Pilih dasbor Anda, lalu masuk sebagai pengguna utama.

  5. Jelajahi data yang diindeks dalam format tabel.

  6. Bandingkan file input dengan file keluaran yang diformat (dokumen yang diindeks) di Dasbor. OpenSearch Tampilan dasbor menunjukkan header kolom yang ditambahkan untuk file yang diformat. Konfirmasikan bahwa data sumber dari file input yang belum diformat cocok dengan data target di tampilan dasbor.

  7. Lakukan tindakan seperti pencarian (misalnya, dengan menggunakan nama bidang, nilai, atau ekspresi), filter, dan operasi DQL (Dashboard Query Language) terhadap file yang diindeks.

AWS Umum

Sumber daya terkait

Referensi

Tutorial

Informasi tambahan

Grafik Step Functions

Contoh berikut menunjukkan grafik Step Functions. Grafik menunjukkan status eksekusi run untuk fungsi Lambda yang digunakan dalam pola ini.

Grafik Step Functions menunjukkan status eksekusi run untuk fungsi Lambda yang digunakan dalam pola ini.

CloudWatch log pengiriman

Contoh berikut menunjukkan log pengiriman yang berhasil untuk eksekusi s3toelasticsearch eksekusi.

2022-08-10T 15:53:33.033-05:00

Jumlah dokumen pemrosesan: 100

2022-08-10T 15:53:33.171-05:00

[INFO] 2022-08-10T 20:53:33.171 Z a1b2c3d4-5678-90ab-cdef- Post:443/_Bulk [status: 200 permintaan: 0.100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com

2022-08-10T 15:53:33.172-05:00

Penulisan massal berhasil: 100 dokumen