Use propriedades de tempo de execução no Managed Service para Apache Flink - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use propriedades de tempo de execução no Managed Service para Apache Flink

Você pode usar propriedades de runtime para configurar seu aplicativo sem recompilar o código do aplicativo.

Gerencie propriedades de tempo de execução usando o console

Você pode adicionar, atualizar ou remover propriedades de tempo de execução do seu aplicativo Managed Service for Apache Flink usando o. AWS Management Console

nota

Se você estiver usando uma versão anterior compatível do Apache Flink e quiser atualizar seus aplicativos existentes para o Apache Flink 1.19.1, você pode fazer isso usando atualizações de versão do Apache Flink in-loco. Com as atualizações de versão no local, você mantém a rastreabilidade do aplicativo ARN em relação a uma única versão do Apache Flink, incluindo instantâneos, registros, métricas, tags, configurações do Flink e muito mais. Você pode usar esse recurso em RUNNING um READY estado. Para obter mais informações, consulte Use atualizações de versão in-loco para o Apache Flink.

Atualizar propriedades de runtime for Managed Service for Apache Flink
  1. Abra o console do Managed Service for Apache Flink em /flink https://console.aws.amazon.com

  2. Selecione o seu aplicativo Managed Service for Apache Flink. Selecione Detalhes do aplicativo.

  3. Na página do seu aplicativo, selecione Configurar.

  4. Expanda a seção Propriedades.

  5. Use os controles na seção Propriedades para definir um grupo de propriedades com pares de valor-chave. Use esses controles para adicionar, atualizar ou remover grupos de propriedades e propriedades de runtime.

  6. Selecione Atualizar.

Gerencie propriedades de tempo de execução usando o CLI

É possível adicionar, atualizar ou remover propriedades de runtime usando AWS CLI.

Esta seção inclui exemplos de solicitações de API ações para configurar propriedades de tempo de execução para um aplicativo. Para obter informações sobre como usar um JSON arquivo como entrada para uma API ação, consulteCódigo de exemplo de serviço gerenciado para Apache Flink API.

nota

Substitua o ID da conta de amostra (012345678901) nos exemplos a seguir com o ID da sua conta.

Adicione propriedades de tempo de execução ao criar um aplicativo

O exemplo a seguir de solicitação para a ação CreateApplication adiciona dois grupos de propriedades de runtime (ProducerConfigProperties e ConsumerConfigProperties) quando você cria um aplicativo:

{ "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" } } ] } } }

Adicionar e atualizar propriedades de tempo de execução em um aplicativo existente

O exemplo a seguir de solicitação para a ação UpdateApplication adiciona ou atualiza as propriedades de runtime de um aplicativo 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

Se você usar uma chave que não tenha uma propriedade de runtime correspondente em um grupo de propriedades, o Managed Service for Apache Flink adicionará o par de chave-valor como uma nova propriedade. Se você usar uma chave para uma propriedade de runtime existente em um grupo de propriedades, o Managed Service for Apache Flink atualizará o valor da propriedade.

Remover propriedades de tempo de execução

O exemplo a seguir de solicitação para a ação UpdateApplication remove todas as propriedades de runtime e grupos de propriedades de um aplicativo existente:

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

Se você omitir um grupo de propriedades existente ou uma chave de propriedade existente em um grupo de propriedades, esse grupo de propriedades ou propriedade será removido.

Acesse propriedades de tempo de execução em um aplicativo Managed Service for Apache Flink

Você recupera as propriedades de runtime no código do aplicativo Java usando o método estático KinesisAnalyticsRuntime.getApplicationProperties(), que retorna um objeto Map<String, Properties>.

O exemplo de código Java a seguir recupera as propriedades de runtime do seu aplicativo:

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

Você recupera um grupo de propriedades (como um objeto Java.Util.Properties) da seguinte forma:

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

Normalmente, você configura uma fonte ou coletor do Apache Flink passando no objeto Properties sem precisar recuperar as propriedades individuais. O exemplo de código a seguir demonstra como criar uma fonte do Flink transmitindo em um objeto Properties recuperado das propriedades de runtime:

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 obter exemplos de código, consulte Exemplos para criar e trabalhar com o Managed Service para aplicativos Apache Flink.