Amazon Managed Service untuk Apache Flink sebelumnya dikenal sebagai Amazon Kinesis Data Analytics untuk Apache Flink.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Informasi versi sebelumnya untuk Managed Service untuk Apache Flink
catatan
Apache Flink versi 1.6, 1.8, dan 1.11 belum didukung oleh komunitas Apache Flink selama lebih dari tiga tahun. Kami sekarang berencana untuk mengakhiri dukungan untuk versi ini di Amazon Managed Service untuk Apache Flink. Mulai 5 November 2024, Anda tidak akan dapat membuat aplikasi baru untuk versi Flink ini. Anda dapat terus menjalankan aplikasi yang ada saat ini.
Untuk semua Wilayah dengan pengecualian Wilayah China dan AWS GovCloud (US) Regions, mulai 5 Februari 2025, Anda tidak akan lagi dapat membuat, memulai, atau menjalankan aplikasi menggunakan versi Apache Flink ini di Amazon Managed Service untuk Apache Flink.
Untuk Wilayah China dan AWS GovCloud (US) Regions, mulai 19 Maret 2025, Anda tidak akan lagi dapat membuat, memulai, atau menjalankan aplikasi menggunakan versi Apache Flink ini di Amazon Managed Service untuk Apache Flink.
Anda dapat memutakhirkan aplikasi secara statis menggunakan fitur peningkatan versi di tempat di Layanan Terkelola untuk Apache Flink. Untuk informasi selengkapnya, lihat Gunakan upgrade versi di tempat untuk Apache Flink.
Versi 1.15.2, dan 1.13.2 dari Apache Flink didukung oleh Managed Service untuk Apache Flink, tetapi tidak lagi didukung oleh komunitas Apache Flink.
Topik ini berisi bagian-bagian berikut:
- Menggunakan konektor Apache Flink Kinesis Streams dengan versi Apache Flink sebelumnya
- Membangun aplikasi dengan Apache Flink 1.8.2
- Membangun aplikasi dengan Apache Flink 1.6.2
- Memutakhirkan aplikasi
- Konektor yang tersedia di Apache Flink 1.6.2 dan 1.8.2
- Memulai: Flink 1.13.2
- Memulai: Flink 1.11.1 - mencela
- Memulai: Flink 1.8.2 - mencela
- Memulai: Flink 1.6.2 - mencela
- Contoh versi sebelumnya (warisan) untuk Managed Service untuk Apache Flink
Menggunakan konektor Apache Flink Kinesis Streams dengan versi Apache Flink sebelumnya
Konektor Apache Flink Kinesis Stream tidak disertakan dalam Apache Flink sebelum versi 1.11. Agar aplikasi Anda dapat menggunakan konektor Apache Flink Kinesis dengan versi Apache Flink sebelumnya, Anda harus mengunduh, mengompilasi, dan menginstal versi Apache Flink yang digunakan aplikasi Anda. Konektor ini digunakan untuk mengonsumsi data dari aliran Kinesis yang digunakan sebagai sumber aplikasi, atau untuk menulis data ke aliran Kinesis yang digunakan untuk output aplikasi.
catatan
Pastikan Anda membangun konektor dengan KPLversi 0.14.0
Untuk mengunduh dan menginstal kode sumber Apache Flink versi 1.8.2, lakukan hal berikut:
Pastikan bahwa Anda memiliki Apache Maven
diinstal, dan variabel JAVA_HOME
lingkungan Anda menunjuk ke JDK bukan a. JRE Anda dapat menguji penginstalan Apache Maven Anda dengan perintah berikut:mvn -version
Unduh kode sumber Apache Flink versi 1.8.2:
wget https://archive.apache.org/dist/flink/flink-1.8.2/flink-1.8.2-src.tgz
Batalkan kompresi kode sumber Apache Flink:
tar -xvf flink-1.8.2-src.tgz
Ubah ke direktori kode sumber Apache Flink:
cd flink-1.8.2
Komplikasi dan instal Apache Flink:
mvn clean install -Pinclude-kinesis -DskipTests
catatan
Jika Anda mengompilasi Flink di Microsoft Windows, Anda perlu menambahkan parameter
-Drat.skip=true
.
Membangun aplikasi dengan Apache Flink 1.8.2
Bagian ini berisi informasi tentang komponen yang Anda gunakan untuk membangun Layanan Terkelola untuk aplikasi Apache Flink yang bekerja dengan Apache Flink 1.8.2.
Gunakan versi komponen berikut untuk Managed Service untuk aplikasi Apache Flink:
Komponen | Versi |
---|---|
Java | 1.8 (direkomendasikan) |
Apache Flink | 1.8.2 |
Layanan Terkelola untuk Apache Flink untuk Flink Runtime () aws-kinesisanalytics-runtime | 1.0.1 |
Layanan Terkelola untuk Konektor Apache Flink Flink () aws-kinesisanalytics-flink | 1.0.1 |
Apache Maven | 3.1 |
Untuk mengompilasi aplikasi menggunakan Apache Flink 1.8.2, jalankan Maven dengan parameter berikut:
mvn package -Dflink.version=1.8.2
Untuk contoh pom.xml
file untuk aplikasi Managed Service for Apache Flink yang menggunakan Apache Flink versi 1.8.2, lihat Managed Service for Apache
Untuk informasi tentang cara membuat dan menggunakan kode aplikasi untuk Layanan Terkelola untuk aplikasi Apache Flink, lihat. Membuat aplikasi
Membangun aplikasi dengan Apache Flink 1.6.2
Bagian ini berisi informasi tentang komponen yang Anda gunakan untuk membangun Layanan Terkelola untuk aplikasi Apache Flink yang bekerja dengan Apache Flink 1.6.2.
Gunakan versi komponen berikut untuk Managed Service untuk aplikasi Apache Flink:
Komponen | Versi |
---|---|
Java | 1.8 (direkomendasikan) |
AWS Jawa SDK | 1.11.379 |
Apache Flink | 1.6.2 |
Layanan Terkelola untuk Apache Flink untuk Flink Runtime () aws-kinesisanalytics-runtime | 1.0.1 |
Layanan Terkelola untuk Konektor Apache Flink Flink () aws-kinesisanalytics-flink | 1.0.1 |
Apache Maven | 3.1 |
Apache Beam | Tidak didukung dengan Apache Flink 1.6.2. |
catatan
Saat menggunakan Managed Service for Apache Flink Runtime versi 1.0.1, Anda menentukan versi Apache Flink di pom.xml
file Anda daripada menggunakan -Dflink.version
parameter saat mengompilasi kode aplikasi Anda.
Untuk contoh pom.xml
file untuk aplikasi Managed Service for Apache Flink yang menggunakan Apache Flink versi 1.6.2, lihat Managed Service for Apache
Untuk informasi tentang cara membuat dan menggunakan kode aplikasi untuk Layanan Terkelola untuk aplikasi Apache Flink, lihat. Membuat aplikasi
Memutakhirkan aplikasi
Untuk memutakhirkan versi Apache Flink dari Amazon Managed Service untuk aplikasi Apache Flink, gunakan fitur upgrade versi Apache Flink di tempat menggunakan,,, atau. AWS CLI AWS SDK AWS CloudFormation AWS Management Console Untuk informasi selengkapnya, lihat Gunakan upgrade versi di tempat untuk Apache Flink.
Anda dapat menggunakan fitur ini dengan aplikasi apa pun yang ada yang Anda gunakan dengan Amazon Managed Service untuk Apache Flink di READY
atau RUNNING
negara bagian.
Konektor yang tersedia di Apache Flink 1.6.2 dan 1.8.2
Kerangka kerja Apache Flink berisi konektor untuk mengakses data dari berbagai sumber.
Untuk informasi tentang konektor yang tersedia di kerangka kerja Apache Flink 1.6.2, lihat Konektor (1.6.2)
di Dokumentasi Apache Flink (1.6.2) . Untuk informasi tentang konektor yang tersedia di kerangka kerja Apache Flink 1.8.2, lihat Konektor (1.8.2)
di Dokumentasi Apache Flink (1.8.2) .
Memulai: Flink 1.13.2
Bagian ini memperkenalkan Anda pada konsep dasar Layanan Terkelola untuk Apache Flink dan. DataStream API Ini menjelaskan opsi yang tersedia untuk membuat dan menguji aplikasi Anda. Ini juga memberikan petunjuk untuk menginstal alat yang diperlukan untuk menyelesaikan tutorial dalam panduan ini dan untuk membuat aplikasi pertama Anda.
Topik
- Komponen Layanan Terkelola untuk aplikasi Apache Flink
- Prasyarat untuk menyelesaikan latihan
- Langkah 1: Siapkan AWS akun dan buat pengguna administrator
- Langkah selanjutnya
- Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
- Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
- Langkah 4: Bersihkan AWS sumber daya
- Langkah 5: Langkah selanjutnya
Komponen Layanan Terkelola untuk aplikasi Apache Flink
Untuk memproses data, Managed Service untuk aplikasi Apache Flink Anda menggunakan aplikasi Java/Apache Maven atau Scala yang memproses input dan menghasilkan output menggunakan runtime Apache Flink.
Managed Service untuk aplikasi Apache Flink memiliki komponen-komponen berikut:
-
Properti runtime: Anda dapat menggunakan properti runtime untuk mengonfigurasi aplikasi Anda tanpa mengompilasi ulang kode aplikasi Anda.
-
Source (Sumber): Aplikasi mengonsumsi data menggunakan sumber. Konektor sumber membaca data dari Kinesis data stream, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tambahkan sumber data streaming.
-
Operators (Operator): Aplikasi memproses data menggunakan satu atau beberapa operator. Operator dapat mengubah, memperkaya, atau menggabungkan data. Untuk informasi selengkapnya, lihat Operator.
-
Sink: Aplikasi menghasilkan data ke sumber eksternal menggunakan sink. Konektor sink menulis data ke aliran data Kinesis, aliran Firehose, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tulis data menggunakan sink.
Setelah Anda membuat, mengompilasi, dan mengemas kode aplikasi Anda, Anda mengunggah paket kode ke bucket Amazon Simple Storage Service (Amazon S3). Anda kemudian membuat Layanan Terkelola untuk aplikasi Apache Flink. Anda meneruskan di lokasi paket kode, Kinesis data stream sebagai sumber data streaming, dan biasanya lokasi streaming atau file yang menerima data yang diproses dari aplikasi.
Prasyarat untuk menyelesaikan latihan
Untuk menyelesaikan langkah-langkah di panduan ini, Anda harus memiliki hal-hal berikut:
-
Java Development Kit (JDK) versi 11
. Atur variabel JAVA_HOME
lingkungan untuk menunjuk ke lokasi JDK penginstalan Anda. -
Sebaiknya gunakan lingkungan pengembangan (seperti Eclipse Java Neon
atau IntelliJ Idea ) untuk mengembangkan dan mengompilasi aplikasi Anda. -
Klien Git
. Instal klien Git jika Anda belum menginstalnya. -
Plugin Compiler Apache Maven
. Maven harus berada di jalur kerja Anda. Untuk menguji instalasi Apache Maven Anda, masukkan hal berikut: $ mvn -version
Untuk memulai, buka Siapkan AWS akun dan buat pengguna administrator.
Langkah 1: Siapkan AWS akun dan buat pengguna administrator
Mendaftar untuk Akun AWS
Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.
Untuk mendaftar untuk Akun AWS
Buka https://portal.aws.amazon.com/billing/pendaftaran.
Ikuti petunjuk online.
Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.
Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.
AWS mengirimkan email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/
Buat pengguna dengan akses administratif
Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.
Amankan Anda Pengguna root akun AWS
-
Masuk ke AWS Management Console
sebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi. Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.
-
Aktifkan otentikasi multi-faktor (MFA) untuk pengguna root Anda.
Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan IAM Pengguna.
Buat pengguna dengan akses administratif
-
Aktifkan Pusat IAM Identitas.
Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .
-
Di Pusat IAM Identitas, berikan akses administratif ke pengguna.
Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.
Masuk sebagai pengguna dengan akses administratif
-
Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.
Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.
Tetapkan akses ke pengguna tambahan
-
Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.
Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.
-
Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.
Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.
Memberikan akses programatis
Pengguna membutuhkan akses terprogram jika mereka ingin berinteraksi dengan AWS luar. AWS Management Console Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengakses AWS.
Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.
Pengguna mana yang membutuhkan akses programatis? | Untuk | Oleh |
---|---|---|
Identitas tenaga kerja (Pengguna dikelola di Pusat IAM Identitas) |
Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
IAM | Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs | Mengikuti petunjuk dalam Menggunakan kredensi sementara dengan AWS sumber daya di IAMPanduan Pengguna. |
IAM | (Tidak direkomendasikan) Gunakan kredensi jangka panjang untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
Langkah selanjutnya
Mengatur AWS Command Line Interface (AWS CLI)
Langkah selanjutnya
Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
Pada langkah ini, Anda mengunduh dan mengonfigurasi AWS CLI untuk digunakan dengan Managed Service for Apache Flink.
catatan
Latihan memulai dalam panduan ini mengasumsikan Anda menggunakan kredensial administrator (adminuser
) di akun Anda untuk melakukan operasi.
catatan
Jika Anda sudah AWS CLI menginstal, Anda mungkin perlu meningkatkan untuk mendapatkan fungsionalitas terbaru. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna AWS Command Line Interface . Untuk memeriksa versi AWS CLI, jalankan perintah berikut:
aws --version
Latihan dalam tutorial ini memerlukan AWS CLI versi berikut atau yang lebih baru:
aws-cli/1.16.63
Untuk mengatur AWS CLI
-
Unduh dan konfigurasikan AWS CLI. Untuk instruksi, lihat topik berikut di AWS Command Line Interface Panduan Pengguna:
-
Tambahkan profil bernama untuk pengguna administrator dalam AWS CLI
config
file. Anda dapat menggunakan profil ini saat menjalankan perintah AWS CLI . Untuk informasi selengkapnya tentang profil yang diberi nama, lihat Profil yang Diberi Nama dalam Panduan Pengguna AWS Command Line Interface .[profile adminuser] aws_access_key_id =
adminuser access key ID
aws_secret_access_key =adminuser secret access key
region =aws-region
Untuk daftar AWS Wilayah yang tersedia, lihat Wilayah dan Titik Akhir di. Referensi Umum Amazon Web Services
catatan
Kode dan perintah contoh dalam tutorial ini menggunakan Wilayah US West (Oregon). Untuk menggunakan Wilayah yang berbeda, ubah Wilayah dalam kode dan perintah untuk tutorial ini ke Wilayah yang ingin Anda gunakan.
-
Verifikasikan penyiapan dengan memasukkan perintah bantuan berikut pada prompt perintah.
aws help
Setelah Anda mengatur AWS akun dan AWS CLI, Anda dapat mencoba latihan berikutnya, di mana Anda mengkonfigurasi aplikasi sampel dan menguji end-to-end pengaturan.
Langkah selanjutnya
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink dengan aliran data sebagai sumber dan wastafel.
Bagian ini berisi langkah-langkah berikut.
Buat dua aliran data Amazon Kinesis
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, buat dua aliran data Kinesis (dan). ExampleInputStream
ExampleOutputStream
Aplikasi Anda menggunakan aliran ini untuk sumber aplikasi dan aliran tujuan.
Anda dapat membuat aliran ini menggunakan konsol Amazon Kinesis atau perintah AWS CLI berikut. Untuk instruksi konsol, lihat Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams.
Untuk membuat aliran data AWS CLI
-
Untuk membuat stream (
ExampleInputStream
) pertama, gunakan perintah Amazon Kinesiscreate-stream
AWS CLI berikut.$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
-
Untuk membuat aliran kedua yang digunakan aplikasi untuk menulis output, jalankan perintah yang sama, yang mengubah nama aliran menjadi
ExampleOutputStream
.$ aws kinesis create-stream \ --stream-name ExampleOutputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Selanjutnya dalam tutorial ini, Anda menjalankan skrip
stock.py
untuk mengirim data ke aplikasi.$ python stock.py
Unduh dan periksa kode Java streaming Apache Flink
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
-
Kloning repositori jarak jauh menggunakan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
-
Buka direktori
amazon-kinesis-data-analytics-java-examples/GettingStarted
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
-
File Project Object Model (pom.xml)
berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink. -
File
BasicStreamingJob.java
berisi metodemain
yang menentukan fungsionalitas aplikasi. -
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
-
Aplikasi Anda membuat konektor sumber dan sink untuk mengakses sumber daya eksternal menggunakan objek
StreamExecutionEnvironment
. -
Aplikasi membuat konektor sumber dan sink menggunakan properti statis. Untuk menggunakan properti aplikasi dinamis, gunakan metode
createSourceFromApplicationProperties
dancreateSinkFromApplicationProperties
untuk membuat konektor. Metode ini membaca properti aplikasi untuk mengonfigurasi konektor.Untuk informasi selengkapnya tentang properti runtime, lihat Menggunakan properti runtime di Managed Service untuk Apache Flink.
Kompilasi kode aplikasi
Di bagian ini, Anda menggunakan compiler Apache Maven untuk membuat kode Java untuk aplikasi. Untuk informasi tentang menginstal Apache Maven dan Java Development Kit (JDK), lihat. Memenuhi prasyarat untuk menyelesaikan latihan
Untuk mengompikasi kode aplikasi
-
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengompilasi dan mengemas kode Anda dengan salah satu dari dua cara:
-
Gunakan alat Maven baris perintah. Buat JAR file Anda dengan menjalankan perintah berikut di direktori yang berisi
pom.xml
file:mvn package -Dflink.version=1.13.2
-
Menyiapkan lingkungan pengembangan Anda. Lihat dokumentasi lingkungan pengembangan Anda untuk detail.
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Anda dapat mengunggah paket Anda sebagai JAR file, atau Anda dapat mengompres paket Anda dan mengunggahnya sebagai ZIP file. Jika Anda membuat aplikasi menggunakan AWS CLI, Anda menentukan jenis konten kode Anda (JARatauZIP).
-
-
Jika ada kesalahan saat mengompilasi, pastikan variabel lingkungan
JAVA_HOME
Anda diatur dengan benar.
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/aws-kinesis-analytics-java-apps-1.0.jar
Unggah kode Java streaming Apache Flink
Pada bagian ini, Anda membuat bucket Amazon Simple Storage Service (Amazon S3) dan mengunggah kode aplikasi Anda.
Untuk mengunggah kode aplikasi
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih Buat bucket.
-
Masukkan
ka-app-code-
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).<username>
-
Di langkah Konfigurasi opsi, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Di langkah Atur izin, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Pilih Create bucket (Buat bucket).
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Pilih Berikutnya. -
Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Anda dapat membuat dan menjalankan Layanan Terkelola untuk aplikasi Apache Flink menggunakan konsol atau aplikasi. AWS CLI
catatan
Saat Anda membuat aplikasi menggunakan konsol, resource AWS Identity and Access Management (IAM) dan Amazon CloudWatch Logs dibuat untuk Anda. Saat Anda membuat aplikasi menggunakan AWS CLI, Anda membuat sumber daya ini secara terpisah.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat Aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My java test app
. -
Untuk Runtime, pilih Apache Flink.
-
Biarkan versi pulldown sebagai Apache Flink versi 1.13.
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Masukkan yang berikut ini:
ID Grup Kunci Nilai ProducerConfigProperties
flink.inputstream.initpos
LATEST
ProducerConfigProperties
aws.region
us-west-2
ProducerConfigProperties
AggregationEnabled
false
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Hentikan aplikasi
Pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Memperbarui aplikasi
Menggunakan konsol, Anda dapat memperbarui pengaturan aplikasi seperti properti aplikasi, pengaturan pemantauan, dan lokasi atau nama file aplikasiJAR. Anda juga dapat memuat ulang aplikasi JAR dari bucket Amazon S3 jika Anda perlu memperbarui kode aplikasi.
Pada MyApplicationhalaman, pilih Konfigurasi. Perbarui pengaturan aplikasi dan pilih Update (Perbarui).
Buat dan jalankan aplikasi (AWS CLI)
Di bagian ini, Anda menggunakan AWS CLI untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Managed Service untuk Apache Flink menggunakan kinesisanalyticsv2
AWS CLI perintah untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat kebijakan izin
catatan
Anda harus membuat kebijakan izin dan peran untuk aplikasi Anda. Jika Anda tidak membuat IAM sumber daya ini, aplikasi Anda tidak dapat mengakses data dan aliran lognya.
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan read
di aliran sumber, dan lainnya yang memberikan izin untuk tindakan write
di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (username
) dengan ID akun Anda.012345678901
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": ["arn:aws:s3:::ka-app-code-
username
", "arn:aws:s3:::ka-app-code-username
/*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
catatan
Untuk mengakses layanan Amazon lainnya, Anda dapat menggunakan AWS SDK for Java. Layanan Terkelola untuk Apache Flink secara otomatis menetapkan kredensional yang SDK diperlukan oleh IAM peran eksekusi layanan yang terkait dengan aplikasi Anda. Tidak ada langkah tambahan yang diperlukan.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).
-
Di bawah Pilih tipe identitas tepercaya, pilih Layanan AWS . Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis. Di bawah Pilih kasus penggunaan Anda, pilih Analitik Kinesis.
Pilih Berikutnya: Izin.
-
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
-
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Berikutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran. -
Lampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi, Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Membuat kebijakan izin.
-
Di halaman Ringkasan, pilih tab Permissions (Izin).
-
Pilih Attach Policies (Lampirkan Kebijakan).
-
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya). -
Pilih AKReadSourceStreamWriteSinkStreamkebijakan, lalu pilih Lampirkan kebijakan.
-
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat Layanan Terkelola untuk aplikasi Apache Flink
-
Simpan JSON kode berikut ke file bernama
create_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (
) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (username
) di peran eksekusi layanan dengan ID akun Anda.012345678901
{ "ApplicationName": "test", "ApplicationDescription": "my java test app", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::
012345678901
:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username
", "FileKey": "aws-kinesis-analytics-java-apps-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } } -
Jalankan tindakan
CreateApplication
dengan permintaan sebelumnya untuk membuat aplikasi:aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai Aplikasi
Di bagian ini, Anda menggunakan tindakan StartApplication
untuk memulai aplikasi.
Untuk memulai aplikasi
-
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "test", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
-
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan Aplikasi
Di bagian ini, Anda menggunakan tindakan StopApplication
untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
-
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "test" }
-
Jalankan tindakan
StopApplication
dengan permintaan berikut untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan Opsi CloudWatch Logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihatSiapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink.
Perbarui Properti Lingkungan
Di bagian ini, Anda menggunakan tindakan UpdateApplication
untuk mengubah properti lingkungan untuk aplikasi tanpa mengompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
-
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "test", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } }
-
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui Kode Aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplication
AWS CLI tindakan.
catatan
Untuk memuat versi baru kode aplikasi dengan nama file yang sama, Anda harus menentukan versi objek baru. Untuk informasi selengkapnya tentang menggunakan versi objek Amazon S3, lihat Mengaktifkan dan Menonaktifkan Versioning.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama, dan versi objek baru. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>
) dengan akhiran yang Anda pilih di Buat dua aliran data Amazon Kinesis bagian.
{ "ApplicationName": "test", "CurrentApplicationVersionId":
1
, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-username
", "FileKeyUpdate": "aws-kinesis-analytics-java-apps-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU
" } } } } }
Langkah selanjutnya
Langkah 4: Bersihkan AWS sumber daya
Langkah 4: Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Memulai.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
-
Di panel Managed Service for Apache Flink, pilih. MyApplication
-
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Di panel Kinesis Data Streams, pilih. ExampleInputStream
-
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
-
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih ka-app-code -
<username>
ember. -
Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di bilah navigasi, pilih Policies (Kebijakan).
-
Di kontrol filter, masukkan kinesis.
-
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
-
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
-
Di bilah navigasi, pilih Roles (Peran).
-
Pilih peran kinesis-analytics- -us-west-2. MyApplication
-
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di bilah navigasi, pilih Logs.
-
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
-
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Langkah selanjutnya
Langkah 5: Langkah selanjutnya
Langkah 5: Langkah selanjutnya
Sekarang setelah Anda membuat dan menjalankan Layanan Terkelola dasar untuk aplikasi Apache Flink, lihat sumber daya berikut untuk solusi Managed Service for Apache Flink yang lebih canggih.
Solusi Data AWS Streaming untuk Amazon Kinesis
: Solusi Data AWS Streaming untuk Amazon Kinesis secara otomatis mengonfigurasi AWS layanan yang diperlukan untuk menangkap, menyimpan, memproses, dan mengirimkan data streaming dengan mudah. Solusi ini menyediakan beberapa opsi untuk memecahkan kasus penggunaan data streaming. Layanan Terkelola untuk opsi Apache Flink memberikan ETL contoh end-to-end streaming yang menunjukkan aplikasi dunia nyata yang menjalankan operasi analitis pada data taksi New York yang disimulasikan. Solusinya menyiapkan semua AWS sumber daya yang diperlukan seperti IAM peran dan kebijakan, CloudWatch dasbor, dan CloudWatch alarm. AWS Solusi Data Streaming untuk Amazon MSK
: Solusi Data AWS Streaming untuk Amazon MSK menyediakan AWS CloudFormation templat tempat data mengalir melalui produsen, penyimpanan streaming, konsumen, dan tujuan. Clickstream Lab dengan Apache Flink dan Apache Kafka
: Lab ujung ke ujung untuk kasus penggunaan clickstream menggunakan Amazon Managed Streaming untuk Apache Kafka Kafka untuk penyimpanan streaming dan Layanan Terkelola untuk Apache Flink untuk aplikasi Apache Flink untuk pemrosesan streaming. Amazon Managed Service for Apache Flink Workshop
: Dalam lokakarya ini, Anda membangun arsitektur end-to-end streaming untuk menyerap, menganalisis, dan memvisualisasikan data streaming dalam waktu dekat. Anda mulai meningkatkan operasi perusahaan taksi di Kota New York. Anda menganalisis data telemetri armada taksi di Kota New York hampir secara langsung untuk mengoptimalkan operasi armada mereka. Pelajari Flink: Pelatihan Hands On: Pelatihan
pengantar resmi Apache Flink yang membantu Anda mulai menulis streaming, analitikETL, dan aplikasi berbasis acara yang dapat diskalakan. catatan
Ketahuilah bahwa Managed Service for Apache Flink tidak mendukung versi Apache Flink (1.12) yang digunakan dalam pelatihan ini. Anda dapat menggunakan Flink 1.15.2 di Flink Managed Service untuk Apache Flink.
Memulai: Flink 1.11.1 - mencela
catatan
Apache Flink versi 1.6, 1.8, dan 1.11 belum didukung oleh komunitas Apache Flink selama lebih dari tiga tahun. Kami berencana untuk menghentikan versi ini di Amazon Managed Service untuk Apache Flink pada 5 November 2024. Mulai dari tanggal ini, Anda tidak akan dapat membuat aplikasi baru untuk versi Flink ini. Anda dapat terus menjalankan aplikasi yang ada saat ini. Anda dapat memutakhirkan aplikasi secara statis menggunakan fitur upgrade versi di tempat di Amazon Managed Service for Apache Flink Untuk informasi selengkapnya, lihat. Gunakan upgrade versi di tempat untuk Apache Flink
Topik ini berisi versi Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink tutorial yang menggunakan Apache Flink 1.11.1.
Bagian ini memperkenalkan Anda pada konsep dasar Layanan Terkelola untuk Apache Flink dan. DataStream API Ini menjelaskan opsi yang tersedia untuk membuat dan menguji aplikasi Anda. Ini juga memberikan petunjuk untuk menginstal alat yang diperlukan untuk menyelesaikan tutorial dalam panduan ini dan untuk membuat aplikasi pertama Anda.
Topik
- Komponen Layanan Terkelola untuk aplikasi Apache Flink
- Prasyarat untuk menyelesaikan latihan
- Langkah 1: Siapkan AWS akun dan buat pengguna administrator
- Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
- Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
- Langkah 4: Bersihkan AWS sumber daya
- Langkah 5: Langkah selanjutnya
Komponen Layanan Terkelola untuk aplikasi Apache Flink
Untuk memproses data, Managed Service untuk aplikasi Apache Flink Anda menggunakan aplikasi Java/Apache Maven atau Scala yang memproses input dan menghasilkan output menggunakan runtime Apache Flink.
Layanan Terkelola untuk aplikasi Apache Flink memiliki komponen-komponen berikut:
-
Properti runtime: Anda dapat menggunakan properti runtime untuk mengonfigurasi aplikasi Anda tanpa mengompilasi ulang kode aplikasi Anda.
-
Source (Sumber): Aplikasi mengonsumsi data menggunakan sumber. Konektor sumber membaca data dari Kinesis data stream, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tambahkan sumber data streaming.
-
Operators (Operator): Aplikasi memproses data menggunakan satu atau beberapa operator. Operator dapat mengubah, memperkaya, atau menggabungkan data. Untuk informasi selengkapnya, lihat Operator.
-
Sink: Aplikasi menghasilkan data ke sumber eksternal menggunakan sink. Konektor sink menulis data ke aliran data Kinesis, aliran Firehose, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tulis data menggunakan sink.
Setelah Anda membuat, mengompilasi, dan mengemas kode aplikasi Anda, Anda mengunggah paket kode ke bucket Amazon Simple Storage Service (Amazon S3). Anda kemudian membuat Layanan Terkelola untuk aplikasi Apache Flink. Anda meneruskan di lokasi paket kode, Kinesis data stream sebagai sumber data streaming, dan biasanya lokasi streaming atau file yang menerima data yang diproses dari aplikasi.
Prasyarat untuk menyelesaikan latihan
Untuk menyelesaikan langkah-langkah di panduan ini, Anda harus memiliki hal-hal berikut:
-
Java Development Kit (JDK) versi 11
. Atur variabel JAVA_HOME
lingkungan untuk menunjuk ke lokasi JDK penginstalan Anda. -
Sebaiknya gunakan lingkungan pengembangan (seperti Eclipse Java Neon
atau IntelliJ Idea ) untuk mengembangkan dan mengompilasi aplikasi Anda. -
Klien Git
. Instal klien Git jika Anda belum menginstalnya. -
Plugin Compiler Apache Maven
. Maven harus berada di jalur kerja Anda. Untuk menguji instalasi Apache Maven Anda, masukkan hal berikut: $ mvn -version
Untuk memulai, buka Siapkan AWS akun dan buat pengguna administrator.
Langkah 1: Siapkan AWS akun dan buat pengguna administrator
Mendaftar untuk Akun AWS
Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.
Untuk mendaftar untuk Akun AWS
Buka https://portal.aws.amazon.com/billing/pendaftaran.
Ikuti petunjuk online.
Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.
Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.
AWS mengirimkan email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/
Buat pengguna dengan akses administratif
Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.
Amankan Anda Pengguna root akun AWS
-
Masuk ke AWS Management Console
sebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi. Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.
-
Aktifkan otentikasi multi-faktor (MFA) untuk pengguna root Anda.
Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan IAM Pengguna.
Buat pengguna dengan akses administratif
-
Aktifkan Pusat IAM Identitas.
Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .
-
Di Pusat IAM Identitas, berikan akses administratif ke pengguna.
Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.
Masuk sebagai pengguna dengan akses administratif
-
Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.
Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.
Tetapkan akses ke pengguna tambahan
-
Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.
Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.
-
Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.
Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.
Memberikan akses programatis
Pengguna membutuhkan akses terprogram jika mereka ingin berinteraksi dengan AWS luar. AWS Management Console Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengakses AWS.
Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.
Pengguna mana yang membutuhkan akses programatis? | Untuk | Oleh |
---|---|---|
Identitas tenaga kerja (Pengguna dikelola di Pusat IAM Identitas) |
Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
IAM | Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs | Mengikuti petunjuk dalam Menggunakan kredensi sementara dengan AWS sumber daya di IAMPanduan Pengguna. |
IAM | (Tidak direkomendasikan) Gunakan kredensi jangka panjang untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
Langkah selanjutnya
Mengatur AWS Command Line Interface (AWS CLI)
Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
Pada langkah ini, Anda mengunduh dan mengonfigurasi AWS CLI untuk digunakan dengan Managed Service for Apache Flink.
catatan
Latihan memulai dalam panduan ini mengasumsikan Anda menggunakan kredensial administrator (adminuser
) di akun Anda untuk melakukan operasi.
catatan
Jika Anda sudah AWS CLI menginstal, Anda mungkin perlu meningkatkan untuk mendapatkan fungsionalitas terbaru. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna AWS Command Line Interface . Untuk memeriksa versi AWS CLI, jalankan perintah berikut:
aws --version
Latihan dalam tutorial ini memerlukan AWS CLI versi berikut atau yang lebih baru:
aws-cli/1.16.63
Untuk mengatur AWS CLI
-
Unduh dan konfigurasikan AWS CLI. Untuk instruksi, lihat topik berikut di AWS Command Line Interface Panduan Pengguna:
-
Tambahkan profil bernama untuk pengguna administrator dalam AWS CLI
config
file. Anda dapat menggunakan profil ini saat menjalankan perintah AWS CLI . Untuk informasi selengkapnya tentang profil yang diberi nama, lihat Profil yang Diberi Nama dalam Panduan Pengguna AWS Command Line Interface .[profile adminuser] aws_access_key_id =
adminuser access key ID
aws_secret_access_key =adminuser secret access key
region =aws-region
Untuk daftar AWS Wilayah yang tersedia, lihat Wilayah dan Titik Akhir di. Referensi Umum Amazon Web Services
catatan
Kode dan perintah contoh dalam tutorial ini menggunakan Wilayah US West (Oregon). Untuk menggunakan Wilayah yang berbeda, ubah Wilayah dalam kode dan perintah untuk tutorial ini ke Wilayah yang ingin Anda gunakan.
-
Verifikasikan penyiapan dengan memasukkan perintah bantuan berikut pada prompt perintah.
aws help
Setelah Anda mengatur AWS akun dan AWS CLI, Anda dapat mencoba latihan berikutnya, di mana Anda mengkonfigurasi aplikasi sampel dan menguji end-to-end pengaturan.
Langkah selanjutnya
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink dengan aliran data sebagai sumber dan wastafel.
Bagian ini berisi langkah-langkah berikut.
Buat dua aliran data Amazon Kinesis
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, buat dua aliran data Kinesis (dan). ExampleInputStream
ExampleOutputStream
Aplikasi Anda menggunakan aliran ini untuk sumber aplikasi dan aliran tujuan.
Anda dapat membuat aliran ini menggunakan konsol Amazon Kinesis atau perintah AWS CLI berikut. Untuk instruksi konsol, lihat Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams.
Untuk membuat aliran data AWS CLI
-
Untuk membuat stream (
ExampleInputStream
) pertama, gunakan perintah Amazon Kinesiscreate-stream
AWS CLI berikut.$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
-
Untuk membuat aliran kedua yang digunakan aplikasi untuk menulis output, jalankan perintah yang sama, yang mengubah nama aliran menjadi
ExampleOutputStream
.$ aws kinesis create-stream \ --stream-name ExampleOutputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { "EVENT_TIME": datetime.datetime.now().isoformat(), "TICKER": random.choice(["AAPL", "AMZN", "MSFT", "INTC", "TBV"]), "PRICE": round(random.random() * 100, 2), } def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey" ) if __name__ == "__main__": generate(STREAM_NAME, boto3.client("kinesis"))
-
Selanjutnya dalam tutorial ini, Anda menjalankan skrip
stock.py
untuk mengirim data ke aplikasi.$ python stock.py
Unduh dan periksa kode Java streaming Apache Flink
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
-
Kloning repositori jarak jauh menggunakan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
-
Buka direktori
amazon-kinesis-data-analytics-java-examples/GettingStarted
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
-
File Project Object Model (pom.xml)
berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink. -
File
BasicStreamingJob.java
berisi metodemain
yang menentukan fungsionalitas aplikasi. -
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
-
Aplikasi Anda membuat konektor sumber dan sink untuk mengakses sumber daya eksternal menggunakan objek
StreamExecutionEnvironment
. -
Aplikasi membuat konektor sumber dan sink menggunakan properti statis. Untuk menggunakan properti aplikasi dinamis, gunakan metode
createSourceFromApplicationProperties
dancreateSinkFromApplicationProperties
untuk membuat konektor. Metode ini membaca properti aplikasi untuk mengonfigurasi konektor.Untuk informasi selengkapnya tentang properti runtime, lihat Menggunakan properti runtime di Managed Service untuk Apache Flink.
Kompilasi kode aplikasi
Di bagian ini, Anda menggunakan compiler Apache Maven untuk membuat kode Java untuk aplikasi. Untuk informasi tentang menginstal Apache Maven dan Java Development Kit (JDK), lihat. Memenuhi prasyarat untuk menyelesaikan latihan
Untuk mengompikasi kode aplikasi
-
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengompilasi dan mengemas kode Anda dengan salah satu dari dua cara:
-
Gunakan alat Maven baris perintah. Buat JAR file Anda dengan menjalankan perintah berikut di direktori yang berisi
pom.xml
file:mvn package -Dflink.version=1.11.3
-
Menyiapkan lingkungan pengembangan Anda. Lihat dokumentasi lingkungan pengembangan Anda untuk detail.
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11. Pastikan versi Java proyek Anda adalah 11.
Anda dapat mengunggah paket Anda sebagai JAR file, atau Anda dapat mengompres paket Anda dan mengunggahnya sebagai ZIP file. Jika Anda membuat aplikasi menggunakan AWS CLI, Anda menentukan jenis konten kode Anda (JARatauZIP).
-
-
Jika ada kesalahan saat mengompilasi, pastikan variabel lingkungan
JAVA_HOME
Anda diatur dengan benar.
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/aws-kinesis-analytics-java-apps-1.0.jar
Unggah kode Java streaming Apache Flink
Pada bagian ini, Anda membuat bucket Amazon Simple Storage Service (Amazon S3) dan mengunggah kode aplikasi Anda.
Untuk mengunggah kode aplikasi
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih Buat bucket.
-
Masukkan
ka-app-code-
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).<username>
-
Di langkah Konfigurasi opsi, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Di langkah Atur izin, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Pilih Create bucket (Buat bucket).
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Pilih Berikutnya. -
Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Anda dapat membuat dan menjalankan Layanan Terkelola untuk aplikasi Apache Flink menggunakan konsol atau aplikasi. AWS CLI
catatan
Saat Anda membuat aplikasi menggunakan konsol, resource AWS Identity and Access Management (IAM) dan Amazon CloudWatch Logs dibuat untuk Anda. Saat Anda membuat aplikasi menggunakan AWS CLI, Anda membuat sumber daya ini secara terpisah.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My java test app
. -
Untuk Runtime, pilih Apache Flink.
-
Biarkan versi pulldown sebagai Apache Flink versi 1.11 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), untuk Group ID (ID Grup), masukkan
ProducerConfigProperties
. -
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai ProducerConfigProperties
flink.inputstream.initpos
LATEST
ProducerConfigProperties
aws.region
us-west-2
ProducerConfigProperties
AggregationEnabled
false
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Hentikan aplikasi
Pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Memperbarui aplikasi
Menggunakan konsol, Anda dapat memperbarui pengaturan aplikasi seperti properti aplikasi, pengaturan pemantauan, dan lokasi atau nama file aplikasiJAR. Anda juga dapat memuat ulang aplikasi JAR dari bucket Amazon S3 jika Anda perlu memperbarui kode aplikasi.
Pada MyApplicationhalaman, pilih Konfigurasi. Perbarui pengaturan aplikasi dan pilih Update (Perbarui).
Buat dan jalankan aplikasi (AWS CLI)
Di bagian ini, Anda menggunakan AWS CLI untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Managed Service for Apache Flink menggunakan kinesisanalyticsv2
AWS CLI perintah untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat Kebijakan Izin
catatan
Anda harus membuat kebijakan izin dan peran untuk aplikasi Anda. Jika Anda tidak membuat IAM sumber daya ini, aplikasi Anda tidak dapat mengakses data dan aliran lognya.
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan read
di aliran sumber, dan lainnya yang memberikan izin untuk tindakan write
di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (username
) dengan ID akun Anda.012345678901
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": ["arn:aws:s3:::ka-app-code-
username
", "arn:aws:s3:::ka-app-code-username
/*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
catatan
Untuk mengakses layanan Amazon lainnya, Anda dapat menggunakan AWS SDK for Java. Layanan Terkelola untuk Apache Flink secara otomatis menetapkan kredensional yang SDK diperlukan oleh IAM peran eksekusi layanan yang terkait dengan aplikasi Anda. Tidak ada langkah tambahan yang diperlukan.
Buat IAM Peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).
-
Di bawah Pilih tipe identitas tepercaya, pilih Layanan AWS . Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis. Di bawah Pilih kasus penggunaan Anda, pilih Analitik Kinesis.
Pilih Berikutnya: Izin.
-
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
-
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Berikutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran. -
Lampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi, Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Membuat Kebijakan Izin.
-
Di halaman Ringkasan, pilih tab Permissions (Izin).
-
Pilih Attach Policies (Lampirkan Kebijakan).
-
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya). -
Pilih AKReadSourceStreamWriteSinkStreamkebijakan, lalu pilih Lampirkan kebijakan.
-
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat Layanan Terkelola untuk aplikasi Apache Flink
-
Simpan JSON kode berikut ke file bernama
create_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (
) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (username
) di peran eksekusi layanan dengan ID akun Anda.012345678901
{ "ApplicationName": "test", "ApplicationDescription": "my java test app", "RuntimeEnvironment": "FLINK-1_11", "ServiceExecutionRole": "arn:aws:iam::
012345678901
:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username
", "FileKey": "aws-kinesis-analytics-java-apps-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } } -
Jalankan tindakan
CreateApplication
dengan permintaan sebelumnya untuk membuat aplikasi:aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan tindakan StartApplication
untuk memulai aplikasi.
Untuk memulai aplikasi
-
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "test", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
-
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan tindakan StopApplication
untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
-
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "test" }
-
Jalankan tindakan
StopApplication
dengan permintaan berikut untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihatSiapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink.
Perbarui properti lingkungan
Di bagian ini, Anda menggunakan tindakan UpdateApplication
untuk mengubah properti lingkungan untuk aplikasi tanpa mengompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
-
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "test", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } }
-
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplication
AWS CLI tindakan.
catatan
Untuk memuat versi baru kode aplikasi dengan nama file yang sama, Anda harus menentukan versi objek baru. Untuk informasi selengkapnya tentang menggunakan versi objek Amazon S3, lihat Mengaktifkan dan Menonaktifkan Versioning.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama, dan versi objek baru. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>
) dengan akhiran yang Anda pilih di Buat dua aliran data Amazon Kinesis bagian.
{ "ApplicationName": "test", "CurrentApplicationVersionId":
1
, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-username
", "FileKeyUpdate": "aws-kinesis-analytics-java-apps-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU
" } } } } }
Langkah selanjutnya
Langkah 4: Bersihkan AWS sumber daya
Langkah 4: Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Memulai.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
-
Di panel Managed Service for Apache Flink, pilih. MyApplication
-
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Di panel Kinesis Data Streams, pilih. ExampleInputStream
-
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
-
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih ka-app-code -
<username>
ember. -
Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus sumber daya rour IAM
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di bilah navigasi, pilih Policies (Kebijakan).
-
Di kontrol filter, masukkan kinesis.
-
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
-
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
-
Di bilah navigasi, pilih Roles (Peran).
-
Pilih peran kinesis-analytics- -us-west-2. MyApplication
-
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di bilah navigasi, pilih Logs.
-
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
-
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Langkah selanjutnya
Langkah 5: Langkah selanjutnya
Langkah 5: Langkah selanjutnya
Sekarang setelah Anda membuat dan menjalankan Layanan Terkelola dasar untuk aplikasi Apache Flink, lihat sumber daya berikut untuk solusi Managed Service for Apache Flink yang lebih canggih.
Solusi Data AWS Streaming untuk Amazon Kinesis
: Solusi Data AWS Streaming untuk Amazon Kinesis secara otomatis mengonfigurasi AWS layanan yang diperlukan untuk menangkap, menyimpan, memproses, dan mengirimkan data streaming dengan mudah. Solusi ini menyediakan beberapa opsi untuk memecahkan kasus penggunaan data streaming. Layanan Terkelola untuk opsi Apache Flink memberikan ETL contoh end-to-end streaming yang menunjukkan aplikasi dunia nyata yang menjalankan operasi analitis pada data taksi New York yang disimulasikan. Solusinya menyiapkan semua AWS sumber daya yang diperlukan seperti IAM peran dan kebijakan, CloudWatch dasbor, dan CloudWatch alarm. AWS Solusi Data Streaming untuk Amazon MSK
: Solusi Data AWS Streaming untuk Amazon MSK menyediakan AWS CloudFormation templat tempat data mengalir melalui produsen, penyimpanan streaming, konsumen, dan tujuan. Clickstream Lab dengan Apache Flink dan Apache Kafka
: Lab ujung ke ujung untuk kasus penggunaan clickstream menggunakan Amazon Managed Streaming untuk Apache Kafka Kafka untuk penyimpanan streaming dan Layanan Terkelola untuk Apache Flink untuk aplikasi Apache Flink untuk pemrosesan streaming. Amazon Managed Service for Apache Flink Workshop
: Dalam lokakarya ini, Anda membangun arsitektur end-to-end streaming untuk menyerap, menganalisis, dan memvisualisasikan data streaming dalam waktu dekat. Anda mulai meningkatkan operasi perusahaan taksi di Kota New York. Anda menganalisis data telemetri armada taksi di Kota New York hampir secara langsung untuk mengoptimalkan operasi armada mereka. Pelajari Flink: Pelatihan Hands On: Pelatihan
pengantar resmi Apache Flink yang membantu Anda mulai menulis streaming, analitikETL, dan aplikasi berbasis acara yang dapat diskalakan. catatan
Ketahuilah bahwa Managed Service for Apache Flink tidak mendukung versi Apache Flink (1.12) yang digunakan dalam pelatihan ini. Anda dapat menggunakan Flink 1.15.2 di Flink Managed Service untuk Apache Flink.
Contoh Kode Apache Flink
: Sebuah GitHub repositori dari berbagai macam contoh aplikasi Apache Flink.
Memulai: Flink 1.8.2 - mencela
catatan
Apache Flink versi 1.6, 1.8, dan 1.11 belum didukung oleh komunitas Apache Flink selama lebih dari tiga tahun. Kami berencana untuk menghentikan versi ini di Amazon Managed Service untuk Apache Flink pada 5 November 2024. Mulai dari tanggal ini, Anda tidak akan dapat membuat aplikasi baru untuk versi Flink ini. Anda dapat terus menjalankan aplikasi yang ada saat ini. Anda dapat memutakhirkan aplikasi secara statis menggunakan fitur upgrade versi di tempat di Amazon Managed Service for Apache Flink Untuk informasi selengkapnya, lihat. Gunakan upgrade versi di tempat untuk Apache Flink
Topik ini berisi versi Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink tutorial yang menggunakan Apache Flink 1.8.2.
Topik
- Komponen Layanan Terkelola untuk aplikasi Apache Flink
- Prasyarat untuk menyelesaikan latihan
- Langkah 1: Siapkan AWS akun dan buat pengguna administrator
- Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
- Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
- Langkah 4: Bersihkan AWS sumber daya
Komponen Layanan Terkelola untuk aplikasi Apache Flink
Untuk memproses data, Managed Service untuk aplikasi Apache Flink Anda menggunakan aplikasi Java/Apache Maven atau Scala yang memproses input dan menghasilkan output menggunakan runtime Apache Flink.
Layanan Terkelola untuk aplikasi Apache Flink memiliki komponen-komponen berikut:
-
Properti runtime: Anda dapat menggunakan properti runtime untuk mengonfigurasi aplikasi Anda tanpa mengompilasi ulang kode aplikasi Anda.
-
Source (Sumber): Aplikasi mengonsumsi data menggunakan sumber. Konektor sumber membaca data dari Kinesis data stream, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tambahkan sumber data streaming.
-
Operators (Operator): Aplikasi memproses data menggunakan satu atau beberapa operator. Operator dapat mengubah, memperkaya, atau menggabungkan data. Untuk informasi selengkapnya, lihat Operator.
-
Sink: Aplikasi menghasilkan data ke sumber eksternal menggunakan sink. Konektor sink menulis data ke aliran data Kinesis, aliran Firehose, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tulis data menggunakan sink.
Setelah Anda membuat, mengompilasi, dan mengemas kode aplikasi Anda, Anda mengunggah paket kode ke bucket Amazon Simple Storage Service (Amazon S3). Anda kemudian membuat Layanan Terkelola untuk aplikasi Apache Flink. Anda meneruskan di lokasi paket kode, Kinesis data stream sebagai sumber data streaming, dan biasanya lokasi streaming atau file yang menerima data yang diproses dari aplikasi.
Prasyarat untuk menyelesaikan latihan
Untuk menyelesaikan langkah-langkah di panduan ini, Anda harus memiliki hal-hal berikut:
-
Java Development Kit (JDK) versi 8
. Atur variabel JAVA_HOME
lingkungan untuk menunjuk ke lokasi JDK penginstalan Anda. -
Untuk menggunakan konektor Apache Flink Kinesis dalam tutorial ini, Anda harus mengunduh dan menginstal Apache Flink. Untuk detailnya, lihat Menggunakan konektor Apache Flink Kinesis Streams dengan versi Apache Flink sebelumnya.
-
Sebaiknya gunakan lingkungan pengembangan (seperti Eclipse Java Neon
atau IntelliJ Idea ) untuk mengembangkan dan mengompilasi aplikasi Anda. -
Klien Git
. Instal klien Git jika Anda belum menginstalnya. -
Plugin Compiler Apache Maven
. Maven harus berada di jalur kerja Anda. Untuk menguji instalasi Apache Maven Anda, masukkan hal berikut: $ mvn -version
Untuk memulai, buka Langkah 1: Siapkan AWS akun dan buat pengguna administrator.
Langkah 1: Siapkan AWS akun dan buat pengguna administrator
Mendaftar untuk Akun AWS
Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.
Untuk mendaftar untuk Akun AWS
Buka https://portal.aws.amazon.com/billing/pendaftaran.
Ikuti petunjuk online.
Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.
Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.
AWS mengirimkan email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/
Buat pengguna dengan akses administratif
Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.
Amankan Anda Pengguna root akun AWS
-
Masuk ke AWS Management Console
sebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi. Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.
-
Aktifkan otentikasi multi-faktor (MFA) untuk pengguna root Anda.
Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan IAM Pengguna.
Buat pengguna dengan akses administratif
-
Aktifkan Pusat IAM Identitas.
Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .
-
Di Pusat IAM Identitas, berikan akses administratif ke pengguna.
Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.
Masuk sebagai pengguna dengan akses administratif
-
Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.
Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.
Tetapkan akses ke pengguna tambahan
-
Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.
Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.
-
Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.
Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.
Memberikan akses programatis
Pengguna membutuhkan akses terprogram jika mereka ingin berinteraksi dengan AWS luar. AWS Management Console Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengakses AWS.
Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.
Pengguna mana yang membutuhkan akses programatis? | Untuk | Oleh |
---|---|---|
Identitas tenaga kerja (Pengguna dikelola di Pusat IAM Identitas) |
Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
IAM | Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs | Mengikuti petunjuk dalam Menggunakan kredensi sementara dengan AWS sumber daya di IAMPanduan Pengguna. |
IAM | (Tidak direkomendasikan) Gunakan kredensi jangka panjang untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
Pada langkah ini, Anda mengunduh dan mengonfigurasi AWS CLI untuk digunakan dengan Managed Service for Apache Flink.
catatan
Latihan memulai dalam panduan ini mengasumsikan Anda menggunakan kredensial administrator (adminuser
) di akun Anda untuk melakukan operasi.
catatan
Jika Anda sudah AWS CLI menginstal, Anda mungkin perlu meningkatkan untuk mendapatkan fungsionalitas terbaru. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna AWS Command Line Interface . Untuk memeriksa versi AWS CLI, jalankan perintah berikut:
aws --version
Latihan dalam tutorial ini memerlukan AWS CLI versi berikut atau yang lebih baru:
aws-cli/1.16.63
Untuk mengatur AWS CLI
-
Unduh dan konfigurasikan AWS CLI. Untuk instruksi, lihat topik berikut di AWS Command Line Interface Panduan Pengguna:
-
Tambahkan profil bernama untuk pengguna administrator dalam AWS CLI
config
file. Anda dapat menggunakan profil ini saat menjalankan perintah AWS CLI . Untuk informasi selengkapnya tentang profil yang diberi nama, lihat Profil yang Diberi Nama dalam Panduan Pengguna AWS Command Line Interface .[profile adminuser] aws_access_key_id =
adminuser access key ID
aws_secret_access_key =adminuser secret access key
region =aws-region
Untuk daftar Wilayah yang tersedia, lihat Wilayah dan Titik Akhir di. Referensi Umum Amazon Web Services
catatan
Kode dan perintah contoh dalam tutorial ini menggunakan Wilayah US West (Oregon). Untuk menggunakan AWS Region yang berbeda, ubah Region dalam kode dan perintah untuk tutorial ini ke Region yang ingin Anda gunakan.
-
Verifikasikan penyiapan dengan memasukkan perintah bantuan berikut pada prompt perintah.
aws help
Setelah Anda mengatur AWS akun dan AWS CLI, Anda dapat mencoba latihan berikutnya, di mana Anda mengkonfigurasi aplikasi sampel dan menguji end-to-end pengaturan.
Langkah selanjutnya
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink dengan aliran data sebagai sumber dan wastafel.
Bagian ini berisi langkah-langkah berikut.
Buat dua aliran data Amazon Kinesis
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, buat dua aliran data Kinesis (dan). ExampleInputStream
ExampleOutputStream
Aplikasi Anda menggunakan aliran ini untuk sumber aplikasi dan aliran tujuan.
Anda dapat membuat aliran ini menggunakan konsol Amazon Kinesis atau perintah AWS CLI berikut. Untuk instruksi konsol, lihat Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams.
Untuk membuat aliran data AWS CLI
-
Untuk membuat stream (
ExampleInputStream
) pertama, gunakan perintah Amazon Kinesiscreate-stream
AWS CLI berikut.$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
-
Untuk membuat aliran kedua yang digunakan aplikasi untuk menulis output, jalankan perintah yang sama, yang mengubah nama aliran menjadi
ExampleOutputStream
.$ aws kinesis create-stream \ --stream-name ExampleOutputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { "EVENT_TIME": datetime.datetime.now().isoformat(), "TICKER": random.choice(["AAPL", "AMZN", "MSFT", "INTC", "TBV"]), "PRICE": round(random.random() * 100, 2), } def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey" ) if __name__ == "__main__": generate(STREAM_NAME, boto3.client("kinesis"))
-
Selanjutnya dalam tutorial ini, Anda menjalankan skrip
stock.py
untuk mengirim data ke aplikasi.$ python stock.py
Unduh dan periksa kode Java streaming Apache Flink
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
-
Kloning repositori jarak jauh menggunakan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
-
Buka direktori
amazon-kinesis-data-analytics-java-examples/GettingStarted_1_8
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
-
File Project Object Model (pom.xml)
berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink. -
File
BasicStreamingJob.java
berisi metodemain
yang menentukan fungsionalitas aplikasi. -
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
-
Aplikasi Anda membuat konektor sumber dan sink untuk mengakses sumber daya eksternal menggunakan objek
StreamExecutionEnvironment
. -
Aplikasi membuat konektor sumber dan sink menggunakan properti statis. Untuk menggunakan properti aplikasi dinamis, gunakan metode
createSourceFromApplicationProperties
dancreateSinkFromApplicationProperties
untuk membuat konektor. Metode ini membaca properti aplikasi untuk mengonfigurasi konektor.Untuk informasi selengkapnya tentang properti runtime, lihat Menggunakan properti runtime di Managed Service untuk Apache Flink.
Kompilasi kode aplikasi
Di bagian ini, Anda menggunakan compiler Apache Maven untuk membuat kode Java untuk aplikasi. Untuk informasi tentang menginstal Apache Maven dan Java Development Kit (JDK), lihat. Prasyarat untuk menyelesaikan latihan
catatan
Untuk menggunakan konektor Kinesis dengan versi Apache Flink sebelum 1.11, Anda perlu mengunduh, membangun, dan menginstal Apache Maven. Untuk informasi selengkapnya, lihat Menggunakan konektor Apache Flink Kinesis Streams dengan versi Apache Flink sebelumnya.
Untuk mengompikasi kode aplikasi
-
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengompilasi dan mengemas kode Anda dengan salah satu dari dua cara:
-
Gunakan alat Maven baris perintah. Buat JAR file Anda dengan menjalankan perintah berikut di direktori yang berisi
pom.xml
file:mvn package -Dflink.version=1.8.2
-
Menyiapkan lingkungan pengembangan Anda. Lihat dokumentasi lingkungan pengembangan Anda untuk detail.
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 1.8. Pastikan versi Java proyek Anda adalah 1.8.
Anda dapat mengunggah paket Anda sebagai JAR file, atau Anda dapat mengompres paket Anda dan mengunggahnya sebagai ZIP file. Jika Anda membuat aplikasi menggunakan AWS CLI, Anda menentukan jenis konten kode Anda (JARatauZIP).
-
-
Jika ada kesalahan saat mengompilasi, pastikan variabel lingkungan
JAVA_HOME
Anda diatur dengan benar.
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/aws-kinesis-analytics-java-apps-1.0.jar
Unggah kode Java streaming Apache Flink
Pada bagian ini, Anda membuat bucket Amazon Simple Storage Service (Amazon S3) dan mengunggah kode aplikasi Anda.
Untuk mengunggah kode aplikasi
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih Buat bucket.
-
Masukkan
ka-app-code-
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).<username>
-
Di langkah Konfigurasi opsi, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Di langkah Atur izin, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Pilih Create bucket (Buat bucket).
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Pilih Berikutnya. -
Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Anda dapat membuat dan menjalankan Layanan Terkelola untuk aplikasi Apache Flink menggunakan konsol atau aplikasi. AWS CLI
catatan
Saat Anda membuat aplikasi menggunakan konsol, resource AWS Identity and Access Management (IAM) dan Amazon CloudWatch Logs dibuat untuk Anda. Saat Anda membuat aplikasi menggunakan AWS CLI, Anda membuat sumber daya ini secara terpisah.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My java test app
. -
Untuk Runtime, pilih Apache Flink.
-
Biarkan menu tarik turun versi sebagai Apache Flink 1.8 (Versi yang Direkomendasikan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai ProducerConfigProperties
flink.inputstream.initpos
LATEST
ProducerConfigProperties
aws.region
us-west-2
ProducerConfigProperties
AggregationEnabled
false
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Jalankan aplikasi
-
Pada MyApplicationhalaman, pilih Jalankan. Konfirmasikan tindakan.
-
Ketika aplikasi berjalan, refresh halaman. Konsol menunjukkan Grafik aplikasi.
Hentikan aplikasi
Pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Memperbarui aplikasi
Menggunakan konsol, Anda dapat memperbarui pengaturan aplikasi seperti properti aplikasi, pengaturan pemantauan, dan lokasi atau nama file aplikasiJAR. Anda juga dapat memuat ulang aplikasi JAR dari bucket Amazon S3 jika Anda perlu memperbarui kode aplikasi.
Pada MyApplicationhalaman, pilih Konfigurasi. Perbarui pengaturan aplikasi dan pilih Update (Perbarui).
Buat dan jalankan aplikasi (AWS CLI)
Di bagian ini, Anda menggunakan AWS CLI untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Managed Service untuk Apache Flink menggunakan kinesisanalyticsv2
AWS CLI perintah untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat Kebijakan Izin
catatan
Anda harus membuat kebijakan izin dan peran untuk aplikasi Anda. Jika Anda tidak membuat IAM sumber daya ini, aplikasi Anda tidak dapat mengakses data dan aliran lognya.
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan read
di aliran sumber, dan lainnya yang memberikan izin untuk tindakan write
di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (username
) dengan ID akun Anda.012345678901
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": ["arn:aws:s3:::ka-app-code-
username
", "arn:aws:s3:::ka-app-code-username
/*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
catatan
Untuk mengakses layanan Amazon lainnya, Anda dapat menggunakan AWS SDK for Java. Layanan Terkelola untuk Apache Flink secara otomatis menetapkan kredensional yang SDK diperlukan oleh IAM peran eksekusi layanan yang terkait dengan aplikasi Anda. Tidak ada langkah tambahan yang diperlukan.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).
-
Di bawah Pilih tipe identitas tepercaya, pilih Layanan AWS . Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis. Di bawah Pilih kasus penggunaan Anda, pilih Analitik Kinesis.
Pilih Berikutnya: Izin.
-
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
-
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Berikutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran. -
Lampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi, Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Membuat Kebijakan Izin.
-
Di halaman Ringkasan, pilih tab Permissions (Izin).
-
Pilih Attach Policies (Lampirkan Kebijakan).
-
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya). -
Pilih AKReadSourceStreamWriteSinkStreamkebijakan, lalu pilih Lampirkan kebijakan.
-
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat Layanan Terkelola untuk aplikasi Apache Flink
-
Simpan JSON kode berikut ke file bernama
create_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (
) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (username
) di peran eksekusi layanan dengan ID akun Anda.012345678901
{ "ApplicationName": "test", "ApplicationDescription": "my java test app", "RuntimeEnvironment": "FLINK-1_8", "ServiceExecutionRole": "arn:aws:iam::
012345678901
:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username
", "FileKey": "aws-kinesis-analytics-java-apps-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } } -
Jalankan tindakan
CreateApplication
dengan permintaan sebelumnya untuk membuat aplikasi:aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan tindakan StartApplication
untuk memulai aplikasi.
Untuk memulai aplikasi
-
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "test", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
-
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan tindakan StopApplication
untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
-
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "test" }
-
Jalankan tindakan
StopApplication
dengan permintaan berikut untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihatSiapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink.
Perbarui properti lingkungan
Di bagian ini, Anda menggunakan tindakan UpdateApplication
untuk mengubah properti lingkungan untuk aplikasi tanpa mengompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
-
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "test", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } }
-
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplication
AWS CLI tindakan.
catatan
Untuk memuat versi baru kode aplikasi dengan nama file yang sama, Anda harus menentukan versi objek baru. Untuk informasi selengkapnya tentang menggunakan versi objek Amazon S3, lihat Mengaktifkan dan Menonaktifkan Versioning.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama, dan versi objek baru. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>
) dengan akhiran yang Anda pilih di Buat dua aliran data Amazon Kinesis bagian.
{ "ApplicationName": "test", "CurrentApplicationVersionId":
1
, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-username
", "FileKeyUpdate": "aws-kinesis-analytics-java-apps-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU
" } } } } }
Langkah selanjutnya
Langkah 4: Bersihkan AWS sumber daya
Langkah 4: Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Memulai.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
-
Di panel Managed Service for Apache Flink, pilih. MyApplication
-
Pilih Configure (Konfigurasikan).
-
Di bagian Snapshots, pilih Disable (Nonaktifkan), lalu pilih Update (Perbarui).
-
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Di panel Kinesis Data Streams, pilih. ExampleInputStream
-
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
-
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih ka-app-code -
<username>
ember. -
Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di bilah navigasi, pilih Policies (Kebijakan).
-
Di kontrol filter, masukkan kinesis.
-
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
-
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
-
Di bilah navigasi, pilih Roles (Peran).
-
Pilih peran kinesis-analytics- -us-west-2. MyApplication
-
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di bilah navigasi, pilih Logs.
-
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
-
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Memulai: Flink 1.6.2 - mencela
catatan
Apache Flink versi 1.6, 1.8, dan 1.11 belum didukung oleh komunitas Apache Flink selama lebih dari tiga tahun. Kami berencana untuk menghentikan versi ini di Amazon Managed Service untuk Apache Flink pada 5 November 2024. Mulai dari tanggal ini, Anda tidak akan dapat membuat aplikasi baru untuk versi Flink ini. Anda dapat terus menjalankan aplikasi yang ada saat ini. Anda dapat memutakhirkan aplikasi secara statis menggunakan fitur upgrade versi di tempat di Amazon Managed Service for Apache Flink Untuk informasi selengkapnya, lihat. Gunakan upgrade versi di tempat untuk Apache Flink
Topik ini berisi versi Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink tutorial yang menggunakan Apache Flink 1.6.2.
Topik
- Komponen Layanan Terkelola untuk aplikasi Apache Flink
- Prasyarat untuk menyelesaikan latihan
- Langkah 1: Siapkan AWS akun dan buat pengguna administrator
- Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
- Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
- Langkah 4: Bersihkan AWS sumber daya
Komponen Layanan Terkelola untuk aplikasi Apache Flink
Untuk memproses data, Managed Service untuk aplikasi Apache Flink Anda menggunakan aplikasi Java/Apache Maven atau Scala yang memproses input dan menghasilkan output menggunakan runtime Apache Flink.
Managed Service untuk Apache Flink memiliki komponen-komponen berikut:
-
Properti runtime: Anda dapat menggunakan properti runtime untuk mengonfigurasi aplikasi Anda tanpa mengompilasi ulang kode aplikasi Anda.
-
Source (Sumber): Aplikasi mengonsumsi data menggunakan sumber. Konektor sumber membaca data dari Kinesis data stream, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tambahkan sumber data streaming.
-
Operators (Operator): Aplikasi memproses data menggunakan satu atau beberapa operator. Operator dapat mengubah, memperkaya, atau menggabungkan data. Untuk informasi selengkapnya, lihat Operator.
-
Sink: Aplikasi menghasilkan data ke sumber eksternal menggunakan sink. Konektor sink menulis data ke aliran data Kinesis, aliran Firehose, bucket Amazon S3, dll. Untuk informasi selengkapnya, lihat Tulis data menggunakan sink.
Setelah Anda membuat, mengompilasi, dan mengemas aplikasi Anda, Anda mengunggah paket kode ke bucket Amazon Simple Storage Service (Amazon S3). Anda kemudian membuat Layanan Terkelola untuk aplikasi Apache Flink. Anda meneruskan di lokasi paket kode, Kinesis data stream sebagai sumber data streaming, dan biasanya lokasi streaming atau file yang menerima data yang diproses dari aplikasi.
Prasyarat untuk menyelesaikan latihan
Untuk menyelesaikan langkah-langkah di panduan ini, Anda harus memiliki hal-hal berikut:
-
Java Development Kit
(JDK) versi 8. Atur variabel JAVA_HOME
lingkungan untuk menunjuk ke lokasi JDK penginstalan Anda. -
Sebaiknya gunakan lingkungan pengembangan (seperti Eclipse Java Neon
atau IntelliJ Idea ) untuk mengembangkan dan mengompilasi aplikasi Anda. -
Klien Git.
Instal klien Git jika Anda belum menginstalnya. -
Plugin Compiler Apache Maven
. Maven harus berada di jalur kerja Anda. Untuk menguji instalasi Apache Maven Anda, masukkan hal berikut: $ mvn -version
Untuk memulai, buka Langkah 1: Siapkan AWS akun dan buat pengguna administrator.
Langkah 1: Siapkan AWS akun dan buat pengguna administrator
Mendaftar untuk Akun AWS
Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.
Untuk mendaftar untuk Akun AWS
Buka https://portal.aws.amazon.com/billing/pendaftaran.
Ikuti petunjuk online.
Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.
Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.
AWS mengirimkan email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/
Buat pengguna dengan akses administratif
Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.
Amankan Anda Pengguna root akun AWS
-
Masuk ke AWS Management Console
sebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi. Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.
-
Aktifkan otentikasi multi-faktor (MFA) untuk pengguna root Anda.
Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan IAM Pengguna.
Buat pengguna dengan akses administratif
-
Aktifkan Pusat IAM Identitas.
Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .
-
Di Pusat IAM Identitas, berikan akses administratif ke pengguna.
Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.
Masuk sebagai pengguna dengan akses administratif
-
Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.
Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.
Tetapkan akses ke pengguna tambahan
-
Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.
Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.
-
Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.
Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.
Memberikan akses programatis
Pengguna membutuhkan akses terprogram jika mereka ingin berinteraksi dengan AWS luar. AWS Management Console Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengakses AWS.
Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.
Pengguna mana yang membutuhkan akses programatis? | Untuk | Oleh |
---|---|---|
Identitas tenaga kerja (Pengguna dikelola di Pusat IAM Identitas) |
Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
IAM | Gunakan kredensi sementara untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs | Mengikuti petunjuk dalam Menggunakan kredensi sementara dengan AWS sumber daya di IAMPanduan Pengguna. |
IAM | (Tidak direkomendasikan) Gunakan kredensi jangka panjang untuk menandatangani permintaan terprogram ke AWS CLI,, AWS SDKs atau. AWS APIs |
Mengikuti petunjuk untuk antarmuka yang ingin Anda gunakan.
|
Langkah 2: Mengatur AWS Command Line Interface (AWS CLI)
Pada langkah ini, Anda mengunduh dan mengonfigurasi AWS CLI untuk digunakan dengan Managed Service for Apache Flink.
catatan
Latihan memulai dalam panduan ini mengasumsikan Anda menggunakan kredensial administrator (adminuser
) di akun Anda untuk melakukan operasi.
catatan
Jika Anda sudah AWS CLI menginstal, Anda mungkin perlu meningkatkan untuk mendapatkan fungsionalitas terbaru. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna AWS Command Line Interface . Untuk memeriksa versi AWS CLI, jalankan perintah berikut:
aws --version
Latihan dalam tutorial ini memerlukan AWS CLI versi berikut atau yang lebih baru:
aws-cli/1.16.63
Untuk mengatur AWS CLI
-
Unduh dan konfigurasikan AWS CLI. Untuk instruksi, lihat topik berikut di AWS Command Line Interface Panduan Pengguna:
-
Tambahkan profil bernama untuk pengguna administrator dalam AWS CLI
config
file. Anda dapat menggunakan profil ini saat menjalankan perintah AWS CLI . Untuk informasi selengkapnya tentang profil yang diberi nama, lihat Profil yang Diberi Nama dalam Panduan Pengguna AWS Command Line Interface .[profile adminuser] aws_access_key_id =
adminuser access key ID
aws_secret_access_key =adminuser secret access key
region =aws-region
Untuk daftar AWS Wilayah yang tersedia, lihat Wilayah dan Titik Akhir di. Referensi Umum Amazon Web Services
catatan
Kode dan perintah contoh dalam tutorial ini menggunakan Wilayah US West (Oregon). Untuk menggunakan Wilayah yang berbeda, ubah Wilayah dalam kode dan perintah untuk tutorial ini ke Wilayah yang ingin Anda gunakan.
-
Verifikasikan penyiapan dengan memasukkan perintah bantuan berikut pada prompt perintah.
aws help
Setelah Anda mengatur AWS akun dan AWS CLI, Anda dapat mencoba latihan berikutnya, di mana Anda mengkonfigurasi aplikasi sampel dan menguji end-to-end pengaturan.
Langkah selanjutnya
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Langkah 3: Buat dan jalankan Layanan Terkelola untuk aplikasi Apache Flink
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink dengan aliran data sebagai sumber dan wastafel.
Bagian ini berisi langkah-langkah berikut.
Buat dua aliran data Amazon Kinesis
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, buat dua aliran data Kinesis (dan). ExampleInputStream
ExampleOutputStream
Aplikasi Anda menggunakan aliran ini untuk sumber aplikasi dan aliran tujuan.
Anda dapat membuat aliran ini menggunakan konsol Amazon Kinesis atau perintah AWS CLI berikut. Untuk instruksi konsol, lihat Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams.
Untuk membuat aliran data AWS CLI
-
Untuk membuat stream (
ExampleInputStream
) pertama, gunakan perintah Amazon Kinesiscreate-stream
AWS CLI berikut.$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
-
Untuk membuat aliran kedua yang digunakan aplikasi untuk menulis output, jalankan perintah yang sama, yang mengubah nama aliran menjadi
ExampleOutputStream
.$ aws kinesis create-stream \ --stream-name ExampleOutputStream \ --shard-count 1 \ --region us-west-2 \ --profile adminuser
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { "EVENT_TIME": datetime.datetime.now().isoformat(), "TICKER": random.choice(["AAPL", "AMZN", "MSFT", "INTC", "TBV"]), "PRICE": round(random.random() * 100, 2), } def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey" ) if __name__ == "__main__": generate(STREAM_NAME, boto3.client("kinesis"))
-
Selanjutnya dalam tutorial ini, Anda menjalankan skrip
stock.py
untuk mengirim data ke aplikasi.$ python stock.py
Unduh dan periksa kode Java streaming Apache Flink
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Kloning repositori jarak jauh menggunakan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/GettingStarted_1_6
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
File Project Object Model (pom.xml)
berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink. File
BasicStreamingJob.java
berisi metodemain
yang menentukan fungsionalitas aplikasi.Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
Aplikasi Anda membuat konektor sumber dan sink untuk mengakses sumber daya eksternal menggunakan objek
StreamExecutionEnvironment
.Aplikasi membuat konektor sumber dan sink menggunakan properti statis. Untuk menggunakan properti aplikasi dinamis, gunakan metode
createSourceFromApplicationProperties
dancreateSinkFromApplicationProperties
untuk membuat konektor. Metode ini membaca properti aplikasi untuk mengonfigurasi konektor.Untuk informasi selengkapnya tentang properti runtime, lihat Menggunakan properti runtime di Managed Service untuk Apache Flink.
Kompilasi kode aplikasi
Di bagian ini, Anda menggunakan compiler Apache Maven untuk membuat kode Java untuk aplikasi. Untuk informasi tentang menginstal Apache Maven dan Java Development Kit (JDK), lihat. Prasyarat untuk menyelesaikan latihan
catatan
Untuk menggunakan konektor Kinesis dengan versi Apache Flink sebelum 1.11, Anda perlu mengunduh kode sumber untuk konektor dan membangunnya seperti yang dijelaskan dalam Dokumentasi Apache Flink
Untuk mengompikasi kode aplikasi
-
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengompilasi dan mengemas kode Anda dengan salah satu dari dua cara:
Gunakan alat Maven baris perintah. Buat JAR file Anda dengan menjalankan perintah berikut di direktori yang berisi
pom.xml
file:mvn package
catatan
Parameter -DFLink.version tidak diperlukan untuk Managed Service untuk Apache Flink Runtime versi 1.0.1; hanya diperlukan untuk versi 1.1.0 dan yang lebih baru. Untuk informasi selengkapnya, lihat Tentukan versi Apache Flink aplikasi Anda.
Menyiapkan lingkungan pengembangan Anda. Lihat dokumentasi lingkungan pengembangan Anda untuk detail.
Anda dapat mengunggah paket Anda sebagai JAR file, atau Anda dapat mengompres paket Anda dan mengunggahnya sebagai ZIP file. Jika Anda membuat aplikasi menggunakan AWS CLI, Anda menentukan jenis konten kode Anda (JARatauZIP).
-
Jika ada kesalahan saat mengompilasi, pastikan variabel lingkungan
JAVA_HOME
Anda diatur dengan benar.
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/aws-kinesis-analytics-java-apps-1.0.jar
Unggah kode Java streaming Apache Flink
Pada bagian ini, Anda membuat bucket Amazon Simple Storage Service (Amazon S3) dan mengunggah kode aplikasi Anda.
Untuk mengunggah kode aplikasi
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih Buat bucket.
-
Masukkan
ka-app-code-
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).<username>
-
Di langkah Konfigurasi opsi, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Di langkah Atur izin, jangan ubah pengaturan, dan pilih Next (Selanjutnya).
-
Pilih Create bucket (Buat bucket).
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Pilih Berikutnya. -
Di langkah Atur izin, jangan ubah pengaturan. Pilih Berikutnya.
-
Di langkah Atur properti, jangan ubah pengaturan. Pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Anda dapat membuat dan menjalankan Layanan Terkelola untuk aplikasi Apache Flink menggunakan konsol atau aplikasi. AWS CLI
catatan
Saat Anda membuat aplikasi menggunakan konsol, resource AWS Identity and Access Management (IAM) dan Amazon CloudWatch Logs dibuat untuk Anda. Saat Anda membuat aplikasi menggunakan AWS CLI, Anda membuat sumber daya ini secara terpisah.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My java test app
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.8.2 atau 1.6.2.
Ubah versi menu tarik turun ke Apache Flink 1.6.
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/java-getting-started-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
java-getting-started-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai ProducerConfigProperties
flink.inputstream.initpos
LATEST
ProducerConfigProperties
aws.region
us-west-2
ProducerConfigProperties
AggregationEnabled
false
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Jalankan aplikasi
-
Pada MyApplicationhalaman, pilih Jalankan. Konfirmasikan tindakan.
-
Ketika aplikasi berjalan, refresh halaman. Konsol menunjukkan Grafik aplikasi.
Hentikan aplikasi
Pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Memperbarui aplikasi
Menggunakan konsol, Anda dapat memperbarui pengaturan aplikasi seperti properti aplikasi, pengaturan pemantauan, dan lokasi atau nama file aplikasiJAR. Anda juga dapat memuat ulang aplikasi JAR dari bucket Amazon S3 jika Anda perlu memperbarui kode aplikasi.
Pada MyApplicationhalaman, pilih Konfigurasi. Perbarui pengaturan aplikasi dan pilih Update (Perbarui).
Buat dan jalankan aplikasi (AWS CLI)
Di bagian ini, Anda menggunakan AWS CLI untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Managed Service untuk Apache Flink menggunakan kinesisanalyticsv2
AWS CLI perintah untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat kebijakan izin
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan read
di aliran sumber, dan lainnya yang memberikan izin untuk tindakan write
di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (username
) dengan ID akun Anda.012345678901
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": ["arn:aws:s3:::ka-app-code-
username
", "arn:aws:s3:::ka-app-code-username
/*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
catatan
Untuk mengakses layanan Amazon lainnya, Anda dapat menggunakan AWS SDK for Java. Layanan Terkelola untuk Apache Flink secara otomatis menetapkan kredensional yang SDK diperlukan oleh IAM peran eksekusi layanan yang terkait dengan aplikasi Anda. Tidak ada langkah tambahan yang diperlukan.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).
-
Di bawah Pilih tipe identitas tepercaya, pilih Layanan AWS . Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis. Di bawah Pilih kasus penggunaan Anda, pilih Analitik Kinesis.
Pilih Berikutnya: Izin.
-
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
-
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Berikutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran. -
Lampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi, Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Membuat kebijakan izin.
-
Di halaman Ringkasan, pilih tab Permissions (Izin).
-
Pilih Attach Policies (Lampirkan Kebijakan).
-
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya). -
Pilih AKReadSourceStreamWriteSinkStreamkebijakan, lalu pilih Lampirkan kebijakan.
-
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat Layanan Terkelola untuk aplikasi Apache Flink
-
Simpan JSON kode berikut ke file bernama
create_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (
) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (username
) di peran eksekusi layanan dengan ID akun Anda.012345678901
{ "ApplicationName": "test", "ApplicationDescription": "my java test app", "RuntimeEnvironment": "FLINK-1_6", "ServiceExecutionRole": "arn:aws:iam::
012345678901
:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username
", "FileKey": "java-getting-started-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } } -
Jalankan tindakan
CreateApplication
dengan permintaan sebelumnya untuk membuat aplikasi:aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan tindakan StartApplication
untuk memulai aplikasi.
Untuk memulai aplikasi
-
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "test", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
-
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan tindakan StopApplication
untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
-
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "test" }
-
Jalankan tindakan
StopApplication
dengan permintaan berikut untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihatSiapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink.
Perbarui properti lingkungan
Di bagian ini, Anda menggunakan tindakan UpdateApplication
untuk mengubah properti lingkungan untuk aplikasi tanpa mengompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
-
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "test", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } }
-
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplication
AWS CLI tindakan.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>
) dengan akhiran yang Anda pilih di Buat dua aliran data Amazon Kinesis bagian.
{ "ApplicationName": "test", "CurrentApplicationVersionId":
1
, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-username
", "FileKeyUpdate": "java-getting-started-1.0.jar" } } } } }
Langkah 4: Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Memulai.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Managed Service for Apache Flink, pilih. MyApplication
Pilih Configure (Konfigurasikan).
Di bagian Snapshots, pilih Disable (Nonaktifkan), lalu pilih Update (Perbarui).
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh versi sebelumnya (warisan) untuk Managed Service untuk Apache Flink
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Bagian ini memberikan contoh membuat dan bekerja dengan aplikasi di Managed Service untuk Apache Flink. Mereka menyertakan contoh kode dan step-by-step instruksi untuk membantu Anda membuat Layanan Terkelola untuk aplikasi Apache Flink dan menguji hasil Anda.
Sebelum Anda menjelajahi contoh-contoh ini, sebaiknya tinjau hal berikut terlebih dulu:
catatan
Contoh ini menganggap Anda menggunakan Wilayah US West (Oregon) (us-west-2
). Jika Anda menggunakan Wilayah yang berbeda, perbarui kode aplikasi, perintah, dan IAM peran Anda dengan tepat.
DataStream APIcontoh
Contoh berikut menunjukkan cara membuat aplikasi menggunakan Apache DataStream API Flink.
Topik
- Contoh: Jendela jatuh
- Contoh: Jendela geser
- Contoh: Menulis ke ember Amazon S3
- Tutorial: Menggunakan Layanan Terkelola untuk aplikasi Apache Flink untuk mereplikasi data dari satu topik dalam MSK cluster ke yang lain dalam VPC
- Contoh: Gunakan EFO konsumen dengan aliran data Kinesis
- Contoh: Menulis ke Firehose
- Contoh: Baca dari aliran Kinesis di akun yang berbeda
- Tutorial: Menggunakan truststore khusus dengan Amazon MSK
Contoh: Jendela jatuh
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink yang mengumpulkan data menggunakan jendela tumbling. Agregrasi diaktifkan secara default di Flink. Untuk menonaktifkannya, gunakan yang berikut ini:
sink.producer.aggregation-enabled' = 'false'
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Dua Kinesis data streams (
ExampleInputStream
danExampleOutputStream
)Bucket Amazon S3 untuk menyimpan kode aplikasi (
ka-app-code-
)<username>
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
danExampleOutputStream
Anda.Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/TumblingWindow
tersebut.
Kode aplikasi terletak di file TumblingWindowStreamingJob.java
. Perhatikan hal tentang kode aplikasi berikut:
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
Tambahkan pernyataan impor berikut:
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows; //flink 1.13 onward
Aplikasi menggunakan operator
timeWindow
untuk mencari hitungan nilai untuk setiap simbol saham melalui jendela tumbling 5 detik. Kode berikut membuat operator dan mengirimkan data agregat ke sink Kinesis Data Streams baru:input.flatMap(new Tokenizer()) // Tokenizer for generating words .keyBy(0) // Logically partition the stream for each word .window(TumblingProcessingTimeWindows.of(Time.seconds(5))) //Flink 1.13 onward .sum(1) // Sum the number of words per partition .map(value -> value.f0 + "," + value.f1.toString() + "\n") .addSink(createSinkFromStaticConfig());
Kompilasi kode aplikasi
Untuk mengompilasi aplikasi, lakukan hal berikut:
Instal Java dan Maven jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Lengkapi prasyarat yang diperlukan di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
Susun aplikasi dengan perintah berikut:
mvn package -Dflink.version=1.15.3
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Kompilasi aplikasi membuat JAR file aplikasi (target/aws-kinesis-analytics-java-apps-1.0.jar
).
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.15.2.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "logs:DescribeLogGroups", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*", "arn:aws:s3:::ka-app-code-<username>
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": "logs:DescribeLogStreams", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Jalankan aplikasi
-
Pada MyApplicationhalaman, pilih Jalankan. Biarkan opsi Run without snapshot (Jalankan tanpa snapshot) dipilih, dan konfirmasikan tindakan.
-
Ketika aplikasi berjalan, refresh halaman. Konsol menunjukkan Grafik aplikasi.
Anda dapat memeriksa metrik Managed Service for Apache Flink di CloudWatch konsol untuk memverifikasi bahwa aplikasi berfungsi.
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Tumbling Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Jendela geser
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Dua Kinesis data streams (
ExampleInputStream
danExampleOutputStream
)Bucket Amazon S3 untuk menyimpan kode aplikasi (
ka-app-code-
)<username>
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
danExampleOutputStream
Anda.Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { "EVENT_TIME": datetime.datetime.now().isoformat(), "TICKER": random.choice(["AAPL", "AMZN", "MSFT", "INTC", "TBV"]), "PRICE": round(random.random() * 100, 2), } def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey" ) if __name__ == "__main__": generate(STREAM_NAME, boto3.client("kinesis"))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/SlidingWindow
tersebut.
Kode aplikasi terletak di file SlidingWindowStreamingJobWithParallelism.java
. Perhatikan hal tentang kode aplikasi berikut:
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
Aplikasi menggunakan operator
timeWindow
untuk menemukan nilai minimum untuk setiap simbol saham melalui jendela 10 detik yang bergeser 5 detik. Kode berikut membuat operator dan mengirimkan data agregat ke sink Kinesis Data Streams baru:Tambahkan pernyataan impor berikut:
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows; //flink 1.13 onward
Aplikasi menggunakan operator
timeWindow
untuk mencari hitungan nilai untuk setiap simbol saham melalui jendela tumbling 5 detik. Kode berikut membuat operator dan mengirimkan data agregat ke sink Kinesis Data Streams baru:input.flatMap(new Tokenizer()) // Tokenizer for generating words .keyBy(0) // Logically partition the stream for each word .window(TumblingProcessingTimeWindows.of(Time.seconds(5))) //Flink 1.13 onward .sum(1) // Sum the number of words per partition .map(value -> value.f0 + "," + value.f1.toString() + "\n") .addSink(createSinkFromStaticConfig());
Kompilasi kode aplikasi
Untuk mengompilasi aplikasi, lakukan hal berikut:
Instal Java dan Maven jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Lengkapi prasyarat yang diperlukan di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
Susun aplikasi dengan perintah berikut:
mvn package -Dflink.version=1.15.3
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Kompilasi aplikasi membuat JAR file aplikasi (target/aws-kinesis-analytics-java-apps-1.0.jar
).
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, lalu pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "logs:DescribeLogGroups", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*", "arn:aws:s3:::ka-app-code-<username>
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": "logs:DescribeLogStreams", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Konfigurasikan paralelisme aplikasi
Contoh aplikasi ini menggunakan eksekusi tugas paralel. Kode aplikasi berikut mengatur paralelisme operator min
:
.setParallelism(3) // Set parallelism for the min operator
Aplikasi paralelisme tidak boleh lebih besar dari paralelisme yang disediakan, yang memiliki default sama dengan 1. Untuk meningkatkan paralelisme aplikasi Anda, gunakan tindakan berikut: AWS CLI
aws kinesisanalyticsv2 update-application --application-name MyApplication --current-application-version-id <VersionId> --application-configuration-update "{\"FlinkApplicationConfigurationUpdate\": { \"ParallelismConfigurationUpdate\": {\"ParallelismUpdate\": 5, \"ConfigurationTypeUpdate\": \"CUSTOM\" }}}"
Anda dapat mengambil ID versi aplikasi saat ini menggunakan ListApplicationstindakan DescribeApplicationatau.
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Anda dapat memeriksa metrik Managed Service for Apache Flink di CloudWatch konsol untuk memverifikasi bahwa aplikasi berfungsi.
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Sliding Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
Di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Menulis ke ember Amazon S3
Dalam latihan ini, Anda membuat Layanan Terkelola untuk Apache Flink yang memiliki aliran data Kinesis sebagai sumber dan bucket Amazon S3 sebagai wastafel. Dengan menggunakan sink, Anda dapat memverifikasi output aplikasi di konsol Amazon S3.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
- Buat sumber daya yang bergantung
- Tulis catatan sampel ke aliran input
- Unduh dan periksa kode aplikasi
- Ubah kode aplikasi
- Kompilasi kode aplikasi
- Unggah kode Java streaming Apache Flink
- Buat dan jalankan Managed Service untuk aplikasi Apache Flink
- Verifikasi output aplikasi
- Opsional: Sesuaikan sumber dan wastafel
- Bersihkan AWS sumber daya
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
-
Kinesis data stream (
ExampleInputStream
). -
Bucket Amazon S3 untuk menyimpan kode dan output aplikasi (
ka-app-code-
)<username>
catatan
Layanan Terkelola untuk Apache Flink tidak dapat menulis data ke Amazon S3 dengan enkripsi sisi server diaktifkan pada Layanan Terkelola untuk Apache Flink.
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
-
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
Anda. -
Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
. Buat dua folder (<username>
code
dandata
) dalam bucket Amazon S3.
Aplikasi membuat CloudWatch sumber daya berikut jika belum ada:
-
Grup log yang disebut
/AWS/KinesisAnalytics-java/MyApplication
. -
Aliran log yang disebut
kinesis-analytics-log-stream
.
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
-
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. -
Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
-
Buka direktori
amazon-kinesis-data-analytics-java-examples/S3Sink
tersebut.
Kode aplikasi terletak di file S3StreamingSinkJob.java
. Perhatikan hal tentang kode aplikasi berikut:
-
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
-
Anda perlu menambahkan pernyataan impor berikut:
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows;
-
Aplikasi ini menggunakan sink S3 Apache Flink untuk menulis ke Amazon S3.
Sink membaca pesan di jendela tumbling, mengenkodekan pesan ke objek bucket S3, dan mengirimkan objek yang dienkodekan ke sink S3. Kode berikut mengenkodekan objek untuk mengirim ke Amazon S3:
input.map(value -> { // Parse the JSON JsonNode jsonNode = jsonParser.readValue(value, JsonNode.class); return new Tuple2<>(jsonNode.get("ticker").toString(), 1); }).returns(Types.TUPLE(Types.STRING, Types.INT)) .keyBy(v -> v.f0) // Logically partition the stream for each word .window(TumblingProcessingTimeWindows.of(Time.minutes(1))) .sum(1) // Count the appearances by ticker per partition .map(value -> value.f0 + " count: " + value.f1.toString() + "\n") .addSink(createS3SinkFromStaticConfig());
catatan
Aplikasi ini menggunakan objek StreamingFileSink
Flink untuk menulis ke Amazon S3. Untuk informasi lebih lanjut tentangStreamingFileSink
, lihat StreamingFileSink
Ubah kode aplikasi
Di bagian ini, Anda mengubah kode aplikasi untuk menulis output ke bucket Amazon S3 Anda.
Perbarui baris berikut dengan nama pengguna Anda untuk menentukan lokasi output aplikasi:
private static final String s3SinkPath = "s3a://ka-app-code-
<username>
/data";
Kompilasi kode aplikasi
Untuk mengompilasi aplikasi, lakukan hal berikut:
-
Instal Java dan Maven jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Lengkapi prasyarat yang diperlukan di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
-
Susun aplikasi dengan perintah berikut:
mvn package -Dflink.version=1.15.3
Kompilasi aplikasi membuat JAR file aplikasi (target/aws-kinesis-analytics-java-apps-1.0.jar
).
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, navigasikan ke folder kode, dan pilih Unggah. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. -
Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
-
Tinggalkan versi sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat Anda membuat Layanan Terkelola untuk Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda. Ganti <username> dengan nama pengguna Anda.{ "Sid": "S3", "Effect": "Allow", "Action": [ "s3:Abort*", "s3:DeleteObject*", "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ka-app-code-<username>", "arn:aws:s3:::ka-app-code-<username>/*" ] }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:*" ] }, { "Sid": "ListCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:%LOG_GROUP_PLACEHOLDER%:log-stream:*" ] }, { "Sid": "PutCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:%LOG_GROUP_PLACEHOLDER%:log-stream:%LOG_STREAM_PLACEHOLDER%" ] }
, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" },
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
code/aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Jalankan aplikasi
-
Pada MyApplicationhalaman, pilih Jalankan. Biarkan opsi Run without snapshot (Jalankan tanpa snapshot) dipilih, dan konfirmasikan tindakan.
-
Ketika aplikasi berjalan, refresh halaman. Konsol menunjukkan Grafik aplikasi.
Verifikasi output aplikasi
Di konsol Amazon S3, buka folder data di bucket S3 Anda.
Setelah beberapa menit, objek yang berisi data agregat dari aplikasi akan muncul.
catatan
Agregrasi diaktifkan secara default di Flink. Untuk menonaktifkannya, gunakan yang berikut ini:
sink.producer.aggregation-enabled' = 'false'
Opsional: Sesuaikan sumber dan wastafel
Di bagian ini, Anda menyesuaikan pengaturan pada objek sumber dan sink.
catatan
Setelah mengubah bagian kode yang dijelaskan di bagian berikut, lakukan hal berikut untuk memuat ulang kode aplikasi:
-
Ulangi langkah-langkah di bagian Kompilasi kode aplikasi untuk mengompilasi kode aplikasi yang diperbarui.
-
Ulangi langkah-langkah di bagian Unggah kode Java streaming Apache Flink untuk mengunggah kode aplikasi yang diperbarui.
-
Di halaman aplikasi di konsol, pilih Configure (Konfigurasikan), lalu pilih Update (Perbarui) untuk memuat ulang kode aplikasi yang diperbarui ke dalam aplikasi Anda.
Bagian ini berisi bagian-bagian berikut:
Konfigurasikan partisi data
Di bagian ini, Anda mengkonfigurasi nama folder yang dibuat sink file streaming di bucket S3. Anda melakukan ini dengan menambahkan pemberi tugas bucket ke sink file streaming.
Untuk menyesuaikan nama folder yang dibuat dalam bucket S3, lakukan hal berikut:
-
Tambahkan pernyataan impor berikut ke bagian depan file
S3StreamingSinkJob.java
:import org.apache.flink.streaming.api.functions.sink.filesystem.rollingpolicies.DefaultRollingPolicy; import org.apache.flink.streaming.api.functions.sink.filesystem.bucketassigners.DateTimeBucketAssigner;
-
Perbarui metode
createS3SinkFromStaticConfig()
dalam kode agar terlihat seperti berikut ini:private static StreamingFileSink<String> createS3SinkFromStaticConfig() { final StreamingFileSink<String> sink = StreamingFileSink .forRowFormat(new Path(s3SinkPath), new SimpleStringEncoder<String>("UTF-8"))
.withBucketAssigner(new DateTimeBucketAssigner("yyyy-MM-dd--HH")) .withRollingPolicy(DefaultRollingPolicy.create().build())
.build(); return sink; }
Contoh kode sebelumnya menggunakan DateTimeBucketAssigner
dengan format tanggal kustom untuk membuat folder dalam bucket S3. DateTimeBucketAssigner
menggunakan waktu sistem saat ini untuk membuat nama bucket. Jika Anda ingin membuat pendaftar bucket khusus untuk menyesuaikan nama folder yang dibuat lebih lanjut, Anda dapat membuat kelas yang mengimplementasikannya. BucketAssignergetBucketId
.
Implementasi kustom dari BucketAssigner
dapat menggunakan parameter Context
Konfigurasikan frekuensi baca
Di bagian ini, Anda mengonfigurasi frekuensi membaca pada aliran sumber.
Konsumen Aliran Kinesis membaca dari sumber aliran lima kali per detik secara default. Frekuensi ini akan menyebabkan masalah jika ada lebih dari satu klien yang membaca dari aliran, atau jika aplikasi perlu mencoba lagi pembacaan catatan. Anda dapat menghindari masalah ini dengan mengatur frekuensi baca konsumen.
Untuk mengatur frekuensi baca konsumen Kinesis, Anda menetapkan pengaturan SHARD_GETRECORDS_INTERVAL_MILLIS
.
Contoh kode berikut menetapkan pengaturan SHARD_GETRECORDS_INTERVAL_MILLIS
ke satu detik:
kinesisConsumerConfig.setProperty(ConsumerConfigConstants.SHARD_GETRECORDS_INTERVAL_MILLIS, "1000");
Konfigurasikan buffering tulis
Di bagian ini, Anda mengonfigurasi frekuensi tulis dan pengaturan sink lainnya.
Secara default, aplikasi menulis ke bucket tujuan setiap menit. Anda dapat mengubah interval ini dan pengaturan lainnya dengan mengonfigurasi objek DefaultRollingPolicy
.
catatan
Sink file streaming Apache Flink menulis ke bucket output setiap kali aplikasi membuat titik pemeriksaan. Aplikasi ini membuat titik pemeriksaan setiap menit secara default. Untuk meningkatkan interval tulis sink S3, Anda juga harus meningkatkan interval titik pemeriksaan.
Untuk mengonfigurasi objek DefaultRollingPolicy
, lakukan hal berikut:
-
Tingkatkan pengaturan
CheckpointInterval
aplikasi. Input berikut untuk UpdateApplicationtindakan menetapkan interval pos pemeriksaan menjadi 10 menit:{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "ConfigurationTypeUpdate" : "CUSTOM", "CheckpointIntervalUpdate": 600000 } } }, "ApplicationName": "MyApplication", "CurrentApplicationVersionId":
5
}Untuk menggunakan kode sebelumnya, tentukan versi aplikasi saat ini. Anda dapat mengambil versi aplikasi dengan menggunakan ListApplicationstindakan.
-
Tambahkan pernyataan impor berikut ke bagian depan file
S3StreamingSinkJob.java
:import java.util.concurrent.TimeUnit;
-
Perbarui metode
createS3SinkFromStaticConfig
dalam fileS3StreamingSinkJob.java
agar terlihat seperti berikut ini:private static StreamingFileSink<String> createS3SinkFromStaticConfig() { final StreamingFileSink<String> sink = StreamingFileSink .forRowFormat(new Path(s3SinkPath), new SimpleStringEncoder<String>("UTF-8"))
.withBucketAssigner(new DateTimeBucketAssigner("yyyy-MM-dd--HH")) .withRollingPolicy( DefaultRollingPolicy.create() .withRolloverInterval(TimeUnit.MINUTES.toMillis(8)) .withInactivityInterval(TimeUnit.MINUTES.toMillis(5)) .withMaxPartSize(1024 * 1024 * 1024) .build())
.build(); return sink; }Contoh kode sebelumnya menetapkan frekuensi tulis ke bucket Amazon S3 ke 8 menit.
Untuk informasi selengkapnya tentang sink file streaming Apache Flink, lihat Format yang Dienkode Baris
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang Anda buat di tutorial Amazon S3.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Di panel Managed Service for Apache Flink, pilih. MyApplication
-
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
-
Di panel Kinesis Data Streams, pilih. ExampleInputStream
-
Pada ExampleInputStreamhalaman, pilih Hapus Kinesis Stream dan kemudian konfirmasikan penghapusan.
Hapus objek dan bucket Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pilih ka-app-code -
<username>
ember. -
Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di bilah navigasi, pilih Policies (Kebijakan).
-
Di kontrol filter, masukkan kinesis.
-
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
-
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
-
Di bilah navigasi, pilih Roles (Peran).
-
Pilih peran kinesis-analytics- -us-west-2. MyApplication
-
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di bilah navigasi, pilih Logs.
-
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
-
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Tutorial: Menggunakan Layanan Terkelola untuk aplikasi Apache Flink untuk mereplikasi data dari satu topik dalam MSK cluster ke yang lain dalam VPC
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Tutorial berikut menunjukkan cara membuat Amazon VPC dengan MSK cluster Amazon dan dua topik, dan cara membuat Layanan Terkelola untuk aplikasi Apache Flink yang membaca dari satu MSK topik Amazon dan menulis ke yang lain.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Tutorial ini berisi bagian-bagian berikut:
Buat Amazon VPC dengan MSK cluster Amazon
Untuk membuat sampel VPC dan MSK klaster Amazon untuk mengakses dari aplikasi Managed Service for Apache Flink, ikuti tutorial Memulai Menggunakan Amazon MSK.
Saat menyelesaikan tutorial, perhatikan hal berikut:
Pada Langkah 3: Buat Topik, ulangi
kafka-topics.sh --create
perintah untuk membuat topik tujuan bernamaAWSKafkaTutorialTopicDestination
:bin/kafka-topics.sh --create --zookeeper
ZooKeeperConnectionString
--replication-factor 3 --partitions 1 --topic AWS KafkaTutorialTopicDestinationCatat daftar server bootstrap untuk klaster Anda. Anda bisa mendapatkan daftar server bootstrap dengan perintah berikut (ganti
ClusterArn
dengan ARN MSK cluster Anda):aws kafka get-bootstrap-brokers --region us-west-2 --cluster-arn
ClusterArn
{... "BootstrapBrokerStringTls": "b-2.awskafkatutorialcluste.t79r6y.c4.kafka.us-west-2.amazonaws.com:9094,b-1.awskafkatutorialcluste.t79r6y.c4.kafka.us-west-2.amazonaws.com:9094,b-3.awskafkatutorialcluste.t79r6y.c4.kafka.us-west-2.amazonaws.com:9094" }Saat mengikuti langkah-langkah dalam tutorial, pastikan untuk menggunakan AWS Wilayah yang dipilih dalam kode, perintah, dan entri konsol Anda.
Buat kode aplikasi
Di bagian ini, Anda akan mengunduh dan mengkompilasi JAR file aplikasi. Kami merekomendasikan menggunakan Java 11.
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Kode aplikasi terletak di file
amazon-kinesis-data-analytics-java-examples/KafkaConnectors/KafkaGettingStartedJob.java
. Anda dapat memeriksa kode untuk membiasakan diri dengan struktur Layanan Terkelola untuk kode aplikasi Apache Flink.Gunakan alat Maven baris perintah atau lingkungan pengembangan pilihan Anda untuk membuat file. JAR Untuk mengkompilasi JAR file menggunakan alat Maven baris perintah, masukkan yang berikut ini:
mvn package -Dflink.version=1.15.3
Jika berhasil membangun, file berikut dibuat:
target/KafkaGettingStartedJob-1.0.jar
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11. Jika Anda menggunakan lingkungan pengembangan,
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
catatan
Jika Anda menghapus bucket Amazon S3 dari tutorial Memulai, ikuti lagi langkah Unggah JAR file kode aplikasi.
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
KafkaGettingStartedJob-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink. https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink versi 1.15.2.
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
KafkaGettingStartedJob-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
.catatan
Saat Anda menentukan sumber daya aplikasi menggunakan konsol (seperti CloudWatch Log atau AmazonVPC), konsol akan mengubah peran eksekusi aplikasi Anda untuk memberikan izin untuk mengakses sumber daya tersebut.
-
Di bawah Properties (Properti), pilih Add Group (Tambahkan Grup). Masukkan properti berikut:
ID Grup Kunci Nilai KafkaSource
topik AWS KafkaTutorialTopic KafkaSource
bootstrap.servers The bootstrap server list you saved previously
KafkaSource
security.protocol SSL KafkaSource
ssl.truststore.location /usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts KafkaSource
ssl.truststore.password changeit catatan
ssl.truststore.password untuk sertifikat default adalah "changeit"; Anda tidak perlu mengubah nilai ini jika Anda menggunakan sertifikat default.
Pilih Add Group (Tambahkan Grup) lagi. Masukkan properti berikut:
ID Grup Kunci Nilai KafkaSink
topik AWS KafkaTutorialTopicDestination KafkaSink
bootstrap.servers The bootstrap server list you saved previously
KafkaSink
security.protocol SSL KafkaSink
ssl.truststore.location /usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts KafkaSink
ssl.truststore.password changeit KafkaSink
transaction.timeout.ms 1000 Kode aplikasi membaca properti aplikasi di atas untuk mengonfigurasi sumber dan sink yang digunakan untuk berinteraksi dengan MSK cluster Anda VPC dan Amazon. Untuk informasi selengkapnya tentang penggunaan runtime, lihat Menggunakan properti runtime di Managed Service untuk Apache Flink.
-
Di bawah Snapshots, pilih Disable (Nonaktifkan). Tindakan ini akan memudahkan pembaruan aplikasi tanpa memuat data status aplikasi yang tidak valid.
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Di bagian Virtual Private Cloud (VPC), pilih VPC yang akan dikaitkan dengan aplikasi Anda. Pilih subnet dan grup keamanan yang terkait dengan Anda VPC yang ingin digunakan aplikasi untuk mengakses VPC sumber daya.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi.
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Uji aplikasi
Di bagian ini, Anda menulis catatan ke topik sumber. Aplikasi membaca catatan dari topik sumber dan menuliskannya ke topik tujuan. Anda memverifikasi aplikasi bekerja dengan menulis catatan ke topik sumber dan membaca catatan dari topik tujuan.
Untuk menulis dan membaca catatan dari topik, ikuti langkah-langkah di Langkah 6: Menghasilkan dan Mengkonsumsi Data dalam Memulai Menggunakan Amazon MSK tutorial.
Untuk membaca dari topik tujuan, gunakan nama topik tujuan bukan topik sumber dalam koneksi kedua Anda ke kluster:
bin/kafka-console-consumer.sh --bootstrap-server
BootstrapBrokerString
--consumer.config client.properties --topic AWS KafkaTutorialTopicDestination --from-beginning
Jika tidak ada catatan yang muncul dalam topik tujuan, lihat bagian Tidak dapat mengakses sumber daya di VPC di topik Memecahkan Masalah Layanan Terkelola untuk Apache Flink.
Contoh: Gunakan EFO konsumen dengan aliran data Kinesis
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink yang membaca dari aliran data Kinesis menggunakan konsumen Enhanced Fan-Out (). EFO Jika konsumen Kinesis menggunakanEFO, layanan Kinesis Data Streams memberikan bandwidth khusus sendiri, daripada memiliki konsumen berbagi bandwidth tetap dari aliran dengan konsumen lain yang membaca dari aliran.
Untuk informasi lebih lanjut tentang penggunaan EFO dengan konsumen Kinesis, lihat FLIP-128: Enhanced Fan Out untuk Konsumen Kinesis
Aplikasi yang Anda buat dalam contoh ini menggunakan AWS Kinesis connector (flink-connector-kinesis) 1.15.3.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Dua Kinesis data streams (
ExampleInputStream
danExampleOutputStream
)Bucket Amazon S3 untuk menyimpan kode aplikasi (
ka-app-code-
)<username>
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
danExampleOutputStream
Anda.Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/EfoConsumer
tersebut.
Kode aplikasi terletak di file EfoApplication.java
. Perhatikan hal tentang kode aplikasi berikut:
Anda mengaktifkan EFO konsumen dengan menetapkan parameter berikut pada konsumen Kinesis:
RECORD_ PUBLISHER _TYPE: Setel parameter ini EFOagar aplikasi Anda dapat menggunakan EFO konsumen untuk mengakses data Kinesis Data Stream.
EFO_ CONSUMER _NAME: Setel parameter ini ke nilai string yang unik di antara konsumen aliran ini. Menggunakan kembali nama konsumen di Kinesis Data Stream yang sama akan menyebabkan konsumen sebelumnya yang menggunakan nama tersebut dihentikan.
Contoh kode berikut menunjukkan cara menetapkan nilai ke properti konfigurasi konsumen untuk menggunakan EFO konsumen untuk membaca dari aliran sumber:
consumerConfig.putIfAbsent(RECORD_PUBLISHER_TYPE, "EFO"); consumerConfig.putIfAbsent(EFO_CONSUMER_NAME, "basic-efo-flink-app");
Kompilasi kode aplikasi
Untuk mengompilasi aplikasi, lakukan hal berikut:
Instal Java dan Maven jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Lengkapi prasyarat yang diperlukan di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
Susun aplikasi dengan perintah berikut:
mvn package -Dflink.version=1.15.3
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Kompilasi aplikasi membuat JAR file aplikasi (target/aws-kinesis-analytics-java-apps-1.0.jar
).
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
aws-kinesis-analytics-java-apps-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.15.2.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.catatan
Izin ini memberikan aplikasi kemampuan untuk mengakses EFO konsumen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "logs:DescribeLogGroups", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*", "arn:aws:s3:::ka-app-code-<username>
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": "logs:DescribeLogStreams", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "AllStreams", "Effect": "Allow", "Action": [ "kinesis:ListShards", "kinesis:ListStreamConsumers", "kinesis:DescribeStreamSummary" ], "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/*" }, { "Sid": "Stream", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:RegisterStreamConsumer", "kinesis:DeregisterStreamConsumer" ], "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }, { "Sid": "Consumer", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamConsumer", "kinesis:SubscribeToShard" ], "Resource": [ "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream/consumer/my-efo-flink-app", "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream/consumer/my-efo-flink-app:*" ] }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
aws-kinesis-analytics-java-apps-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Create group (Buat grup).
-
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai ConsumerConfigProperties
flink.stream.recordpublisher
EFO
ConsumerConfigProperties
flink.stream.efo.consumername
basic-efo-flink-app
ConsumerConfigProperties
INPUT_STREAM
ExampleInputStream
ConsumerConfigProperties
flink.inputstream.initpos
LATEST
ConsumerConfigProperties
AWS_REGION
us-west-2
-
Di bawah Properties (Properti), pilih Create group (Buat grup).
-
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai ProducerConfigProperties
OUTPUT_STREAM
ExampleOutputStream
ProducerConfigProperties
AWS_REGION
us-west-2
ProducerConfigProperties
AggregationEnabled
false
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Anda dapat memeriksa metrik Managed Service for Apache Flink di CloudWatch konsol untuk memverifikasi bahwa aplikasi berfungsi.
Anda juga dapat memeriksa konsol Kinesis Data Streams, di tab fan-out yang Ditingkatkan aliran data, untuk mengetahui nama konsumen Anda (). basic-efo-flink-app
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Jendela efo.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus Objek dan Bucket Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Menulis ke Firehose
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Dalam latihan ini, Anda membuat Layanan Terkelola untuk aplikasi Apache Flink yang memiliki aliran data Kinesis sebagai sumber dan aliran Firehose sebagai wastafel. Dengan menggunakan sink, Anda dapat memverifikasi output aplikasi di bucket Amazon S3.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Bagian ini berisi langkah-langkah berikut.
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Kinesis data stream (
ExampleInputStream
)Aliran Firehose dimana aplikasi menulis output ke ()
ExampleDeliveryStream
.Bucket Amazon S3 untuk menyimpan kode aplikasi (
ka-app-code-
)<username>
Anda dapat membuat aliran Kinesis, bucket Amazon S3, dan aliran Firehose menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
Anda.Membuat Aliran Pengiriman Amazon Kinesis Data Firehose di Panduan Pengembang Amazon Data Firehose. Beri nama aliran Firehose Anda.
ExampleDeliveryStream
Saat Anda membuat aliran Firehose, buat juga tujuan dan peran S3 Firehose stream. IAMBagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode Java streaming Apache Flink
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/FirehoseSink
tersebut.
Kode aplikasi terletak di file FirehoseSinkStreamingJob.java
. Perhatikan hal tentang kode aplikasi berikut:
Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties));
Aplikasi ini menggunakan wastafel Firehose untuk menulis data ke aliran Firehose. Cuplikan berikut membuat wastafel Firehose:
private static KinesisFirehoseSink<String> createFirehoseSinkFromStaticConfig() { Properties sinkProperties = new Properties(); sinkProperties.setProperty(AWS_REGION, region); return KinesisFirehoseSink.<String>builder() .setFirehoseClientProperties(sinkProperties) .setSerializationSchema(new SimpleStringSchema()) .setDeliveryStreamName(outputDeliveryStreamName) .build(); }
Kompilasi kode aplikasi
Untuk mengompilasi aplikasi, lakukan hal berikut:
Instal Java dan Maven jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Lengkapi prasyarat yang diperlukan di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
Untuk menggunakan konektor Kinesis untuk aplikasi berikut, Anda perlu mengunduh, membangun, dan menginstal Apache Maven. Untuk informasi selengkapnya, lihat Menggunakan konektor Apache Flink Kinesis Streams dengan versi Apache Flink sebelumnya.
Susun aplikasi dengan perintah berikut:
mvn package -Dflink.version=1.15.3
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Kompilasi aplikasi membuat JAR file aplikasi (target/aws-kinesis-analytics-java-apps-1.0.jar
).
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
Untuk mengunggah kode aplikasi
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di konsol, pilih ka-app-code -
<username>
bucket, lalu pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
java-getting-started-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Anda dapat membuat dan menjalankan Layanan Terkelola untuk aplikasi Apache Flink menggunakan konsol atau aplikasi. AWS CLI
catatan
Saat Anda membuat aplikasi menggunakan konsol, resource AWS Identity and Access Management (IAM) dan Amazon CloudWatch Logs dibuat untuk Anda. Saat Anda membuat aplikasi menggunakan AWS CLI, Anda membuat sumber daya ini secara terpisah.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My java test app
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.15.2.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis dan aliran Firehose.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti semua contoh akun IDs sampel (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/java-getting-started-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteDeliveryStream", "Effect": "Allow", "Action": "firehose:*", "Resource": "arn:aws:firehose:us-west-2:012345678901
:deliverystream/ExampleDeliveryStream" }
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
java-getting-started-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Hentikan aplikasi
Pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Memperbarui aplikasi
Menggunakan konsol, Anda dapat memperbarui pengaturan aplikasi seperti properti aplikasi, pengaturan pemantauan, dan lokasi atau nama file aplikasiJAR.
Pada MyApplicationhalaman, pilih Konfigurasi. Perbarui pengaturan aplikasi dan pilih Update (Perbarui).
catatan
Untuk memperbarui kode aplikasi di konsol, Anda harus mengubah nama objekJAR, menggunakan bucket S3 yang berbeda, atau menggunakan AWS CLI seperti yang dijelaskan di Perbarui kode aplikasi bagian. Jika nama file atau bucket tidak berubah, kode aplikasi tidak dimuat ulang ketika Anda memilih Update (Perbarui) di halaman Konfigurasi.
Buat dan jalankan aplikasi (AWS CLI)
Di bagian ini, Anda menggunakan AWS CLI untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink.
Membuat kebijakan izin
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan read
di aliran sumber, dan lainnya yang memberikan izin untuk tindakan write
di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti username
dengan nama pengguna yang akan Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (
) dengan ID akun Anda.012345678901
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": ["arn:aws:s3:::ka-app-code-
username
", "arn:aws:s3:::ka-app-code-username
/*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteDeliveryStream", "Effect": "Allow", "Action": "firehose:*", "Resource": "arn:aws:firehose:us-west-2:012345678901
:deliverystream/ExampleDeliveryStream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
catatan
Untuk mengakses layanan Amazon lainnya, Anda dapat menggunakan AWS SDK for Java. Layanan Terkelola untuk Apache Flink secara otomatis menetapkan kredensional yang SDK diperlukan oleh IAM peran eksekusi layanan yang terkait dengan aplikasi Anda. Tidak ada langkah tambahan yang diperlukan.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda jika tidak memiliki izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran tersebut. Kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Dalam panel navigasi, pilih Roles (Peran), Create role (Buat Peran).
-
Di bawah Pilih tipe identitas tepercaya, pilih Layanan AWS . Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis. Di bawah Pilih kasus penggunaan Anda, pilih Analitik Kinesis.
Pilih Berikutnya: Izin.
-
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
-
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Berikutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran. -
Lampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi, Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Membuat kebijakan izin.
-
Di halaman Ringkasan, pilih tab Permissions (Izin).
-
Pilih Attach Policies (Lampirkan Kebijakan).
-
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya). -
Pilih AKReadSourceStreamWriteSinkStreamkebijakan, lalu pilih Lampirkan kebijakan.
-
Anda sekarang telah membuat peran eksekusi layanan yang akan digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat Layanan Terkelola untuk aplikasi Apache Flink
-
Simpan JSON kode berikut ke file bernama
create_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket dengan akhiran yang Anda pilih di Buat sumber daya yang bergantung bagian (ka-app-code-
.) Ganti ID akun sampel (<username>
012345678901
) dalam peran eksekusi layanan dengan ID akun Anda.{ "ApplicationName": "test", "ApplicationDescription": "my java test app", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::
012345678901
:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username
", "FileKey": "java-getting-started-1.0.jar" } }, "CodeContentType": "ZIPFILE" } } } } -
Jalankan tindakan
CreateApplication
dengan permintaan sebelumnya untuk membuat aplikasi:aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan tindakan StartApplication
untuk memulai aplikasi.
Untuk memulai aplikasi
-
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "test", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
-
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan tindakan StopApplication
untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
-
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "test" }
-
Jalankan tindakan
StopApplication
dengan permintaan berikut untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihatSiapkan pencatatan aplikasi di Layanan Terkelola untuk Apache Flink.
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplication
AWS CLI tindakan.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username
>) dengan akhiran yang Anda pilih di Buat sumber daya yang bergantung bagian.
{ "ApplicationName": "test", "CurrentApplicationVersionId":
1
, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-username
", "FileKeyUpdate": "java-getting-started-1.0.jar" } } } } }
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Memulai.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
Di panel Managed Service for Apache Flink, pilih. MyApplication
Pilih Configure (Konfigurasikan).
Di bagian Snapshots, pilih Disable (Nonaktifkan), lalu pilih Update (Perbarui).
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Hapus aliran Firehose Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Firehose, pilih. ExampleDeliveryStream
Di ExampleDeliveryStreamhalaman, pilih Hapus aliran Firehose dan kemudian konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Jika Anda membuat bucket Amazon S3 untuk tujuan aliran Firehose, hapus juga bucket tersebut.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Jika Anda membuat kebijakan baru untuk aliran Firehose, hapus kebijakan tersebut juga.
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Jika Anda membuat peran baru untuk aliran Firehose, hapus peran itu juga.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Baca dari aliran Kinesis di akun yang berbeda
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Contoh ini menunjukkan cara membuat Layanan Terkelola untuk aplikasi Apache Flink yang membaca data dari aliran Kinesis di akun yang berbeda. Dalam contoh ini, Anda akan menggunakan satu akun untuk sumber Kinesis stream, dan akun kedua untuk Managed Service untuk aplikasi Apache Flink dan tenggelam Kinesis stream.
Topik ini berisi bagian-bagian berikut:
Prasyarat
Dalam tutorial ini, Anda mengubah contoh Memulai untuk membaca data dari aliran Kinesis di akun yang berbeda. Selesaikan tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink sebelum melanjutkan.
Anda memerlukan dua AWS akun untuk menyelesaikan tutorial ini: satu untuk aliran sumber, dan satu untuk aplikasi dan aliran wastafel. Gunakan AWS akun yang Anda gunakan untuk tutorial Memulai untuk aplikasi dan sink stream. Gunakan akun AWS yang berbeda untuk aliran sumber.
Pengaturan
Anda akan mengakses dua AWS akun Anda dengan menggunakan profil bernama. Ubah AWS kredensi dan file konfigurasi Anda untuk menyertakan dua profil yang berisi wilayah dan informasi koneksi untuk dua akun Anda.
File kredensial contoh berikut berisi dua profil yang diberi nama, ka-source-stream-account-profile
dan ka-sink-stream-account-profile
. Gunakan akun yang Anda gunakan untuk tutorial Memulai untuk akun aliran sink.
[ka-source-stream-account-profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [ka-sink-stream-account-profile] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
File konfigurasi contoh berikut berisi profil bernama sama dengan informasi wilayah dan format output.
[profile ka-source-stream-account-profile] region=us-west-2 output=json [profile ka-sink-stream-account-profile] region=us-west-2 output=json
catatan
Tutorial ini tidak menggunakan ka-sink-stream-account-profile
. Ini termasuk sebagai contoh cara mengakses dua AWS akun berbeda menggunakan profil.
Untuk informasi selengkapnya tentang penggunaan profil bernama dengan AWS CLI, lihat Profil Bernama dalam AWS Command Line Interfacedokumentasi.
Buat aliran Kinesis sumber
Di bagian ini, Anda akan membuat aliran Kinesis di akun sumber.
Masukkan perintah berikut untuk membuat aliran Kinesis yang akan digunakan aplikasi untuk input. Perhatikan bahwa parameter --profile
menentukan profil akun yang akan digunakan.
$ aws kinesis create-stream \ --stream-name SourceAccountExampleInputStream \ --shard-count 1 \ --profile ka-source-stream-account-profile
Membuat dan memperbarui IAM peran dan kebijakan
Untuk mengizinkan akses objek di seluruh AWS akun, Anda membuat IAM peran dan kebijakan di akun sumber. Kemudian, Anda mengubah IAM kebijakan di akun sink. Untuk informasi tentang membuat IAM peran dan kebijakan, lihat topik berikut di Panduan AWS Identity and Access Management Pengguna:
Tenggelamkan peran dan kebijakan akun
Edit kebijakan
kinesis-analytics-service-MyApplication-us-west-2
dari tutorial Memulai. Kebijakan ini memungkinkan peran dalam akun sumber diasumsikan agar dapat membaca aliran sumber.catatan
Saat Anda menggunakan konsol untuk membuat aplikasi Anda, konsol membuat kebijakan yang disebut
kinesis-analytics-service-
, dan peran yang disebut<application name>
-<application region>
kinesisanalytics-
.<application name>
-<application region>
Tambahkan bagian yang disorot di bawah ini ke kebijakan. Ganti ID akun sampel (
SOURCE01234567
) dengan ID akun yang akan Anda gunakan untuk aliran sumber.{ "Version": "2012-10-17", "Statement": [
{ "Sid": "AssumeRoleInSourceAccount", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::SOURCE01234567:role/KA-Source-Stream-Role" },
{ "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-username
/aws-kinesis-analytics-java-apps-1.0.jar" ] }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:SINK012345678
:log-group:*" ] }, { "Sid": "ListCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:SINK012345678
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutCloudwatchLogs", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:SINK012345678
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] } ] }Buka
kinesis-analytics-MyApplication-us-west-2
peran, dan catat Nama Sumber Daya Amazon (ARN). Anda akan membutuhkannya di bagian selanjutnya. Perannya ARN terlihat seperti berikut ini.arn:aws:iam::
SINK012345678
:role/service-role/kinesis-analytics-MyApplication-us-west-2
Peran dan kebijakan akun sumber
Buat kebijakan di akun sumber yang disebut
KA-Source-Stream-Policy
. Gunakan yang berikut ini JSON untuk kebijakan. Ganti nomor akun sampel dengan nomor akun dari akun sumber.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadInputStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:us-west-2:
SOURCE123456784
:stream/SourceAccountExampleInputStream" } ] }Buat peran di akun sumber yang disebut
MF-Source-Stream-Role
. Lakukan hal berikut untuk membuat peran menggunakan kasus penggunaan Managed Flink:Di IAM Management Console, pilih Create Role.
Di halaman Buat Peran, pilih Layanan AWS . Dalam daftar layanan, pilih Kinesis.
Di bagian Pilih kasus penggunaan Anda, pilih Layanan Terkelola untuk Apache Flink.
Pilih Berikutnya: Izin.
Tambahkan kebijakan izin
KA-Source-Stream-Policy
yang Anda buat di langkah sebelumnya. Pilih Next:Tags.Pilih Next: Review (Selanjutnya: Tinjauan).
Beri nama peran
KA-Source-Stream-Role
. Aplikasi Anda akan menggunakan peran ini untuk mengakses aliran sumber.
Tambahkan akun
kinesis-analytics-MyApplication-us-west-2
ARN from the sink ke hubungan kepercayaanKA-Source-Stream-Role
peran di akun sumber:Buka
KA-Source-Stream-Role
di IAM konsol.Pilih tab Trust Relationships (Hubungan Kepercayaan).
Pilih Edit trust relationship (Edit Hubungan Kepercayaan).
Gunakan kode berikut untuk hubungan kepercayaan. Ganti ID akun sampel (
) dengan ID akun sink Anda.SINK012345678
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
:role/service-role/kinesis-analytics-MyApplication-us-west-2" }, "Action": "sts:AssumeRole" } ] }SINK012345678
Perbarui skrip Python
Di bagian ini, Anda memperbarui skrip Python yang menghasilkan data sampel untuk menggunakan profil akun sumber.
Perbarui skrip stock.py
dengan perubahan yang disorot berikut.
import json import boto3 import random import datetime
import os os.environ['AWS_PROFILE'] ='ka-source-stream-account-profile' os.environ['AWS_DEFAULT_REGION'] = 'us-west-2'
kinesis = boto3.client('kinesis') def getReferrer(): data = {} now = datetime.datetime.now() str_now = now.isoformat() data['event_time'] = str_now data['ticker'] = random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']) price = random.random() * 100 data['price'] = round(price, 2) return data while True: data = json.dumps(getReferrer()) print(data) kinesis.put_record( StreamName="SourceAccountExampleInputStream
", Data=data, PartitionKey="partitionkey")
Perbarui aplikasi Java
Di bagian ini, Anda memperbarui kode aplikasi Java untuk mengasumsikan peran akun sumber saat membaca dari aliran sumber.
Buat perubahan berikut ke file BasicStreamingJob.java
. Ganti contoh nomor akun sumber (SOURCE01234567
) dengan nomor akun sumber Anda.
package com.amazonaws.services.managed-flink; import com.amazonaws.services.managed-flink.runtime.KinesisAnalyticsRuntime; import org.apache.flink.api.common.serialization.SimpleStringSchema; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.connectors.kinesis.FlinkKinesisConsumer; import org.apache.flink.streaming.connectors.kinesis.FlinkKinesisProducer; import org.apache.flink.streaming.connectors.kinesis.config.ConsumerConfigConstants;
import org.apache.flink.streaming.connectors.kinesis.config.AWSConfigConstants;
import java.io.IOException; import java.util.Map; import java.util.Properties; /** * A basic Managed Service for Apache Flink for Java application with Kinesis data streams * as source and sink. */ public class BasicStreamingJob { private static final String region = "us-west-2"; private static final String inputStreamName ="SourceAccountExampleInputStream";
private static final String outputStreamName = ExampleOutputStream;private static final String roleArn = "arn:aws:iam::SOURCE01234567:role/KA-Source-Stream-Role"; private static final String roleSessionName = "ksassumedrolesession";
private static DataStream<String> createSourceFromStaticConfig(StreamExecutionEnvironment env) { Properties inputProperties = new Properties();inputProperties.setProperty(AWSConfigConstants.AWS_CREDENTIALS_PROVIDER, "ASSUME_ROLE"); inputProperties.setProperty(AWSConfigConstants.AWS_ROLE_ARN, roleArn); inputProperties.setProperty(AWSConfigConstants.AWS_ROLE_SESSION_NAME, roleSessionName);
inputProperties.setProperty(ConsumerConfigConstants.AWS_REGION, region); inputProperties.setProperty(ConsumerConfigConstants.STREAM_INITIAL_POSITION, "LATEST"); return env.addSource(new FlinkKinesisConsumer<>(inputStreamName, new SimpleStringSchema(), inputProperties)); } private static KinesisStreamsSink<String> createSinkFromStaticConfig() { Properties outputProperties = new Properties(); outputProperties.setProperty(AWSConfigConstants.AWS_REGION, region); return KinesisStreamsSink.<String>builder() .setKinesisClientProperties(outputProperties) .setSerializationSchema(new SimpleStringSchema()) .setStreamName(outputProperties.getProperty("OUTPUT_STREAM", "ExampleOutputStream")) .setPartitionKeyGenerator(element -> String.valueOf(element.hashCode())) .build(); } public static void main(String[] args) throws Exception { // set up the streaming execution environment final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStream<String> input = createSourceFromStaticConfig(env); input.addSink(createSinkFromStaticConfig()); env.execute("Flink Streaming Java API Skeleton"); } }
Membangun, mengunggah, dan menjalankan aplikasi
Lakukan hal berikut untuk memperbarui dan menjalankan aplikasi:
Bangun lagi aplikasi dengan menjalankan perintah berikut di direktori dengan file
pom.xml
.mvn package -Dflink.version=1.15.3
Hapus JAR file sebelumnya dari bucket Amazon Simple Storage Service (Amazon S3), lalu unggah file
aws-kinesis-analytics-java-apps-1.0.jar
baru ke bucket S3.Di halaman aplikasi di Managed Service for Apache Flink console, pilih Configure, Update untuk memuat ulang file aplikasi. JAR
Jalankan skrip
stock.py
untuk mengirim data ke aliran sumber.python stock.py
Aplikasi sekarang membaca data dari aliran Kinesis di akun lainnya.
Anda dapat memverifikasi bahwa aplikasi berfungsi dengan memeriksa metrik PutRecords.Bytes
dari aliran ExampleOutputStream
. Jika ada aktivitas dalam aliran output, aplikasi berfungsi dengan baik.
Tutorial: Menggunakan truststore khusus dengan Amazon MSK
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Sumber data saat ini APIs
Jika Anda menggunakan sumber data saat iniAPIs, aplikasi Anda dapat memanfaatkan utilitas Penyedia MSK Konfigurasi Amazon yang dijelaskan di sini.
... // define names of config providers: builder.setProperty("config.providers", "secretsmanager,s3import"); // provide implementation classes for each provider: builder.setProperty("config.providers.secretsmanager.class", "com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider"); builder.setProperty("config.providers.s3import.class", "com.amazonaws.kafka.config.providers.S3ImportConfigProvider"); String region = appProperties.get(Helpers.S3_BUCKET_REGION_KEY).toString(); String keystoreS3Bucket = appProperties.get(Helpers.KEYSTORE_S3_BUCKET_KEY).toString(); String keystoreS3Path = appProperties.get(Helpers.KEYSTORE_S3_PATH_KEY).toString(); String truststoreS3Bucket = appProperties.get(Helpers.TRUSTSTORE_S3_BUCKET_KEY).toString(); String truststoreS3Path = appProperties.get(Helpers.TRUSTSTORE_S3_PATH_KEY).toString(); String keystorePassSecret = appProperties.get(Helpers.KEYSTORE_PASS_SECRET_KEY).toString(); String keystorePassSecretField = appProperties.get(Helpers.KEYSTORE_PASS_SECRET_FIELD_KEY).toString(); // region, etc.. builder.setProperty("config.providers.s3import.param.region", region); // properties builder.setProperty("ssl.truststore.location", "${s3import:" + region + ":" + truststoreS3Bucket + "/" + truststoreS3Path + "}"); builder.setProperty("ssl.keystore.type", "PKCS12"); builder.setProperty("ssl.keystore.location", "${s3import:" + region + ":" + keystoreS3Bucket + "/" + keystoreS3Path + "}"); builder.setProperty("ssl.keystore.password", "${secretsmanager:" + keystorePassSecret + ":" + keystorePassSecretField + "}"); builder.setProperty("ssl.key.password", "${secretsmanager:" + keystorePassSecret + ":" + keystorePassSecretField + "}"); ...
Detail lebih lanjut dan panduan dapat ditemukan di sini.
Warisan SourceFunction APIs
Jika Anda menggunakan legacy SourceFunction APIs, aplikasi Anda akan menggunakan skema serialisasi dan deserialisasi khusus yang mengganti open
metode untuk memuat truststore kustom. Hal ini membuat truststore tersedia untuk aplikasi setelah aplikasi restart atau menggantikan thread.
Truststore kustom diambil dan disimpan menggunakan kode berikut:
public static void initializeKafkaTruststore() { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); URL inputUrl = classLoader.getResource("kafka.client.truststore.jks"); File dest = new File("/tmp/kafka.client.truststore.jks"); try { FileUtils.copyURLToFile(inputUrl, dest); } catch (Exception ex) { throw new FlinkRuntimeException("Failed to initialize Kakfa truststore", ex); } }
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink terlebih dulu.
Tutorial berikut menunjukkan cara menghubungkan dengan aman (enkripsi dalam perjalanan) ke Kafka Cluster yang menggunakan sertifikat server yang dikeluarkan oleh Certificate Authority (CA) kustom, pribadi, atau bahkan yang di-host sendiri.
Untuk menghubungkan Klien Kafka dengan aman TLS ke Kafka Cluster, Klien Kafka (seperti contoh aplikasi Flink) harus mempercayai rantai kepercayaan lengkap yang diberikan oleh sertifikat server Kafka Cluster (dari CA Penerbitan hingga CA Tingkat Root). Sebagai contoh untuk truststore kustom, kita akan menggunakan MSK cluster Amazon dengan Mutual TLS (MTLS) Authentication diaktifkan. Ini menyiratkan bahwa node MSK cluster menggunakan sertifikat server yang dikeluarkan oleh AWS Certificate Manager Private Certificate Authority (ACMPrivate CA) yang bersifat pribadi untuk akun dan Wilayah Anda dan oleh karena itu tidak dipercaya oleh truststore default Java Virtual Machine (JVM) yang menjalankan aplikasi Flink.
catatan
-
Keystore digunakan untuk menyimpan kunci pribadi dan sertifikat identitas aplikasi harus hadir ke server atau klien untuk verifikasi.
-
Truststore digunakan untuk menyimpan sertifikat dari Otoritas Bersertifikat (CA) yang memverifikasi sertifikat yang disajikan oleh server dalam suatu SSL koneksi.
Anda juga dapat menggunakan teknik dalam tutorial ini untuk interaksi antara Managed Service untuk aplikasi Apache Flink dan sumber Apache Kafka lainnya, seperti:
Cluster Apache Kafka khusus yang dihosting di ( AWS Amazon atau EC2Amazon
) EKS Kluster Kafka lokal yang diakses melalui atau AWS Direct Connect
VPN
Tutorial ini berisi bagian-bagian berikut:
Buat VPC dengan MSK cluster Amazon
Untuk membuat sampel VPC dan MSK klaster Amazon untuk mengakses dari aplikasi Managed Service for Apache Flink, ikuti tutorial Memulai Menggunakan Amazon MSK.
Saat menyelesaikan tutorial, juga lakukan hal berikut:
Pada Langkah 3: Buat Topik, ulangi
kafka-topics.sh --create
perintah untuk membuat topik tujuan bernamaAWS KafkaTutorialTopicDestination
:bin/kafka-topics.sh --create --bootstrap-server
ZooKeeperConnectionString
--replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopicDestinationcatatan
Jika perintah
kafka-topics.sh
menampilkanZooKeeperClientTimeoutException
, verifikasi bahwa grup keamanan klaster Kafka memiliki aturan inbound untuk mengizinkan semua lalu lintas dari alamat IP privat instans klien.Catat daftar server bootstrap untuk klaster Anda. Anda bisa mendapatkan daftar server bootstrap dengan perintah berikut (ganti
ClusterArn
dengan ARN MSK cluster Anda):aws kafka get-bootstrap-brokers --region us-west-2 --cluster-arn
ClusterArn
{... "BootstrapBrokerStringTls": "b-2.awskafkatutorialcluste.t79r6y.c4.kafka.us-west-2.amazonaws.com:9094,b-1.awskafkatutorialcluste.t79r6y.c4.kafka.us-west-2.amazonaws.com:9094,b-3.awskafkatutorialcluste.t79r6y.c4.kafka.us-west-2.amazonaws.com:9094" }Saat mengikuti langkah-langkah dalam tutorial ini dan tutorial prasyarat, pastikan untuk menggunakan AWS Wilayah yang Anda pilih dalam kode, perintah, dan entri konsol Anda.
Buat truststore kustom dan terapkan ke cluster Anda
Di bagian ini, Anda membuat otoritas sertifikat kustom (CA), menggunakannya untuk membuat truststore kustom, dan menerapkannya ke cluster AndaMSK.
Untuk membuat dan menerapkan truststore kustom Anda, ikuti tutorial Otentikasi Klien di Amazon Managed Streaming for Apache Kafka Developer Guide.
Buat kode aplikasi
Di bagian ini, Anda mengunduh dan mengkompilasi JAR file aplikasi.
Kode aplikasi Java untuk contoh ini tersedia dari GitHub. Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Kode aplikasi terletak di
amazon-kinesis-data-analytics-java-examples/CustomKeystore
. Anda dapat memeriksa kode untuk membiasakan diri dengan struktur Managed Service untuk kode Apache Flink.Gunakan alat Maven baris perintah atau lingkungan pengembangan pilihan Anda untuk membuat file. JAR Untuk mengkompilasi JAR file menggunakan alat Maven baris perintah, masukkan yang berikut ini:
mvn package -Dflink.version=1.15.3
Jika berhasil membangun, file berikut dibuat:
target/flink-app-1.0-SNAPSHOT.jar
catatan
Kode sumber yang disediakan bergantung pada pustaka dari Java 11.
Unggah kode Java streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di tutorial Tutorial: Mulai menggunakan Layanan Terkelola DataStream API di Apache Flink.
catatan
Jika Anda menghapus bucket Amazon S3 dari tutorial Memulai, ikuti lagi langkah Unggah JAR file kode aplikasi.
-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
flink-app-1.0-SNAPSHOT.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink versi 1.15.2.
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat Anda membuat Layanan Terkelola untuk Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
flink-app-1.0-SNAPSHOT.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
.catatan
Saat Anda menentukan sumber daya aplikasi menggunakan konsol (seperti log atau aVPC), konsol akan memodifikasi peran eksekusi aplikasi Anda untuk memberikan izin untuk mengakses sumber daya tersebut.
-
Di bawah Properties (Properti), pilih Add Group (Tambahkan Grup). Masukkan properti berikut:
ID Grup Kunci Nilai KafkaSource
topik AWS KafkaTutorialTopic KafkaSource
bootstrap.servers The bootstrap server list you saved previously
KafkaSource
security.protocol SSL KafkaSource
ssl.truststore.location /usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts KafkaSource
ssl.truststore.password changeit catatan
ssl.truststore.password untuk sertifikat default adalah "changeit"—Anda tidak perlu mengubah nilai ini jika menggunakan sertifikat default.
Pilih Add Group (Tambahkan Grup) lagi. Masukkan properti berikut:
ID Grup Kunci Nilai KafkaSink
topik AWS KafkaTutorialTopicDestination KafkaSink
bootstrap.servers The bootstrap server list you saved previously
KafkaSink
security.protocol SSL KafkaSink
ssl.truststore.location /usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts KafkaSink
ssl.truststore.password changeit KafkaSink
transaction.timeout.ms 1000 Kode aplikasi membaca properti aplikasi di atas untuk mengonfigurasi sumber dan sink yang digunakan untuk berinteraksi dengan MSK cluster Anda VPC dan Amazon. Untuk informasi selengkapnya tentang penggunaan runtime, lihat Menggunakan properti runtime di Managed Service untuk Apache Flink.
-
Di bawah Snapshots, pilih Disable (Nonaktifkan). Tindakan ini akan memudahkan pembaruan aplikasi tanpa memuat data status aplikasi yang tidak valid.
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Di bagian Virtual Private Cloud (VPC), pilih VPC yang akan dikaitkan dengan aplikasi Anda. Pilih subnet dan grup keamanan yang terkait dengan Anda VPC yang ingin digunakan aplikasi untuk mengakses VPC sumber daya.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi.
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Uji aplikasi
Di bagian ini, Anda menulis catatan ke topik sumber. Aplikasi membaca catatan dari topik sumber dan menuliskannya ke topik tujuan. Anda memverifikasi bahwa aplikasi berfungsi dengan menulis catatan ke topik sumber dan membaca catatan dari topik tujuan.
Untuk menulis dan membaca catatan dari topik, ikuti langkah-langkah di Langkah 6: Menghasilkan dan Mengkonsumsi Data dalam Memulai Menggunakan Amazon MSK tutorial.
Untuk membaca dari topik tujuan, gunakan nama topik tujuan bukan topik sumber dalam koneksi kedua Anda ke kluster:
bin/kafka-console-consumer.sh --bootstrap-server
BootstrapBrokerString
--consumer.config client.properties --topic AWS KafkaTutorialTopicDestination --from-beginning
Jika tidak ada catatan yang muncul dalam topik tujuan, lihat bagian Tidak dapat mengakses sumber daya di VPC di topik Memecahkan Masalah Layanan Terkelola untuk Apache Flink.
Contoh Python
Contoh berikut menunjukkan cara membuat aplikasi menggunakan Python dengan Apache Flink Table. API
Topik
Contoh: Membuat jendela jatuh di Python
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Dalam latihan ini, Anda membuat Layanan Terkelola Python untuk aplikasi Apache Flink yang mengumpulkan data menggunakan jendela tumbling.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Python di Managed Service untuk Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Dua Kinesis data streams (
ExampleInputStream
danExampleOutputStream
)Bucket Amazon S3 untuk menyimpan kode aplikasi (
ka-app-code-
)<username>
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
danExampleOutputStream
Anda.Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
catatan
Skrip Python di bagian ini menggunakan AWS CLI. Anda harus mengonfigurasi AWS CLI untuk menggunakan kredensi akun dan wilayah default Anda. Untuk mengkonfigurasi Anda AWS CLI, masukkan yang berikut ini:
aws configure
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Python untuk contoh ini tersedia dari. GitHub Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/python/TumblingWindow
tersebut.
Kode aplikasi terletak di file tumbling-windows.py
. Perhatikan hal tentang kode aplikasi berikut:
Aplikasi menggunakan sumber tabel Kinesis untuk membaca dari aliran sumber. Cuplikan berikut memanggil fungsi
create_table
untuk membuat sumber tabel Kinesis:table_env.execute_sql( create_input_table(input_table_name, input_stream, input_region, stream_initpos) )
create_table
Fungsi ini menggunakan SQL perintah untuk membuat tabel yang didukung oleh sumber streaming:def create_input_table(table_name, stream_name, region, stream_initpos): return """ CREATE TABLE {0} ( ticker VARCHAR(6), price DOUBLE, event_time TIMESTAMP(3), WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND ) PARTITIONED BY (ticker) WITH ( 'connector' = 'kinesis', 'stream' = '{1}', 'aws.region' = '{2}', 'scan.stream.initpos' = '{3}', 'format' = 'json', 'json.timestamp-format.standard' = 'ISO-8601' ) """.format(table_name, stream_name, region, stream_initpos)
Aplikasi menggunakan operator
Tumble
untuk menggabungkan catatan dalam jendela tumbling tertentu, dan mengembalikan catatan agregat sebagai objek tabel:tumbling_window_table = ( input_table.window( Tumble.over("10.seconds").on("event_time").alias("ten_second_window") ) .group_by("ticker, ten_second_window") .select("ticker, price.min as price, to_string(ten_second_window.end) as event_time")
Aplikasi ini menggunakan konektor Flink Kinesis, dari
flink-sql-connector-kinesis-1.15.2.jar
.
Kompres dan unggah kode Python streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
Gunakan aplikasi kompresi pilihan Anda untuk mengompresi file
tumbling-windows.py
danflink-sql-connector-kinesis-1.15.2.jar
. Beri nama arsipmyapp.zip
.-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
myapp.zip
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.15.2.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
myapp.zip
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan yang berikut ini:
ID Grup Kunci Nilai consumer.config.0
input.stream.name
ExampleInputStream
consumer.config.0
aws.region
us-west-2
consumer.config.0
scan.stream.initpos
LATEST
Pilih Simpan.
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi.
Masukkan yang berikut ini:
ID Grup Kunci Nilai producer.config.0
output.stream.name
ExampleOutputStream
producer.config.0
aws.region
us-west-2
producer.config.0
shard.count
1
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi. Untuk ID Grup, masukkan
kinesis.analytics.flink.run.options
. Grup properti khusus ini memberi tahu aplikasi Anda tempat untuk menemukan sumber daya kodenya. Untuk informasi selengkapnya, lihat Tentukan file kode Anda.Masukkan yang berikut ini:
ID Grup Kunci Nilai kinesis.analytics.flink.run.options
python
tumbling-windows.py
kinesis.analytics.flink.run.options
jarfile
flink-sql-connector-kinesis-1.15.2.jar
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "logs:DescribeLogGroups", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*", "arn:aws:s3:::ka-app-code-<username>
/myapp.zip" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": "logs:DescribeLogStreams", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Anda dapat memeriksa metrik Managed Service for Apache Flink di CloudWatch konsol untuk memverifikasi bahwa aplikasi berfungsi.
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Tumbling Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Membuat jendela geser dengan Python
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Python di Managed Service untuk Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Dua Kinesis data streams (
ExampleInputStream
danExampleOutputStream
)Bucket Amazon S3 untuk menyimpan kode aplikasi (
ka-app-code-
)<username>
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
danExampleOutputStream
Anda.Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
catatan
Skrip Python di bagian ini menggunakan AWS CLI. Anda harus mengonfigurasi AWS CLI untuk menggunakan kredensi akun dan wilayah default Anda. Untuk mengkonfigurasi Anda AWS CLI, masukkan yang berikut ini:
aws configure
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Python untuk contoh ini tersedia dari. GitHub Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/>amazon-kinesis-data-analytics-java-examples
Buka direktori
amazon-kinesis-data-analytics-java-examples/python/SlidingWindow
tersebut.
Kode aplikasi terletak di file sliding-windows.py
. Perhatikan hal tentang kode aplikasi berikut:
Aplikasi menggunakan sumber tabel Kinesis untuk membaca dari aliran sumber. Cuplikan berikut memanggil fungsi
create_input_table
untuk membuat sumber tabel Kinesis:table_env.execute_sql( create_input_table(input_table_name, input_stream, input_region, stream_initpos) )
create_input_table
Fungsi ini menggunakan SQL perintah untuk membuat tabel yang didukung oleh sumber streaming:def create_input_table(table_name, stream_name, region, stream_initpos): return """ CREATE TABLE {0} ( ticker VARCHAR(6), price DOUBLE, event_time TIMESTAMP(3), WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND ) PARTITIONED BY (ticker) WITH ( 'connector' = 'kinesis', 'stream' = '{1}', 'aws.region' = '{2}', 'scan.stream.initpos' = '{3}', 'format' = 'json', 'json.timestamp-format.standard' = 'ISO-8601' ) """.format(table_name, stream_name, region, stream_initpos) }
Aplikasi menggunakan operator
Slide
untuk menggabungkan catatan dalam jendela geser tertentu, dan mengembalikan catatan agregat sebagai objek tabel:sliding_window_table = ( input_table .window( Slide.over("10.seconds") .every("5.seconds") .on("event_time") .alias("ten_second_window") ) .group_by("ticker, ten_second_window") .select("ticker, price.min as price, to_string(ten_second_window.end) as event_time") )
Aplikasi ini menggunakan konektor Kinesis Flink, dari file -1.15.2.jar. flink-sql-connector-kinesis
Kompres dan unggah kode Python streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
Bagian ini menjelaskan cara mengemas aplikasi Python Anda.
Gunakan aplikasi kompresi pilihan Anda untuk mengompresi file
sliding-windows.py
danflink-sql-connector-kinesis-1.15.2.jar
. Beri nama arsipmyapp.zip
.-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
myapp.zip
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.15.2.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
myapp.zip
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai consumer.config.0
input.stream.name
ExampleInputStream
consumer.config.0
aws.region
us-west-2
consumer.config.0
scan.stream.initpos
LATEST
Pilih Simpan.
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi.
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai producer.config.0
output.stream.name
ExampleOutputStream
producer.config.0
aws.region
us-west-2
producer.config.0
shard.count
1
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi. Untuk ID Grup, masukkan
kinesis.analytics.flink.run.options
. Grup properti khusus ini memberi tahu aplikasi Anda tempat untuk menemukan sumber daya kodenya. Untuk informasi selengkapnya, lihat Tentukan file kode Anda.Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai kinesis.analytics.flink.run.options
python
sliding-windows.py
kinesis.analytics.flink.run.options
jarfile
flink-sql-connector-kinesis_1.15.2.jar
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "logs:DescribeLogGroups", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*", "arn:aws:s3:::ka-app-code-<username>
/myapp.zip" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": "logs:DescribeLogStreams", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" }
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Anda dapat memeriksa metrik Managed Service for Apache Flink di CloudWatch konsol untuk memverifikasi bahwa aplikasi berfungsi.
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Sliding Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Kirim data streaming ke Amazon S3 dengan Python
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
Dalam latihan ini, Anda membuat Layanan Terkelola Python untuk aplikasi Apache Flink yang mengalirkan data ke wastafel Amazon Simple Storage Service.
catatan
Untuk menyiapkan prasyarat yang diperlukan untuk latihan ini, selesaikan latihan Tutorial: Mulai menggunakan Python di Managed Service untuk Apache Flink terlebih dulu.
Topik ini berisi bagian-bagian berikut:
Buat sumber daya yang bergantung
Sebelum Anda membuat Layanan Terkelola untuk aplikasi Apache Flink untuk latihan ini, Anda membuat sumber daya dependen berikut:
Kinesis data stream (
ExampleInputStream
)Bucket Amazon S3 untuk menyimpan kode dan output aplikasi (
ka-app-code-
)<username>
catatan
Layanan Terkelola untuk Apache Flink tidak dapat menulis data ke Amazon S3 dengan enkripsi sisi server diaktifkan pada Layanan Terkelola untuk Apache Flink.
Anda dapat membuat aliran Kinesis dan bucket Amazon S3 menggunakan konsol. Untuk petunjuk membuat sumber daya ini, lihat topik berikut:
Membuat dan Memperbarui Aliran Data di Panduan Developer Amazon Kinesis Data Streams. Beri nama aliran data
ExampleInputStream
Anda.Bagaimana Cara Membuat Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Beri bucket Amazon S3 nama yang unik secara global dengan menambahkan nama login Anda, seperti
ka-app-code-
.<username>
Tulis catatan sampel ke aliran input
Di bagian ini, Anda menggunakan script Python untuk menulis catatan sampel ke aliran untuk diproses aplikasi.
catatan
Bagian ini memerlukan AWS SDK for Python (Boto)
catatan
Skrip Python di bagian ini menggunakan AWS CLI. Anda harus mengonfigurasi AWS CLI untuk menggunakan kredensi akun dan wilayah default Anda. Untuk mengkonfigurasi Anda AWS CLI, masukkan yang berikut ini:
aws configure
-
Buat file bernama
stock.py
dengan konten berikut:import datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
-
Jalankan skrip
stock.py
.$ python stock.py
Biarkan skrip tetap berjalan saat menyelesaikan sisa tutorial.
Unduh dan periksa kode aplikasi
Kode aplikasi Python untuk contoh ini tersedia dari. GitHub Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/python/S3Sink
tersebut.
Kode aplikasi terletak di file streaming-file-sink.py
. Perhatikan hal tentang kode aplikasi berikut:
Aplikasi menggunakan sumber tabel Kinesis untuk membaca dari aliran sumber. Cuplikan berikut memanggil fungsi
create_source_table
untuk membuat sumber tabel Kinesis:table_env.execute_sql( create_source_table(input_table_name, input_stream, input_region, stream_initpos) )
create_source_table
Fungsi ini menggunakan SQL perintah untuk membuat tabel yang didukung oleh sumber streamingimport datetime import json import random import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return { 'event_time': datetime.datetime.now().isoformat(), 'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']), 'price': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey") if __name__ == '__main__': generate(STREAM_NAME, boto3.client('kinesis', region_name='us-west-2'))
Aplikasi menggunakan konektor
filesystem
untuk mengirim catatan ke bucket Amazon S3:def create_sink_table(table_name, bucket_name): return """ CREATE TABLE {0} ( ticker VARCHAR(6), price DOUBLE, event_time VARCHAR(64) ) PARTITIONED BY (ticker) WITH ( 'connector'='filesystem', 'path'='s3a://{1}/', 'format'='json', 'sink.partition-commit.policy.kind'='success-file', 'sink.partition-commit.delay' = '1 min' ) """.format(table_name, bucket_name)
Aplikasi ini menggunakan konektor Kinesis Flink, dari file -1.15.2.jar. flink-sql-connector-kinesis
Kompres dan unggah kode Python streaming Apache Flink
Di bagian ini, Anda mengunggah kode aplikasi ke bucket Amazon S3 yang Anda buat di bagian Buat sumber daya yang bergantung.
Gunakan aplikasi kompresi pilihan Anda untuk mengompres file
streaming-file-sink.py
dan flink-sql-connector-kinesis-1.15.2.jar. Beri nama arsip myapp.zip
.-
Di konsol Amazon S3, pilih - ka-app-code
<username>
bucket, dan pilih Upload. -
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
myapp.zip
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan Managed Service untuk aplikasi Apache Flink
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Runtime, pilih Apache Flink.
catatan
Managed Service untuk Apache Flink menggunakan Apache Flink versi 1.15.2.
Biarkan versi pulldown sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
myapp.zip
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai consumer.config.0
input.stream.name
ExampleInputStream
consumer.config.0
aws.region
us-west-2
consumer.config.0
scan.stream.initpos
LATEST
Pilih Simpan.
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi. Untuk ID Grup, masukkan
kinesis.analytics.flink.run.options
. Grup properti khusus ini memberi tahu aplikasi Anda tempat untuk menemukan sumber daya kodenya. Untuk informasi selengkapnya, lihat Tentukan file kode Anda.Masukkan properti dan nilai aplikasi berikut:
ID Grup Kunci Nilai kinesis.analytics.flink.run.options
python
streaming-file-sink.py
kinesis.analytics.flink.run.options
jarfile
S3Sink/lib/flink-sql-connector-kinesis-1.15.2.jar
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi. Untuk ID Grup, masukkan
sink.config.0
. Grup properti khusus ini memberi tahu aplikasi Anda tempat untuk menemukan sumber daya kodenya. Untuk informasi selengkapnya, lihat Tentukan file kode Anda.Masukkan properti dan nilai aplikasi berikut: (ganti
bucket-name
dengan nama sebenarnya dari ember Amazon S3 Anda.)ID Grup Kunci Nilai sink.config.0
output.bucket.name
bucket-name
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch logging, Managed Service for Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Aliran log ini digunakan untuk memantau aplikasi. Ini bukan aliran log yang sama dengan yang digunakan aplikasi untuk mengirim hasil.
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses aliran data Kinesis.
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "logs:DescribeLogGroups", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*", "arn:aws:s3:::ka-app-code-<username>
/myapp.zip" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": "logs:DescribeLogStreams", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" }, { "Sid": "ListCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:
] }012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteObjects", "Effect": "Allow", "Action": [ "s3:Abort*", "s3:DeleteObject*", "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ka-app-code-<username>", "arn:aws:s3:::ka-app-code-<username>/*" ] }
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Anda dapat memeriksa metrik Managed Service for Apache Flink di CloudWatch konsol untuk memverifikasi bahwa aplikasi berfungsi.
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Sliding Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Hapus objek dan bucket Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh scala
Contoh berikut menunjukkan cara membuat aplikasi menggunakan Scala dengan Apache Flink.
Topik
Contoh: Membuat jendela jatuh di Scala
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
catatan
Mulai dari versi 1.15 Flink gratis Scala. Aplikasi sekarang dapat menggunakan Java API dari versi Scala apa pun. Flink masih menggunakan Scala di beberapa komponen kunci secara internal tetapi tidak mengekspos Scala ke dalam classloader kode pengguna. Karena itu, pengguna perlu menambahkan dependensi Scala ke dalam arsip jar mereka.
Untuk informasi selengkapnya tentang perubahan Scala di Flink 1.15, lihat Scala Free
Dalam latihan ini, Anda akan membuat aplikasi streaming sederhana yang menggunakan Scala 3.2.0 dan Flink's Java. DataStream API Aplikasi membaca data dari aliran Kinesis, menggabungkannya menggunakan jendela geser dan menulis hasil ke output Kinesis stream.
catatan
Untuk mengatur prasyarat yang diperlukan untuk latihan ini, pertama-tama selesaikan latihan Memulai (Scala).
Topik ini berisi bagian-bagian berikut:
Unduh dan periksa kode aplikasi
Kode aplikasi Python untuk contoh ini tersedia dari. GitHub Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/scala/TumblingWindow
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
build.sbt
File berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink.BasicStreamingJob.scala
File berisi metode utama yang mendefinisikan fungsionalitas aplikasi.Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
private def createSource: FlinkKinesisConsumer[String] = { val applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties val inputProperties = applicationProperties.get("ConsumerConfigProperties") new FlinkKinesisConsumer[String](inputProperties.getProperty(streamNameKey, defaultInputStreamName), new SimpleStringSchema, inputProperties) }
Aplikasi ini juga menggunakan sink Kinesis untuk menulis ke dalam aliran hasil. Cuplikan berikut membuat sink Kinesis:
private def createSink: KinesisStreamsSink[String] = { val applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties val outputProperties = applicationProperties.get("ProducerConfigProperties") KinesisStreamsSink.builder[String] .setKinesisClientProperties(outputProperties) .setSerializationSchema(new SimpleStringSchema) .setStreamName(outputProperties.getProperty(streamNameKey, defaultOutputStreamName)) .setPartitionKeyGenerator((element: String) => String.valueOf(element.hashCode)) .build }
Aplikasi ini menggunakan operator jendela untuk menemukan jumlah nilai untuk setiap simbol saham selama 5 detik jatuh jendela. Kode berikut membuat operator dan mengirimkan data agregat ke sink Kinesis Data Streams baru:
environment.addSource(createSource) .map { value => val jsonNode = jsonParser.readValue(value, classOf[JsonNode]) new Tuple2[String, Int](jsonNode.get("ticker").toString, 1) } .returns(Types.TUPLE(Types.STRING, Types.INT)) .keyBy(v => v.f0) // Logically partition the stream for each ticker .window(TumblingProcessingTimeWindows.of(Time.seconds(10))) .sum(1) // Sum the number of tickers per partition .map { value => value.f0 + "," + value.f1.toString + "\n" } .sinkTo(createSink)
Aplikasi ini membuat konektor sumber dan wastafel untuk mengakses sumber daya eksternal menggunakan StreamExecutionEnvironment objek.
Aplikasi ini membuat konektor sumber dan wastafel menggunakan properti aplikasi dinamis. Properti aplikasi runtime dibaca untuk mengkonfigurasi konektor. Untuk informasi selengkapnya tentang properti runtime, lihat Properti Runtime.
Kompilasi dan unggah kode aplikasi
Di bagian ini, Anda mengkompilasi dan mengunggah kode aplikasi ke bucket Amazon S3.
Kompilasi Kode Aplikasi
Gunakan alat SBT
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengkompilasi dan mengemas kode Anda denganSBT:
sbt assembly
-
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/scala-3.2.0/tumbling-window-scala-1.0.jar
Unggah Kode Scala Streaming Apache Flink
Di bagian ini, Anda membuat bucket Amazon S3 dan mengunggah kode aplikasi Anda.
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih Buat ember
Masukkan
ka-app-code-<username>
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).Di opsi Konfigurasi, pertahankan pengaturan apa adanya, dan pilih Berikutnya.
Di Setel izin, pertahankan pengaturan apa adanya, dan pilih Berikutnya.
Pilih Buat bucket.
Pilih
ka-app-code-<username>
bucket, lalu pilih Unggah.-
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
tumbling-window-scala-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My Scala test app
. -
Untuk Runtime, pilih Apache Flink.
-
Tinggalkan versi sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
Gunakan prosedur berikut untuk mengonfigurasi aplikasi.
Untuk mengonfigurasi aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
tumbling-window-scala-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan yang berikut ini:
ID Grup Kunci Nilai ConsumerConfigProperties
input.stream.name
ExampleInputStream
ConsumerConfigProperties
aws.region
us-west-2
ConsumerConfigProperties
flink.stream.initpos
LATEST
Pilih Simpan.
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi.
Masukkan yang berikut ini:
ID Grup Kunci Nilai ProducerConfigProperties
output.stream.name
ExampleOutputStream
ProducerConfigProperties
aws.region
us-west-2
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses bucket Amazon S3.
Untuk mengedit IAM kebijakan untuk menambahkan izin bucket S3
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/tumbling-window-scala-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Hentikan aplikasi
Untuk menghentikan aplikasi, pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Buat dan jalankan aplikasi (CLI)
Di bagian ini, Anda menggunakan AWS Command Line Interface untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Gunakan AWS CLI perintah kinesisanalyticsv2 untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat kebijakan izin
catatan
Anda harus membuat kebijakan izin dan peran untuk aplikasi Anda. Jika Anda tidak membuat IAM sumber daya ini, aplikasi Anda tidak dapat mengakses data dan aliran lognya.
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan baca di aliran sumber, dan satu lagi yang memberikan izin untuk tindakan tulis di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti username
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (012345678901)
dengan ID akun Anda. Peran eksekusi MF-stream-rw-role
layanan harus disesuaikan dengan peran khusus pelanggan.
{ "ApplicationName": "tumbling_window", "ApplicationDescription": "Scala tumbling window application", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/
MF-stream-rw-role
", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username
", "FileKey": "tumbling-window-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di panel navigasi, pilih Peran dan kemudian Buat Peran.
Di bawah Pilih jenis identitas tepercaya, pilih AWS Layanan
Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis.
Di bawah Pilih kasus penggunaan Anda, pilih Layanan Terkelola untuk Apache Flink.
Pilih Berikutnya: Izin.
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Selanjutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran tersebutLampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Buat Kebijakan Izin.
Di halaman Ringkasan, pilih tab Permissions (Izin).
Pilih Attach Policies (Lampirkan Kebijakan).
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya).Pilih
AKReadSourceStreamWriteSinkStream
kebijakan, lalu pilih Lampirkan kebijakan.
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat aplikasi
Simpan JSON kode berikut ke file bernamacreate_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (nama pengguna) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (012345678901) di peran eksekusi layanan dengan ID akun Anda. ServiceExecutionRole
Harus menyertakan peran IAM pengguna yang Anda buat di bagian sebelumnya.
"ApplicationName": "tumbling_window", "ApplicationDescription": "Scala getting started application", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-
username
", "FileKey": "tumbling-window-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Jalankan CreateApplicationdengan permintaan berikut untuk membuat aplikasi:
aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan StartApplicationtindakan untuk memulai aplikasi.
Untuk memulai aplikasi
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "tumbling_window", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan StopApplicationtindakan untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "tumbling_window" }
Jalankan
StopApplication
tindakan dengan permintaan sebelumnya untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihat Menyiapkan Pencatatan Aplikasi.
Perbarui properti lingkungan
Di bagian ini, Anda menggunakan UpdateApplicationtindakan untuk mengubah properti lingkungan untuk aplikasi tanpa mengkompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "tumbling_window", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } } }
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplicationCLItindakan.
catatan
Untuk memuat versi baru kode aplikasi dengan nama file yang sama, Anda harus menentukan versi objek baru. Untuk informasi selengkapnya tentang menggunakan versi objek Amazon S3, lihat Mengaktifkan dan Menonaktifkan Versioning.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama, dan versi objek baru. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>) dengan akhiran yang Anda pilih di bagian. Buat sumber daya yang bergantung
{ "ApplicationName": "tumbling_window", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-
username
", "FileKeyUpdate": "tumbling-window-scala-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU" } } } } }
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Tumbling Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Membuat jendela geser di Scala
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
catatan
Mulai dari versi 1.15 Flink gratis Scala. Aplikasi sekarang dapat menggunakan Java API dari versi Scala apa pun. Flink masih menggunakan Scala di beberapa komponen kunci secara internal tetapi tidak mengekspos Scala ke dalam classloader kode pengguna. Karena itu, pengguna perlu menambahkan dependensi Scala ke dalam arsip jar mereka.
Untuk informasi selengkapnya tentang perubahan Scala di Flink 1.15, lihat Scala Free
Dalam latihan ini, Anda akan membuat aplikasi streaming sederhana yang menggunakan Scala 3.2.0 dan Flink's Java. DataStream API Aplikasi membaca data dari aliran Kinesis, menggabungkannya menggunakan jendela geser dan menulis hasil ke output Kinesis stream.
catatan
Untuk mengatur prasyarat yang diperlukan untuk latihan ini, pertama-tama selesaikan latihan Memulai (Scala).
Topik ini berisi bagian-bagian berikut:
Unduh dan periksa kode aplikasi
Kode aplikasi Python untuk contoh ini tersedia dari. GitHub Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/scala/SlidingWindow
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
build.sbt
File berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink.BasicStreamingJob.scala
File berisi metode utama yang mendefinisikan fungsionalitas aplikasi.Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
private def createSource: FlinkKinesisConsumer[String] = { val applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties val inputProperties = applicationProperties.get("ConsumerConfigProperties") new FlinkKinesisConsumer[String](inputProperties.getProperty(streamNameKey, defaultInputStreamName), new SimpleStringSchema, inputProperties) }
Aplikasi ini juga menggunakan sink Kinesis untuk menulis ke dalam aliran hasil. Cuplikan berikut membuat sink Kinesis:
private def createSink: KinesisStreamsSink[String] = { val applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties val outputProperties = applicationProperties.get("ProducerConfigProperties") KinesisStreamsSink.builder[String] .setKinesisClientProperties(outputProperties) .setSerializationSchema(new SimpleStringSchema) .setStreamName(outputProperties.getProperty(streamNameKey, defaultOutputStreamName)) .setPartitionKeyGenerator((element: String) => String.valueOf(element.hashCode)) .build }
Aplikasi ini menggunakan operator jendela untuk menemukan jumlah nilai untuk setiap simbol saham selama jendela 10 detik yang meluncur 5 detik. Kode berikut membuat operator dan mengirimkan data agregat ke sink Kinesis Data Streams baru:
environment.addSource(createSource) .map { value => val jsonNode = jsonParser.readValue(value, classOf[JsonNode]) new Tuple2[String, Double](jsonNode.get("ticker").toString, jsonNode.get("price").asDouble) } .returns(Types.TUPLE(Types.STRING, Types.DOUBLE)) .keyBy(v => v.f0) // Logically partition the stream for each word .window(SlidingProcessingTimeWindows.of(Time.seconds(10), Time.seconds(5))) .min(1) // Calculate minimum price per ticker over the window .map { value => value.f0 + String.format(",%.2f", value.f1) + "\n" } .sinkTo(createSink)
Aplikasi ini membuat konektor sumber dan wastafel untuk mengakses sumber daya eksternal menggunakan StreamExecutionEnvironment objek.
Aplikasi ini membuat konektor sumber dan wastafel menggunakan properti aplikasi dinamis. Properti aplikasi runtime dibaca untuk mengkonfigurasi konektor. Untuk informasi selengkapnya tentang properti runtime, lihat Properti Runtime.
Kompilasi dan unggah kode aplikasi
Di bagian ini, Anda mengkompilasi dan mengunggah kode aplikasi ke bucket Amazon S3.
Kompilasi Kode Aplikasi
Gunakan alat SBT
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengkompilasi dan mengemas kode Anda denganSBT:
sbt assembly
-
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/scala-3.2.0/sliding-window-scala-1.0.jar
Unggah Kode Scala Streaming Apache Flink
Di bagian ini, Anda membuat bucket Amazon S3 dan mengunggah kode aplikasi Anda.
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih Buat ember
Masukkan
ka-app-code-<username>
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).Di opsi Konfigurasi, pertahankan pengaturan apa adanya, dan pilih Berikutnya.
Di Setel izin, pertahankan pengaturan apa adanya, dan pilih Berikutnya.
Pilih Buat bucket.
Pilih
ka-app-code-<username>
bucket, lalu pilih Unggah.-
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
sliding-window-scala-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My Scala test app
. -
Untuk Runtime, pilih Apache Flink.
-
Tinggalkan versi sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
Gunakan prosedur berikut untuk mengonfigurasi aplikasi.
Untuk mengonfigurasi aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
sliding-window-scala-1.0.jar.
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan yang berikut ini:
ID Grup Kunci Nilai ConsumerConfigProperties
input.stream.name
ExampleInputStream
ConsumerConfigProperties
aws.region
us-west-2
ConsumerConfigProperties
flink.stream.initpos
LATEST
Pilih Simpan.
Di bawah Properties (Properti), pilih Add group (Tambahkan grup) lagi.
Masukkan yang berikut ini:
ID Grup Kunci Nilai ProducerConfigProperties
output.stream.name
ExampleOutputStream
ProducerConfigProperties
aws.region
us-west-2
-
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses bucket Amazon S3.
Untuk mengedit IAM kebijakan untuk menambahkan izin bucket S3
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/sliding-window-scala-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Hentikan aplikasi
Untuk menghentikan aplikasi, pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Buat dan jalankan aplikasi (CLI)
Di bagian ini, Anda menggunakan AWS Command Line Interface untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Gunakan AWS CLI perintah kinesisanalyticsv2 untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat kebijakan izin
catatan
Anda harus membuat kebijakan izin dan peran untuk aplikasi Anda. Jika Anda tidak membuat IAM sumber daya ini, aplikasi Anda tidak dapat mengakses data dan aliran lognya.
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan baca di aliran sumber, dan satu lagi yang memberikan izin untuk tindakan tulis di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti username
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (012345678901)
dengan ID akun Anda.
{ "ApplicationName": "sliding_window", "ApplicationDescription": "Scala sliding window application", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-
username
", "FileKey": "sliding-window-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di panel navigasi, pilih Peran dan kemudian Buat Peran.
Di bawah Pilih jenis identitas tepercaya, pilih AWS Layanan
Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis.
Di bawah Pilih kasus penggunaan Anda, pilih Layanan Terkelola untuk Apache Flink.
Pilih Berikutnya: Izin.
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Selanjutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran tersebutLampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Buat Kebijakan Izin.
Di halaman Ringkasan, pilih tab Permissions (Izin).
Pilih Attach Policies (Lampirkan Kebijakan).
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya).Pilih
AKReadSourceStreamWriteSinkStream
kebijakan, lalu pilih Lampirkan kebijakan.
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat aplikasi
Simpan JSON kode berikut ke file bernamacreate_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (nama pengguna) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (012345678901) di peran eksekusi layanan dengan ID akun Anda.
{ "ApplicationName": "sliding_window", "ApplicationDescription": "Scala sliding_window application", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-
username
", "FileKey": "sliding-window-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Jalankan CreateApplicationdengan permintaan berikut untuk membuat aplikasi:
aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan StartApplicationtindakan untuk memulai aplikasi.
Untuk memulai aplikasi
Simpan JSON kode berikut ke file bernama
start_request.json
.{ "ApplicationName": "sliding_window", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan StopApplicationtindakan untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "sliding_window" }
Jalankan
StopApplication
tindakan dengan permintaan sebelumnya untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihat Menyiapkan Pencatatan Aplikasi.
Perbarui properti lingkungan
Di bagian ini, Anda menggunakan UpdateApplicationtindakan untuk mengubah properti lingkungan untuk aplikasi tanpa mengkompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "sliding_window", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleOutputStream" } } ] } } }
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplicationCLItindakan.
catatan
Untuk memuat versi baru kode aplikasi dengan nama file yang sama, Anda harus menentukan versi objek baru. Untuk informasi selengkapnya tentang menggunakan versi objek Amazon S3, lihat Mengaktifkan dan Menonaktifkan Versioning.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama, dan versi objek baru. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>) dengan akhiran yang Anda pilih di bagian. Buat sumber daya yang bergantung
{ "ApplicationName": "sliding_window", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-
username
", "FileKeyUpdate": "-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU" } } } } }
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Jendela geser.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.
Contoh: Kirim data streaming ke Amazon S3 di Scala
catatan
Untuk contoh saat ini, lihatContoh untuk membuat dan bekerja dengan Managed Service untuk aplikasi Apache Flink.
catatan
Mulai dari versi 1.15 Flink gratis Scala. Aplikasi sekarang dapat menggunakan Java API dari versi Scala apa pun. Flink masih menggunakan Scala di beberapa komponen kunci secara internal tetapi tidak mengekspos Scala ke dalam classloader kode pengguna. Karena itu, pengguna perlu menambahkan dependensi Scala ke dalam arsip jar mereka.
Untuk informasi selengkapnya tentang perubahan Scala di Flink 1.15, lihat Scala Free
Dalam latihan ini, Anda akan membuat aplikasi streaming sederhana yang menggunakan Scala 3.2.0 dan Flink's Java. DataStream API Aplikasi membaca data dari aliran Kinesis, menggabungkannya menggunakan jendela geser dan menulis hasil ke S3.
catatan
Untuk mengatur prasyarat yang diperlukan untuk latihan ini, pertama-tama selesaikan latihan Memulai (Scala). Anda hanya perlu membuat folder tambahan data/
di bucket ka-app-code Amazon S3 -. <username>
Topik ini berisi bagian-bagian berikut:
Unduh dan periksa kode aplikasi
Kode aplikasi Python untuk contoh ini tersedia dari. GitHub Untuk mengunduh kode aplikasi, lakukan hal berikut:
Instal klien Git jika Anda belum menginstalnya. Untuk informasi selengkapnya, lihat Menginstal Git
. Klon repositori jarak jauh dengan perintah berikut:
git clone https://github.com/aws-samples/amazon-kinesis-data-analytics-examples.git
Buka direktori
amazon-kinesis-data-analytics-java-examples/scala/S3Sink
tersebut.
Perhatikan hal tentang kode aplikasi berikut:
build.sbt
File berisi informasi tentang konfigurasi dan dependensi aplikasi, termasuk Layanan Terkelola untuk pustaka Apache Flink.BasicStreamingJob.scala
File berisi metode utama yang mendefinisikan fungsionalitas aplikasi.Aplikasi menggunakan sumber Kinesis untuk membaca dari aliran sumber. Cuplikan berikut ini membuat sumber Kinesis:
private def createSource: FlinkKinesisConsumer[String] = { val applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties val inputProperties = applicationProperties.get("ConsumerConfigProperties") new FlinkKinesisConsumer[String](inputProperties.getProperty(streamNameKey, defaultInputStreamName), new SimpleStringSchema, inputProperties) }
Aplikasi ini juga menggunakan a StreamingFileSink untuk menulis ke ember Amazon S3: `
def createSink: StreamingFileSink[String] = { val applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties val s3SinkPath = applicationProperties.get("ProducerConfigProperties").getProperty("s3.sink.path") StreamingFileSink .forRowFormat(new Path(s3SinkPath), new SimpleStringEncoder[String]("UTF-8")) .build() }
Aplikasi ini membuat konektor sumber dan wastafel untuk mengakses sumber daya eksternal menggunakan StreamExecutionEnvironment objek.
Aplikasi ini membuat konektor sumber dan wastafel menggunakan properti aplikasi dinamis. Properti aplikasi runtime dibaca untuk mengkonfigurasi konektor. Untuk informasi selengkapnya tentang properti runtime, lihat Properti Runtime.
Kompilasi dan unggah kode aplikasi
Di bagian ini, Anda mengkompilasi dan mengunggah kode aplikasi ke bucket Amazon S3.
Kompilasi Kode Aplikasi
Gunakan alat SBT
Untuk menggunakan kode aplikasi Anda, Anda mengkompilasi dan mengemasnya ke dalam JAR file. Anda dapat mengkompilasi dan mengemas kode Anda denganSBT:
sbt assembly
-
Jika aplikasi berhasil mengompilasi, file berikut dibuat:
target/scala-3.2.0/s3-sink-scala-1.0.jar
Unggah Kode Scala Streaming Apache Flink
Di bagian ini, Anda membuat bucket Amazon S3 dan mengunggah kode aplikasi Anda.
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih Buat ember
Masukkan
ka-app-code-<username>
di bidang Bucket name (Nama bucket). Tambahkan sufiks ke nama bucket, seperti nama pengguna Anda, untuk membuatnya unik secara global. Pilih Next (Selanjutnya).Di opsi Konfigurasi, pertahankan pengaturan apa adanya, dan pilih Berikutnya.
Di Setel izin, pertahankan pengaturan apa adanya, dan pilih Berikutnya.
Pilih Buat bucket.
Pilih
ka-app-code-<username>
bucket, lalu pilih Unggah.-
Di langkah Pilih file, pilih Add files (Tambahkan berkas). Navigasikan ke file
s3-sink-scala-1.0.jar
yang Anda buat di langkah sebelumnya. Anda tidak perlu mengubah pengaturan apa pun untuk objek, jadi pilih Upload (Unggah).
Kode aplikasi Anda sekarang disimpan di bucket Amazon S3 yang dapat diakses aplikasi Anda.
Buat dan jalankan aplikasi (konsol)
Ikuti langkah-langkah ini untuk membuat, mengonfigurasi, memperbarui, dan menjalankan aplikasi menggunakan konsol.
Buat aplikasi
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
-
Pada dashboard Managed Service for Apache Flink, pilih Create Analytics Application.
-
Pada Layanan Terkelola untuk Apache Flink - Buat halaman aplikasi, berikan detail aplikasi sebagai berikut:
-
Untuk Application name (Nama aplikasi), masukkan
MyApplication
. -
Untuk Description (Deskripsi), masukkan
My java test app
. -
Untuk Runtime, pilih Apache Flink.
-
Tinggalkan versi sebagai Apache Flink versi 1.15.2 (Versi yang disarankan).
-
-
Untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Pilih Create application (Buat aplikasi).
catatan
Saat membuat aplikasi Managed Service for Apache Flink menggunakan konsol, Anda memiliki opsi untuk membuat IAM peran dan kebijakan untuk aplikasi Anda. Aplikasi Anda menggunakan peran dan kebijakan ini untuk mengakses sumber daya dependen. IAMSumber daya ini diberi nama menggunakan nama aplikasi dan Wilayah Anda sebagai berikut:
-
Kebijakan:
kinesis-analytics-service-
MyApplication
-us-west-2
-
Peran:
kinesisanalytics-
MyApplication
-us-west-2
Konfigurasikan aplikasi
Gunakan prosedur berikut untuk mengonfigurasi aplikasi.
Untuk mengonfigurasi aplikasi
-
Pada MyApplicationhalaman, pilih Konfigurasi.
-
Di halaman Konfigurasikan aplikasi, berikan Code location (Lokasi kode):
-
Untuk Bucket Amazon S3, masukkan
ka-app-code-
.<username>
-
Untuk Jalur ke objek Amazon S3, masukkan
s3-sink-scala-1.0.jar
.
-
-
Di bawah Akses ke sumber daya aplikasi, untuk izin Akses, pilih Buat/perbarui IAM peran
kinesis-analytics-MyApplication-us-west-2
. -
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan yang berikut ini:
ID Grup Kunci Nilai ConsumerConfigProperties
input.stream.name
ExampleInputStream
ConsumerConfigProperties
aws.region
us-west-2
ConsumerConfigProperties
flink.stream.initpos
LATEST
Pilih Simpan.
-
Di bawah Properties (Properti), pilih Add group (Tambahkan grup).
-
Masukkan yang berikut ini:
ID Grup Kunci Nilai ProducerConfigProperties
s3.sink.path
s3a://ka-app-code-
<user-name>
/data -
Di bawah Pemantauan, pastikan Memantau tingkat metrik diatur ke Aplikasi.
-
Untuk CloudWatch logging, pilih kotak centang Aktifkan.
-
Pilih Perbarui.
catatan
Saat Anda memilih untuk mengaktifkan CloudWatch pencatatan Amazon, Layanan Terkelola untuk Apache Flink membuat grup log dan aliran log untuk Anda. Nama-nama sumber daya ini adalah sebagai berikut:
-
Grup log:
/aws/kinesis-analytics/MyApplication
-
Aliran log:
kinesis-analytics-log-stream
Edit IAM kebijakan
Edit IAM kebijakan untuk menambahkan izin untuk mengakses bucket Amazon S3.
Untuk mengedit IAM kebijakan untuk menambahkan izin bucket S3
Buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Pilih Policies (Kebijakan). Pilih kebijakan
kinesis-analytics-service-MyApplication-us-west-2
yang dibuat konsol untuk Anda di bagian sebelumnya. -
Di halaman Ringkasan, pilih Edit policy (Edit kebijakan). Pilih JSONtab.
-
Tambahkan bagian yang disorot dari contoh kebijakan berikut ke kebijakan. Ganti akun sampel IDs (
012345678901
) dengan ID akun Anda.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:Abort*", "s3:DeleteObject*", "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:ListBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ka-app-code-<username>", "arn:aws:s3:::ka-app-code-<username>/*" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:
012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" } ] }
Jalankan aplikasi
Grafik pekerjaan Flink dapat dilihat dengan menjalankan aplikasi, membuka dasbor Apache Flink, dan memilih pekerjaan Flink yang diinginkan.
Hentikan aplikasi
Untuk menghentikan aplikasi, pada MyApplicationhalaman, pilih Berhenti. Konfirmasikan tindakan.
Buat dan jalankan aplikasi (CLI)
Di bagian ini, Anda menggunakan AWS Command Line Interface untuk membuat dan menjalankan aplikasi Managed Service for Apache Flink. Gunakan AWS CLI perintah kinesisanalyticsv2 untuk membuat dan berinteraksi dengan Managed Service untuk aplikasi Apache Flink.
Membuat kebijakan izin
catatan
Anda harus membuat kebijakan izin dan peran untuk aplikasi Anda. Jika Anda tidak membuat IAM sumber daya ini, aplikasi Anda tidak dapat mengakses data dan aliran lognya.
Pertama, Anda membuat kebijakan izin dengan dua pernyataan: satu yang memberikan izin untuk tindakan baca di aliran sumber, dan satu lagi yang memberikan izin untuk tindakan tulis di aliran sink. Anda kemudian melampirkan kebijakan ke IAM peran (yang Anda buat di bagian berikutnya). Jadi, ketika Layanan Terkelola untuk Apache Flink mengasumsikan peran tersebut, layanan memiliki izin yang diperlukan untuk membaca dari aliran sumber dan menulis ke aliran wastafel.
Gunakan kode berikut untuk membuat kebijakan izin AKReadSourceStreamWriteSinkStream
. Ganti username
dengan nama pengguna yang Anda gunakan untuk membuat bucket Amazon S3 untuk menyimpan kode aplikasi. Ganti ID akun di Amazon Resource Names (ARNs) (012345678901)
dengan ID akun Anda.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadCode", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ka-app-code-
username
/getting-started-scala-1.0.jar" ] }, { "Sid": "DescribeLogGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:*" ] }, { "Sid": "DescribeLogStreams", "Effect": "Allow", "Action": [ "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:*" ] }, { "Sid": "PutLogEvents", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-west-2:012345678901
:log-group:/aws/kinesis-analytics/MyApplication:log-stream:kinesis-analytics-log-stream" ] }, { "Sid": "ReadInputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleInputStream" }, { "Sid": "WriteOutputStream", "Effect": "Allow", "Action": "kinesis:*", "Resource": "arn:aws:kinesis:us-west-2:012345678901
:stream/ExampleOutputStream" } ] }
Untuk step-by-step petunjuk membuat kebijakan izin, lihat Tutorial: Membuat dan Melampirkan Kebijakan Terkelola Pelanggan Pertama Anda di Panduan IAM Pengguna.
Buat IAM peran
Di bagian ini, Anda membuat IAM peran yang dapat diasumsikan oleh aplikasi Managed Service for Apache Flink untuk membaca aliran sumber dan menulis ke aliran sink.
Layanan Terkelola untuk Apache Flink tidak dapat mengakses aliran Anda tanpa izin. Anda memberikan izin ini melalui IAM peran. Setiap IAM peran memiliki dua kebijakan yang terlampir. Kebijakan kepercayaan memberikan izin Layanan Terkelola untuk Apache Flink untuk mengambil peran, dan kebijakan izin menentukan apa yang dapat dilakukan Layanan Terkelola untuk Apache Flink setelah mengambil peran.
Anda melampirkan kebijakan izin yang Anda buat di bagian sebelumnya ke peran ini.
Untuk membuat IAM peran
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di panel navigasi, pilih Peran dan kemudian Buat Peran.
Di bawah Pilih jenis identitas tepercaya, pilih AWS Layanan
Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis.
Di bawah Pilih kasus penggunaan Anda, pilih Layanan Terkelola untuk Apache Flink.
Pilih Berikutnya: Izin.
Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.
Di halaman Buat peran, masukkan
MF-stream-rw-role
untuk Role name (Nama peran). Pilih Create role (Buat peran).Sekarang Anda telah menciptakan IAM peran baru yang disebut
MF-stream-rw-role
. Selanjutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran tersebutLampirkan kebijakan izin ke peran tersebut.
catatan
Untuk latihan ini, Managed Service for Apache Flink mengasumsikan peran ini untuk membaca data dari aliran data Kinesis (sumber) dan menulis output ke aliran data Kinesis lain. Jadi Anda melampirkan kebijakan yang Anda buat di langkah sebelumnya, Buat Kebijakan Izin.
Di halaman Ringkasan, pilih tab Permissions (Izin).
Pilih Attach Policies (Lampirkan Kebijakan).
Di kotak pencarian, masukkan
AKReadSourceStreamWriteSinkStream
(kebijakan yang Anda buat bagian sebelumnya).Pilih
AKReadSourceStreamWriteSinkStream
kebijakan, lalu pilih Lampirkan kebijakan.
Anda sekarang telah membuat peran eksekusi layanan yang digunakan aplikasi Anda untuk mengakses sumber daya. Catat peran baru. ARN
Untuk step-by-step petunjuk cara membuat peran, lihat Membuat IAM Peran (Konsol) di Panduan IAM Pengguna.
Buat aplikasi
Simpan JSON kode berikut ke file bernamacreate_request.json
. Ganti peran sampel ARN dengan peran yang Anda buat sebelumnya. ARN Ganti ARN akhiran bucket (nama pengguna) dengan akhiran yang Anda pilih di bagian sebelumnya. Ganti ID akun sampel (012345678901) di peran eksekusi layanan dengan ID akun Anda.
{ "ApplicationName": "s3_sink", "ApplicationDescription": "Scala tumbling window application", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-
username
", "FileKey": "s3-sink-scala-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "s3.sink.path" : "s3a://ka-app-code-<username>/data" } } ] } }, "CloudWatchLoggingOptions": [ { "LogStreamARN": "arn:aws:logs:us-west-2:012345678901
:log-group:MyApplication:log-stream:kinesis-analytics-log-stream" } ] }
Jalankan CreateApplicationdengan permintaan berikut untuk membuat aplikasi:
aws kinesisanalyticsv2 create-application --cli-input-json file://create_request.json
Aplikasi ini sekarang dibuat. Anda memulai aplikasi di langkah berikutnya.
Mulai aplikasi
Di bagian ini, Anda menggunakan StartApplicationtindakan untuk memulai aplikasi.
Untuk memulai aplikasi
Simpan JSON kode berikut ke file bernama
start_request.json
.{{ "ApplicationName": "s3_sink", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
Jalankan tindakan
StartApplication
dengan permintaan sebelumnya untuk memulai aplikasi:aws kinesisanalyticsv2 start-application --cli-input-json file://start_request.json
Aplikasi sekarang berjalan. Anda dapat memeriksa metrik Layanan Terkelola untuk Apache Flink di CloudWatch konsol Amazon untuk memverifikasi bahwa aplikasi berfungsi.
Hentikan aplikasi
Di bagian ini, Anda menggunakan StopApplicationtindakan untuk menghentikan aplikasi.
Untuk menghentikan aplikasi
Simpan JSON kode berikut ke file bernama
stop_request.json
.{ "ApplicationName": "s3_sink" }
Jalankan
StopApplication
tindakan dengan permintaan sebelumnya untuk menghentikan aplikasi:aws kinesisanalyticsv2 stop-application --cli-input-json file://stop_request.json
Aplikasi sekarang dihentikan.
Tambahkan opsi CloudWatch logging
Anda dapat menggunakan AWS CLI untuk menambahkan aliran CloudWatch log Amazon ke aplikasi Anda. Untuk informasi tentang menggunakan CloudWatch Log dengan aplikasi Anda, lihat Menyiapkan Pencatatan Aplikasi.
Perbarui properti lingkungan
Di bagian ini, Anda menggunakan UpdateApplicationtindakan untuk mengubah properti lingkungan untuk aplikasi tanpa mengkompilasi ulang kode aplikasi. Dalam contoh ini, Anda mengubah Wilayah aliran sumber dan tujuan.
Untuk memperbarui properti lingkungan untuk aplikasi
Simpan JSON kode berikut ke file bernama
update_properties_request.json
.{"ApplicationName": "s3_sink", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2", "stream.name" : "ExampleInputStream", "flink.stream.initpos" : "LATEST" } }, { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "s3.sink.path" : "s3a://ka-app-code-<username>/data" } } ] } } }
Jalankan tindakan
UpdateApplication
dengan permintaan sebelumnya untuk memperbarui properti lingkungan:aws kinesisanalyticsv2 update-application --cli-input-json file://update_properties_request.json
Perbarui kode aplikasi
Ketika Anda perlu memperbarui kode aplikasi Anda dengan versi baru dari paket kode Anda, Anda menggunakan UpdateApplicationCLItindakan.
catatan
Untuk memuat versi baru kode aplikasi dengan nama file yang sama, Anda harus menentukan versi objek baru. Untuk informasi selengkapnya tentang menggunakan versi objek Amazon S3, lihat Mengaktifkan dan Menonaktifkan Versioning.
Untuk menggunakan AWS CLI, hapus paket kode sebelumnya dari bucket Amazon S3, unggah versi baru, dan panggilUpdateApplication
, tentukan bucket Amazon S3 dan nama objek yang sama, dan versi objek baru. Aplikasi akan memulai ulang dengan paket kode baru.
Permintaan sampel berikut untuk tindakan UpdateApplication
memuat ulang kode aplikasi dan memulai ulang aplikasi. Perbarui CurrentApplicationVersionId
ke versi aplikasi saat ini. Anda dapat memeriksa versi aplikasi saat ini menggunakan tindakan ListApplications
atau DescribeApplication
. Perbarui akhiran nama bucket (<username>) dengan akhiran yang Anda pilih di bagian. Buat sumber daya yang bergantung
{ "ApplicationName": "s3_sink", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-
username
", "FileKeyUpdate": "s3-sink-scala-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU" } } } } }
Bersihkan AWS sumber daya
Bagian ini mencakup prosedur untuk membersihkan AWS sumber daya yang dibuat dalam tutorial Tumbling Window.
Topik ini berisi bagian-bagian berikut:
Hapus Layanan Terkelola Anda untuk aplikasi Apache Flink
Buka Layanan Terkelola untuk konsol Apache Flink di /flink https://console.aws.amazon.com
di panel Managed Service for Apache Flink, pilih. MyApplication
Di halaman aplikasi, pilih Delete (Hapus), lalu konfirmasikan penghapusan.
Hapus aliran data Kinesis Anda
Buka konsol Kinesis di /kinesis. https://console.aws.amazon.com
Di panel Kinesis Data Streams, pilih. ExampleInputStream
Di ExampleInputStreamhalaman, pilih Hapus Stream Kinesis dan kemudian konfirmasikan penghapusan.
Di halaman Kinesis streams, pilih, pilih Tindakan ExampleOutputStream, pilih Hapus, lalu konfirmasikan penghapusan.
Hapus objek dan ember Amazon S3 Anda
Buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
Pilih ka-app-code -
<username>
ember.Pilih Delete (Hapus), lalu masukkan nama bucket untuk mengonfirmasi penghapusan.
Hapus IAM sumber daya Anda
Buka IAM konsol di https://console.aws.amazon.com/iam/
. Di bilah navigasi, pilih Policies (Kebijakan).
Di kontrol filter, masukkan kinesis.
Pilih kebijakan kinesis-analytics-service- MyApplication -us-west-2.
Pilih Policy Actions (Tindakan Kebijakan), lalu pilih Delete (Hapus).
Di bilah navigasi, pilih Roles (Peran).
Pilih peran kinesis-analytics- -us-west-2. MyApplication
Pilih Delete role (Hapus peran), lalu konfirmasi penghapusan.
Hapus CloudWatch sumber daya Anda
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Di bilah navigasi, pilih Logs.
Pilih grup/aws/kinesis-analytics/MyApplicationlog.
Pilih Delete Log Group (Hapus Grup Log), lalu konfirmasi penghapusan.