Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aktualisieren der Java-Anwendungen
Gehen Sie wie folgt vor, um Java-Anwendungen zu aktualisieren:
flink-connector-kinesis
Wenn die Anwendung flink-connector-kinesis
verwendet:
Der Kinesis-Konnektor verwendet Shading, um einige Abhängigkeiten, einschließlich der AWS SDK, in das Connector-JAR zu packen. Gehen Sie wie folgt vor, um die AWS SDK Version zu aktualisieren, um diese schattierten Klassen zu ersetzen:
- Maven
-
Fügen Sie den Kinesis-Konnektor und die erforderlichen AWS SDK Module als Projektabhängigkeiten hinzu.
Konfigurieren von maven-shade-plugin
:
Fügen Sie einen Filter hinzu, um schattierte AWS SDK Klassen auszuschließen, wenn der Inhalt der Kinesis-Connector-Jar kopiert wird.
Fügen Sie eine Relokationsregel hinzu, um aktualisierte AWS SDK Klassen in das Paket zu verschieben, was vom Kinesis-Connector erwartet wird.
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
-
Fügen Sie den Kinesis-Konnektor und die erforderlichen AWS SDK Module als Projektabhängigkeiten hinzu.
shadowJar Konfiguration anpassen:
Schließt schattierte AWS SDK Klassen aus, wenn der Inhalt der Kinesis-Connector-Jar kopiert wird.
Verschieben Sie aktualisierte AWS SDK Klassen in ein Paket, das vom Kinesis-Connector erwartet wird.
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")
}
...
Andere betroffene Konnektoren
Wenn die Anwendung einen anderen betroffenen Konnektor verwendet:
Um die Version zu aktualisieren, sollte die AWS SDK Version in der SDK Build-Konfiguration des Projekts durchgesetzt werden.
- Maven
-
Fügen Sie dem Abschnitt zur Abhängigkeitsverwaltung der pom.xml
Datei eine AWS SDK Stückliste (BOM) hinzu, um die SDK Version für das Projekt durchzusetzen.
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
-
Fügen Sie der AWS SDK Stückliste (BOM) eine Plattformabhängigkeit hinzu, um die SDK Version für das Projekt durchzusetzen. Dies erfordert Gradle 5.0 oder neuer:
build.gradle
...
dependencies {
...
flinkShadowJar(platform("software.amazon.awssdk:bom:2.20.144"))
...
}
...