Apache Flink용 관리 서비스에서 런타임 속성 사용 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Apache Flink용 관리 서비스에서 런타임 속성 사용

애플리케이션 코드를 다시 컴파일하지 않고도 런타임 속성을 사용하여 애플리케이션을 구성할 수 있습니다.

콘솔을 사용하여 런타임 속성을 관리합니다.

를 사용하여 Apache Flink용 관리 서비스 애플리케이션에서 런타임 속성을 추가, 업데이트 또는 제거할 수 있습니다. AWS Management Console

참고

지원되는 이전 버전의 Apache Flink를 사용 중이고 기존 애플리케이션을 Apache Flink 1.19.1로 업그레이드하려면 인플레이스 Apache Flink 버전 업그레이드를 사용하면 됩니다. 인플레이스 버전 업그레이드를 사용하면 스냅샷, 로그, 메트릭, 태그, Flink 구성 등을 포함하여 Apache Flink 버전 ARN 전반에서 단일 버전에 대한 애플리케이션 추적 기능을 유지할 수 있습니다. 이 기능은 모든 상태에서 사용할 수 있습니다. RUNNING READY 자세한 내용은 아파치 플링크의 인플레이스 버전 업그레이드 사용 단원을 참조하십시오.

Managed Service for Apache Flink에 대한 런타임 속성 업데이트
  1. /flink에서 아파치 Flink용 관리형 서비스 콘솔을 엽니다. https://console.aws.amazon.com

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

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

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

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

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

를 사용하여 런타임 속성을 관리합니다. CLI

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

이 섹션에는 응용 프로그램의 런타임 속성을 구성하기 위한 API 작업에 대한 예제 요청이 포함되어 있습니다. API작업 입력에 JSON 파일을 사용하는 방법에 대한 자세한 내용은 을 참조하십시오아파치 플링크용 매니지드 서비스 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": [] } } }
중요

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

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

코드 예제는 Apache Flink용 관리 서비스 애플리케이션을 만들고 사용하는 예제 섹션을 참조하세요.