

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

# Managed Service for Apache Flink에서 런타임 속성 사용
<a name="how-properties"></a>

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

**Topics**
+ [콘솔을 사용하여 런타임 속성 관리](#how-properties-console)
+ [CLI를 사용하여 런타임 속성 관리](#how-properties-cli)
+ [Managed Service for Apache Flink 애플리케이션의 런타임 속성 액세스](#how-properties-access)

## 콘솔을 사용하여 런타임 속성 관리
<a name="how-properties-console"></a>

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

**참고**  
지원되는 이전 Apache Flink 버전을 사용 중이며 기존 애플리케이션을 Apache Flink 1.19.1로 업그레이드하려는 경우, 인플레이스 Apache Flink 버전 업그레이드를 사용하여 업그레이드할 수 있습니다. 인플레이스 버전 업그레이드를 사용하면 스냅샷, 로그, 지표, 태그, Flink 구성 등을 포함하여 Apache Flink 버전 전반에 걸쳐 단일 ARN을 기준으로 애플리케이션 추적성을 유지할 수 있습니다. 이 기능은 `RUNNING` 및 `READY` 상태에서 사용할 수 있습니다. 자세한 내용은 [Apache Flink에 인플레이스 버전 업그레이드 사용](how-in-place-version-upgrades.md) 단원을 참조하십시오.

**Managed Service for Apache Flink에 대한 런타임 속성 업데이트**

1. 에 로그인 AWS Management Console하고 https://console.aws.amazon.com/flink Amazon MSF 콘솔을 엽니다.

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

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

1. **속성** 섹션을 확장합니다.

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

1. **업데이트**를 선택합니다.

## CLI를 사용하여 런타임 속성 관리
<a name="how-properties-cli"></a>

[AWS CLI](https://docs.aws.amazon.com/cli)를 사용하여 런타임 속성을 추가, 업데이트 또는 제거할 수 있습니다.

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

**참고**  
다음 예제의 샘플 계정 ID (*`012345678901`*)을(를) 계정 ID로 바꾸세요.

### 애플리케이션 생성 시 런타임 속성 추가
<a name="how-properties-create"></a>

[https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) 작업에 대한 다음 예제 요청은 애플리케이션을 생성할 때 두 개의 런타임 속성 그룹(`ProducerConfigProperties` 및 `ConsumerConfigProperties`)을 추가합니다.

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

### 기존 애플리케이션의 런타임 속성 추가 및 업데이트
<a name="how-properties-update"></a>

[https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html) 작업에 대한 다음 예제 요청은 기존 응용 프로그램의 런타임 속성을 추가하거나 업데이트합니다.

```
{
  "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에서 속성 값을 업데이트합니다.

### 런타임 속성 제거
<a name="how-properties-remove"></a>

[https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html) 작업에 대한 다음 예제 요청은 기존 애플리케이션에서 모든 런타임 속성과 속성 그룹을 제거합니다.

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

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

## Managed Service for Apache Flink 애플리케이션의 런타임 속성 액세스
<a name="how-properties-access"></a>

`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 애플리케이션 생성 및 사용 예제](examples-collapsibles.md) 섹션을 참조하세요.