Propriedades de tempo de execução no Managed Service for 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á.

Propriedades de tempo de execução no Managed Service for Apache Flink

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

Trabalhando com propriedades de tempo de execução no 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 em relação a um único ARN nas versões 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 ter mais informações, consulte 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 https://console.aws.amazon.com/flink

  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.

Trabalhando com propriedades de tempo de execução na CLI

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

Esta seção inclui exemplos de solicitações de ações de API para configurar propriedades de runtime para um aplicativo. Para obter informações sobre como usar um arquivo JSON como entrada de uma ação da API, consulte Código de exemplo do Managed Service for Apache Flink API.

nota

Substitua o exemplo de ID da conta (012345678901) nos exemplos a seguir pelo ID da sua conta.

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

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

Acessando 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 Managed Service for Apache Flink: exemplos.