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 전체에서 단일 에 대한 애플리케이션 추적성을 유지할 수 있습니다. RUNNINGREADY 상태에서 이 기능을 사용할 수 있습니다. 자세한 내용은 Apache Flink에 현재 위치 버전 업그레이드 사용 단원을 참조하십시오.

Managed Service for Apache Flink에 대한 런타임 속성 업데이트
  1. https://console.aws.amazon.com/flink에서 Managed Service for Apache Flink 콘솔 열기

  2. Managed Service for Apache Flink 애플리케이션을 선택하세요. 애플리케이션 세부 정보를 선택합니다.

  3. 애플리케이션 페이지에서 구성을 선택합니다.

  4. 속성 섹션을 확장합니다.

  5. 속성 섹션의 컨트롤을 사용하여 키-값 쌍으로 속성 그룹을 정의할 수 있습니다. 이러한 컨트롤을 사용하여 속성 그룹 및 런타임 속성을 추가, 업데이트 또는 제거할 수 있습니다.

  6. 업데이트를 선택합니다.

를 사용하여 런타임 속성 관리 CLI

AWS CLI를 사용하여 런타임 속성을 추가, 업데이트 또는 제거할 수 있습니다.

이 섹션에는 애플리케이션의 런타임 속성을 구성하기 위한 API 작업에 대한 요청의 예가 포함되어 있습니다. API 작업에 대한 입력에 JSON 파일을 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요Managed Service for Apache Flink API 예제 코드.

참고

샘플 계정 ID 교체(012345678901)를 계정 ID와 함께 사용합니다.

애플리케이션 생성 시 런타임 속성 추가

CreateApplication 작업에 대한 다음 예제 요청은 애플리케이션을 생성할 때 두 개의 런타임 속성 그룹(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" } } ] } } }
참고

속성 그룹에 해당하는 런타임 속성이 없는 키를 사용하는 경우 Managed Service for Apache Flink는 키-값 쌍을 새 속성으로 추가합니다. 속성 그룹의 기존 런타임 속성에 키를 사용하는 경우 Managed Service for Apache Flink에서 속성 값을 업데이트합니다.

런타임 속성 제거

UpdateApplication 작업에 대한 다음 예제 요청은 기존 애플리케이션에서 모든 런타임 속성과 속성 그룹을 제거합니다.

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

속성 그룹에서 기존 속성 그룹 또는 기존 속성 키를 생략하면 해당 속성 그룹 또는 속성이 제거됩니다.

Managed Service for Apache Flink 애플리케이션의 런타임 속성 액세스

Map<String, Properties> 객체를 반환하는 정적 KinesisAnalyticsRuntime.getApplicationProperties() 메서드를 사용하여 Java 애플리케이션 코드에서 런타임 속성을 검색합니다.

다음은 애플리케이션의 런타임 속성을 검색하는 Java 코드 예제입니다.

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

다음과 같이 속성 그룹(Java.Util.Properties객체)을 검색합니다.

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

일반적으로 개별 속성을 검색할 필요 없이 Properties 객체를 전달하여 Apache Flink 소스 또는 싱크를 구성합니다. 다음 코드 예제는 런타임 속성에서 검색된 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 애플리케이션 생성 및 작업 예제 섹션을 참조하세요.