Perbarui aplikasi Java - 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.

Perbarui aplikasi Java

Ikuti prosedur di bawah ini untuk memperbarui aplikasi Java:

Jika aplikasi menggunakanflink-connector-kinesis:

Konektor Kinesis menggunakan shading untuk mengemas beberapa dependensi, termasuk, ke dalam AWS SDK toples konektor. Untuk memperbarui AWS SDK versi, gunakan prosedur berikut untuk mengganti kelas yang diarsir ini:

Maven
  1. Tambahkan konektor Kinesis dan AWS SDK modul yang diperlukan sebagai dependensi proyek.

  2. Konfigurasikanmaven-shade-plugin:

    1. Tambahkan filter untuk mengecualikan AWS SDK kelas yang diarsir saat menyalin konten tabung konektor Kinesis.

    2. Tambahkan aturan relokasi untuk memindahkan AWS SDK kelas yang diperbarui ke paket, yang diharapkan oleh konektor Kinesis.

    pom.xml

    <project> ... <dependencies> ... <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kinesis</artifactId> <version>1.15.4</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>kinesis</artifactId> <version>2.20.144</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>netty-nio-client</artifactId> <version>2.20.144</version> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>sts</artifactId> <version>2.20.144</version> </dependency> ... </dependencies> ... <build> ... <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> ... <filters> ... <filter> <artifact>org.apache.flink:flink-connector-kinesis</artifact> <excludes> <exclude>org/apache/flink/kinesis/shaded/software/amazon/awssdk/**</exclude> <exclude>org/apache/flink/kinesis/shaded/org/reactivestreams/**</exclude> <exclude>org/apache/flink/kinesis/shaded/io/netty/**</exclude> <exclude>org/apache/flink/kinesis/shaded/com/typesafe/netty/**</exclude> </excludes> </filter> ... </filters> <relocations> ... <relocation> <pattern>software.amazon.awssdk</pattern> <shadedPattern>org.apache.flink.kinesis.shaded.software.amazon.awssdk</shadedPattern> </relocation> <relocation> <pattern>org.reactivestreams</pattern> <shadedPattern>org.apache.flink.kinesis.shaded.org.reactivestreams</shadedPattern> </relocation> <relocation> <pattern>io.netty</pattern> <shadedPattern>org.apache.flink.kinesis.shaded.io.netty</shadedPattern> </relocation> <relocation> <pattern>com.typesafe.netty</pattern> <shadedPattern>org.apache.flink.kinesis.shaded.com.typesafe.netty</shadedPattern> </relocation> ... </relocations> ... </configuration> </execution> </executions> </plugin> ... </plugins> ... </build> </project>
Gradle
  1. Tambahkan konektor Kinesis dan AWS SDK modul yang diperlukan sebagai dependensi proyek.

  2. Sesuaikan shadowJar konfigurasi:

    1. Kecualikan AWS SDK kelas yang diarsir saat menyalin konten tabung konektor Kinesis.

    2. Pindahkan AWS SDK kelas yang diperbarui ke paket yang diharapkan oleh konektor Kinesis.

    build.gradle

    ... dependencies { ... flinkShadowJar("org.apache.flink:flink-connector-kinesis:1.15.4") flinkShadowJar("software.amazon.awssdk:kinesis:2.20.144") flinkShadowJar("software.amazon.awssdk:sts:2.20.144") flinkShadowJar("software.amazon.awssdk:netty-nio-client:2.20.144") ... } ... shadowJar { configurations = [project.configurations.flinkShadowJar] exclude("software/amazon/kinesis/shaded/software/amazon/awssdk/**/*") exclude("org/apache/flink/kinesis/shaded/org/reactivestreams/**/*.class") exclude("org/apache/flink/kinesis/shaded/io/netty/**/*.class") exclude("org/apache/flink/kinesis/shaded/com/typesafe/netty/**/*.class") relocate("software.amazon.awssdk", "org.apache.flink.kinesis.shaded.software.amazon.awssdk") relocate("org.reactivestreams", "org.apache.flink.kinesis.shaded.org.reactivestreams") relocate("io.netty", "org.apache.flink.kinesis.shaded.io.netty") relocate("com.typesafe.netty", "org.apache.flink.kinesis.shaded.com.typesafe.netty") } ...

Jika aplikasi menggunakan konektor lain yang terpengaruh:

Untuk memperbarui AWS SDK versi, SDK versi harus diberlakukan dalam konfigurasi build proyek.

Maven

Tambahkan AWS SDK bill of materials (BOM) ke bagian manajemen dependensi pom.xml file untuk menerapkan SDK versi proyek.

pom.xml

<project> ... <dependencyManagement> <dependencies> ... <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.20.144</version> <scope>import</scope> <type>pom</type> </dependency> ... </dependencies> </dependencyManagement> ... </project>
Gradle

Tambahkan ketergantungan platform pada AWS SDK bill of materials (BOM) untuk menegakkan SDK versi proyek. Ini membutuhkan Gradle 5.0 atau yang lebih baru:

build.gradle

... dependencies { ... flinkShadowJar(platform("software.amazon.awssdk:bom:2.20.144")) ... } ...