Buat dan jalankan aplikasi (CLI) - Layanan Terkelola untuk Apache Flink

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.

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 kebijakan

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 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
  1. Buka IAM konsol di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Peran dan kemudian Buat Peran.

  3. Di bawah Pilih jenis identitas tepercaya, pilih AWS Layanan

  4. Di bawah Pilih layanan yang akan menggunakan peran ini, pilih Kinesis.

  5. Di bawah Pilih kasus penggunaan Anda, pilih Layanan Terkelola untuk Apache Flink.

  6. Pilih Berikutnya: Izin.

  7. Di halaman Lampirkan kebijakan izin, pilih Next: Review (Selanjutnya: Tinjau). Anda melampirkan kebijakan izin setelah Anda membuat peran tersebut.

  8. 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 disebutMF-stream-rw-role. Selanjutnya, Anda memperbarui kebijakan kepercayaan dan izin untuk peran tersebut

  9. 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, Buat Kebijakan Izin.

    1. Di halaman Ringkasan, pilih tab Permissions (Izin).

    2. Pilih Attach Policies (Lampirkan Kebijakan).

    3. Di kotak pencarian, masukkan AKReadSourceStreamWriteSinkStream (kebijakan yang Anda buat bagian sebelumnya).

    4. 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": "getting_started", "ApplicationDescription": "Scala getting started application", "RuntimeEnvironment": "FLINK-1_19", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/MF-stream-rw-role", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation": { "BucketARN": "arn:aws:s3:::ka-app-code-username", "FileKey": "getting-started-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
  1. Simpan JSON kode berikut ke file bernamastart_request.json.

    { "ApplicationName": "getting_started", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
  2. 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
  1. Simpan JSON kode berikut ke file bernamastop_request.json.

    { "ApplicationName": "s3_sink" }
  2. 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
  1. Simpan JSON kode berikut ke file bernamaupdate_properties_request.json.

    { "ApplicationName": "getting_started", "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" } } ] } }
  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 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": "getting_started", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationCodeConfigurationUpdate": { "CodeContentUpdate": { "S3ContentLocationUpdate": { "BucketARNUpdate": "arn:aws:s3:::ka-app-code-<username>", "FileKeyUpdate": "getting-started-scala-1.0.jar", "ObjectVersionUpdate": "SAMPLEUehYngP87ex1nzYIGYgfhypvDU" } } } } }