Managed Service for Apache Flink でランタイムプロパティを使用する - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Managed Service for Apache Flink でランタイムプロパティを使用する

ランタイムプロパティ」を使用すると、アプリケーションコードを再コンパイルせずにアプリケーションを設定できます。

コンソールを使用してランタイムプロパティを管理する

を使用して、Managed Service for Apache Flink アプリケーションからランタイムプロパティを追加、更新、または削除できます AWS Management Console。

注記

以前にサポートされているバージョンの Apache Flink を使用していて、既存のアプリケーションを Apache Flink 1.19.1 にアップグレードする場合は、インプレース Apache Flink バージョンアップグレードを使用してアップグレードできます。インプレースバージョンアップグレードでは、スナップショット、ログ、メトリクス、タグ、Flink 設定など、Apache Flink バージョンARN全体で 1 つの に対してアプリケーションのトレーサビリティを維持します。この機能は、 RUNNING および READY状態で使用できます。詳細については、「Apache Flink のインプレースバージョンアップグレードを使用する」を参照してください。

Apache Flink アプリケーション用 Managed Serviceのランタイムプロパティの更新
  1. https://console.aws.amazon.com/flink で Managed Service for Apache Flink コンソールを開きます。

  2. Apache Flink アプリケーション用 Managed Serviceを選択します。[Application details (アプリケーションの詳細)] を選択します。

  3. アプリケーションのページで、構成 をクリックします。

  4. プロパティ」セクションを展開します。

  5. プロパティ‭」セクションのコントロールを使用して、キーと値のペアを含むプロパティグループを定義します。これらのコントロールを使用して、プロパティグループとランタイムプロパティを追加、更新、削除します。

  6. [Update] (更新) を選択します。

を使用してランタイムプロパティを管理する CLI

AWS CLI」を使用してランタイムプロパティを追加、更新、削除できます。

このセクションでは、アプリケーションのランタイムプロパティを設定するためのAPIアクションのリクエスト例を示します。API アクションの入力にJSONファイルを使用する方法については、「」を参照してくださいManaged Service for Apache Flink APIのサンプルコード

注記

サンプルアカウント ID (012345678901) を、アカウント ID とともに次の例で示します。

アプリケーションの作成時にランタイムプロパティを追加する

以下の「CreateApplication」アクションリクエスト例では、アプリケーションの作成時に 2 つのランタイムプロパティグループ (ProducerConfigPropertiesConsumerConfigProperties) を追加します。

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

既存のアプリケーションでランタイムプロパティを追加および更新する

以下の「UpdateApplication」アクションリクエスト例は、既存のアプリケーションのランタイムプロパティを追加または更新します。

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

プロパティグループに対応するランタイムプロパティがないキーを使用すると、Apache Flink 用 Managed Service はそのキーと値のペアを新しいプロパティとして追加します。プロパティグループ内の既存のランタイムプロパティのキーを使用すると、Apache Flink 用 Managed Service はそのプロパティ値を更新します。

ランタイムプロパティを削除する

以下の「UpdateApplication」アクションリクエスト例では、既存のアプリケーションからすべてのランタイムプロパティとプロパティグループを削除します。

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

既存のプロパティグループまたはプロパティグループ内の既存のプロパティキーを省略すると、そのプロパティグループまたはプロパティは削除されます。

Managed Service for Apache Flink アプリケーションのランタイムプロパティにアクセスする

Java アプリケーションコード内のランタイムプロパティは、Map<String, Properties> オブジェクトを返す静的 KinesisAnalyticsRuntime.getApplicationProperties() メソッドを使用して取得します。

次の Java コードの例では、アプリケーションのランタイムプロパティを取得します。

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

プロパティグループを (Java.Util.Properties オブジェクトとして) 次のように取得します。

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

Apache Flink のソースまたはシンクは、通常、個々のプロパティを取得せずに Properties オブジェクトを渡すことで設定します。以下のコード例は、ランタイムプロパティから取得した Properties オブジェクトを渡して Flink ソースを作成する方法を示しています。

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; }

コード例については、Managed Service for Apache Flink アプリケーションの作成と使用の例 を参照してください。