Propiedades de tiempo de ejecución en Managed Service for Apache Flink - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon 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.

Propiedades de tiempo de ejecución en Managed Service for 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.

Trabajar con las propiedades del tiempo de ejecución en la consola

Puede añadir, actualizar o eliminar propiedades de tiempo de ejecución de su aplicación Managed Service for Apache Flink mediante. AWS Management Console

nota

Si utiliza una versión anterior compatible de Apache Flink y desea actualizar sus aplicaciones existentes a Apache Flink 1.19.1, puede hacerlo mediante las actualizaciones de versión integradas de Apache Flink. Con las actualizaciones de versión locales, conserva 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. Puede utilizar esta función en cualquier estado. RUNNING READY Para obtener más información, consulte 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. Abra la consola de Managed Service para Apache Flink 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.

Trabajar con propiedades de tiempo de ejecución en 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 Código de ejemplo de la API de Managed Service for Apache Flink.

nota

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

Añadir 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" } } ] } } }

Añadir y actualizar las propiedades del 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.

Eliminar 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.

Acceder a las propiedades del tiempo de ejecución en una aplicación de Managed Service for 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 Managed Service para Apache Flink: ejemplos.