Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Actualización de las aplicaciones Java
Siga los procedimientos que se indican a continuación para actualizar las aplicaciones Java:
flink-connector-kinesis
Si la aplicación utiliza flink-connector-kinesis:
El conector de Kinesis usa el sombreado para empaquetar algunas dependencias, incluido AWS SDK, en el archivo jar del conector. Para actualizar la versión de AWS SDK, realice el siguiente procedimiento para reemplazar estas clases sombreadas:
- Maven
-
Agregue el conector de Kinesis y los módulos de AWS SDK necesarios como dependencias del proyecto.
Configure
maven-shade-plugin:Añada un filtro para excluir las clases de AWS SDK sombreadas al copiar el contenido del archivo jar del conector de Kinesis.
Añada una regla de reubicación para mover las clases de AWS SDK actualizadas al paquete, según lo previsto por el conector de 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
-
Agregue el conector de Kinesis y los módulos de AWS SDK necesarios como dependencias del proyecto.
Ajuste la configuración de ShadowJar:
Excluya las clases de AWS SDK sombreadas al copiar el contenido del archivo jar del conector de Kinesis.
Reubique las clases de AWS SDK actualizadas al paquete previsto por el conector de 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") } ...
Otros conectores afectados
Si la aplicación utiliza otro conector afectado:
Para actualizar la versión de AWS SDK, se debe aplicar la versión del SDK en la configuración de compilación del proyecto.
- Maven
-
Agregue la lista de materiales (BOM) de AWS SDK a la sección de administración de dependencias del archivo
pom.xmlpara aplicar la versión del SDK del proyecto.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
-
Agregue la dependencia de la plataforma en la lista de materiales (BOM) de AWS SDK para aplicar la versión del SDK del proyecto. Esto requiere Gradle 5.0 o una versión más reciente:
build.gradle
... dependencies { ... flinkShadowJar(platform("software.amazon.awssdk:bom:2.20.144")) ... } ...