Uso de propiedades de tiempo de ejecución en Managed Service para Apache Flink - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Uso de propiedades de tiempo de ejecución en Managed Service para Apache Flink

Puede usar las propiedades de tiempo de ejecución para configurar su aplicación sin tener que volver a compilar el código de la aplicación.

Administración de las propiedades del tiempo de ejecución mediante la consola

Se pueden añadir, actualizar o eliminar propiedades de tiempo de ejecución de su aplicación Managed Service para Apache Flink mediante la Consola de administración de AWS.

nota

Si se utiliza una versión anterior compatible de Apache Flink y desea actualizar sus aplicaciones actuales a Apache Flink 1.19.1, se puede hacer mediante las actualizaciones de versión integradas de Apache Flink. Con las actualizaciones de versión locales, se retiene la trazabilidad de las aplicaciones con respecto a un único ARN en todas las versiones de Apache Flink, incluidas las instantáneas, los registros, las métricas, las etiquetas, las configuraciones de Flink y más. Se puede utilizar esta función en el estado RUNNING y READY. Para obtener más información, consulte Uso de actualizaciones de versión locales para Apache Flink.

Actualización de propiedades de tiempo de ejecución para un servicio gestionado para la aplicación Apache Flink
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon MSF en https://console.aws.amazon.com/flink.

  2. Elija su Managed Service para la aplicación Apache Flink. Elija Detalles de la aplicación.

  3. En la página de su aplicación, elija Configurar.

  4. Amplíe la sección Propiedades.

  5. Utilice los controles de la sección Propiedades para definir un grupo de propiedades con pares de valor clave. Utilice estos controles para añadir, actualizar o eliminar grupos de propiedades y propiedades de tiempo de ejecución.

  6. Elija Actualizar.

Administración de las propiedades del tiempo de ejecución mediante la CLI

Puede agregar, actualizar o eliminar propiedades en tiempo de ejecución mediante AWS CLI.

En esta sección se incluyen ejemplos de solicitudes de acciones de API para configurar las propiedades de tiempo de ejecución de una aplicación. Para obtener información sobre cómo utilizar un archivo JSON como entrada para una acción de API, consulte Ejemplo de código de API de Managed Service para Apache Flink.

nota

Sustituya el ID de cuenta de muestra (012345678901) en los siguientes ejemplos por su ID de cuenta.

Agregación de propiedades de tiempo de ejecución al crear una aplicación

El siguiente ejemplo de solicitud para la CreateApplicationacción agrega dos grupos de propiedades de tiempo de ejecución (ProducerConfigProperties y ConsumerConfigProperties) al crear una aplicación:

{ "ApplicationName": "MyApplication", "ApplicationDescription": "my java test app", "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": "java-getting-started-1.0.jar" } }, "CodeContentType": "ZIPFILE" }, "EnvironmentProperties": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } }

Agregación y actualización de propiedades de tiempo de ejecución en una aplicación existente

El siguiente ejemplo de solicitud de la acción UpdateApplication agrega o actualiza las propiedades de tiempo de ejecución de una aplicación existente:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 2, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [ { "PropertyGroupId": "ProducerConfigProperties", "PropertyMap" : { "flink.stream.initpos" : "LATEST", "aws.region" : "us-west-2", "AggregationEnabled" : "false" } }, { "PropertyGroupId": "ConsumerConfigProperties", "PropertyMap" : { "aws.region" : "us-west-2" } } ] } } }
nota

Si usa una clave que no tiene una propiedad de tiempo de ejecución correspondiente en un grupo de propiedades, Managed Service para Apache Flink agrega el par de valor clave como una nueva propiedad. Si usa una clave para una propiedad de tiempo de ejecución existente en un grupo de propiedades, Managed Service para Apache Flink actualiza el valor de la propiedad.

Eliminación de propiedades de tiempo de ejecución

El siguiente ejemplo de solicitud de la acción UpdateApplication elimina todas las propiedades de tiempo de ejecución y grupos de propiedades de una aplicación existente:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 3, "ApplicationConfigurationUpdate": { "EnvironmentPropertyUpdates": { "PropertyGroups": [] } } }
importante

Si omite un grupo de propiedades existente o una clave de propiedad existente en un grupo de propiedades, ese grupo de propiedades o propiedad se elimina.

Acceso a propiedades de tiempo de ejecución en un servicio gestionado para la aplicación Apache Flink

Las propiedades de tiempo de ejecución se recuperan en el código de la aplicación Java mediante el método estático KinesisAnalyticsRuntime.getApplicationProperties(), que devuelve un objeto Map<String, Properties>.

En el siguiente ejemplo de código Java, se recuperan las propiedades de tiempo de ejecución de su aplicación:

Map<String, Properties> applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties();

Puede recuperar un grupo de propiedades (como un objeto Java.Util.Properties) de la siguiente manera:

Properties consumerProperties = applicationProperties.get("ConsumerConfigProperties");

Por lo general, se configura una fuente o un receptor de Apache Flink pasando el objeto Properties sin necesidad de recuperar las propiedades individuales. El siguiente ejemplo de código muestra cómo crear una fuente de Flink pasando un objeto Properties recuperado de las propiedades de tiempo de ejecución:

private static FlinkKinesisProducer<String> createSinkFromApplicationProperties() throws IOException { Map<String, Properties> applicationProperties = KinesisAnalyticsRuntime.getApplicationProperties(); FlinkKinesisProducer<String> sink = new FlinkKinesisProducer<String>(new SimpleStringSchema(), applicationProperties.get("ProducerConfigProperties")); sink.setDefaultStream(outputStreamName); sink.setDefaultPartition("0"); return sink; }

Para ver ejemplos de código, consulte Ejemplos de cómo crear y utilizar aplicaciones en Managed Service para Apache Flink.