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.
Stateful Functions
Aplikasi Stateful Functions pada dasarnya hanyalah Aplikasi Apache Flink dan karenanya dapat digunakan untuk Managed Service untuk Apache Flink. Namun, ada beberapa perbedaan antara mengemas Stateful Functions untuk klaster Kubernetes dan Managed Service untuk Apache Flink. Aspek terpenting dari aplikasi Stateful Functions adalah konfigurasi modul berisi semua informasi runtime yang diperlukan untuk mengonfigurasi
Berikut ini adalah adaptasi dari contoh StateFun Python untuk Managed Service untuk Apache Flink:
Templat aplikasi Apache Flink
Alih-alih menggunakan wadah pelanggan untuk runtime Stateful Functions, pelanggan dapat mengkompilasi jar aplikasi Flink yang hanya memanggil runtime Stateful Functions dan berisi dependensi yang diperlukan. Untuk Flink 1.13, dependensi yang diperlukan terlihat mirip dengan ini:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>statefun-flink-distribution</artifactId>
<version>3.1.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
Dan metode utama aplikasi Flink untuk menjalankan runtime Stateful Function terlihat seperti ini:
public static void main(String[] args) throws Exception {
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StatefulFunctionsConfig stateFunConfig = StatefulFunctionsConfig.fromEnvironment(env);
stateFunConfig.setProvider((StatefulFunctionsUniverseProvider) (classLoader, statefulFunctionsConfig) -> {
Modules modules = Modules.loadFromClassPath();
return modules.createStatefulFunctionsUniverse(stateFunConfig);
});
StatefulFunctionsJob.main(env, stateFunConfig);
}
Perhatikan bahwa komponen-komponen ini bersifat generik dan independen dari logika yang diimplementasikan dalam Fungsi Stateful.
Lokasi konfigurasi modul
Konfigurasi modul Stateful Functions perlu disertakan dalam jalur kelas agar dapat ditemukan untuk runtime Stateful Functions. Yang terbaik adalah memasukkannya ke dalam folder sumber daya aplikasi Flink dan mengemasnya ke dalam file jar.
Mirip dengan aplikasi Apache Flink umum, Anda kemudian dapat menggunakan maven untuk membuat file jar uber dan menyebarkannya pada Managed Service untuk Apache Flink.