

# 키 값 저장소를 위한 도우미 메서드
<a name="functions-custom-methods"></a>

**참고**  
CloudFront Functions의 키 값 저장소 헬퍼 메서드 호출은 AWS CloudTrail 데이터 이벤트를 트리거하지 않습니다. 이러한 이벤트는 CloudTrail 이벤트 기록에 로그되지 않습니다. 자세한 내용은 [AWS CloudTrail을 사용하여 Amazon CloudFront API 직접 호출 로깅](logging_using_cloudtrail.md) 섹션을 참조하세요.

이 섹션은 생성한 함수에 [CloudFront 키 값 저장소](kvs-with-functions.md)를 사용하여 키 값을 포함하는 경우에 적용됩니다. CloudFront Functions에는 키 값 저장소에서 값을 읽을 수 있는 세 가지 도우미 메서드를 제공하는 모듈이 있습니다.

함수 코드에서 이 모듈을 사용하려면 [키 값 저장소를 함수와 연결](kvs-with-functions-associate.md)했는지 확인합니다.

그런 다음 함수 코드의 첫 줄에 다음 명령문을 포함시킵니다.

```
import cf from 'cloudfront';
const kvsHandle = cf.kvs();
```



## `get()` 메서드
<a name="functions-custom-methods-get"></a>

이 메서드를 사용하여 지정한 키 이름의 키 값을 반환합니다.

**요청**

```
get("key", options);
```
+ `key`: 값을 가져와야 하는 키의 이름입니다.
+ `options`: 한 가지 옵션으로 `format`이 있습니다. 이 옵션을 사용하면 함수가 데이터를 올바르게 파싱합니다. 가능한 값은 다음과 같습니다.
  + `string`: (기본값) UTF8 인코딩
  + `json` 
  + `bytes`: 원시 바이너리 데이터 버퍼

**요청 예제**

```
const value = await kvsHandle.get("myFunctionKey", { format: "string"});
```

**응답**

응답은 `options`를 사용하여 요청한 형식의 값으로 해석되는 `promise`입니다. 기본적으로 값은 문자열로 반환됩니다.

### 오류 처리
<a name="error-handling-exists-method"></a>

요청된 키가 관련 키 값 저장소에 존재하지 않는 경우 `get()` 메서드는 오류를 반환합니다. 이 사용 사례를 관리하기 위해 코드에 `try` 및 `catch` 블록을 추가할 수 있습니다.

**주의**  
promise 결합자(예: `Promise.all`, `Promise.any`) 및 promise 체인 메서드(예: `then` 및 `catch`)를 사용하려면 많은 함수 메모리 사용량이 필요할 수 있습니다. 함수가 [최대 함수 메모리](cloudfront-limits.md#limits-functions) 할당량을 초과하면 실행에 실패합니다. 이 오류를 방지하려면 `await` 구문을 순차적으로 사용하거나 루프에서 여러 값을 요청하는 것이 좋습니다.  
**예제**  

```
var value1 = await kvs.get('key1');
var value2 = await kvs.get('key2');
```
현재 다음 예제와 같이 promise 결합자를 사용하여 여러 값을 가져오더라도 성능이 향상되지 않습니다.  

```
var values = await Promise.all([kvs.get('key1'), kvs.get('key2'),]);
```

## `exists()` 메서드
<a name="functions-custom-methods-exists"></a>

키가 키 값 저장소에 존재하는지 여부를 지정하려면 이 메서드를 사용합니다.

**요청**

```
exists("key");
```

**요청 예제**

```
const exist = await kvsHandle.exists("myFunctionkey");
```

**응답**

응답은 부울(`true` 또는 `false`)을 반환하는 `promise`입니다. 이 값은 키가 키 값 저장소에 존재하는지 여부를 지정합니다.

## `meta()` 메서드
<a name="functions-custom-methods-meta"></a>

이 메서드를 사용하여 키 값 저장소에 대한 메타데이터를 반환합니다.

**요청**

```
meta();
```

**요청 예제**

```
const meta = await kvsHandle.meta();
```

**응답**

응답은 다음과 같은 속성을 가진 객체로 확인되는 `promise`입니다.
+ `creationDateTime`: 키 값 저장소가 생성된 ISO 8601 형식의 날짜 및 시간입니다.
+ `lastUpdatedDateTime`: 키 값 저장소가 소스에서 마지막으로 동기화된 ISO 8601 형식의 날짜 및 시간입니다. 엣지로의 전파 시간은 값에 포함되지 않습니다.
+ `keyCount`: 소스와의 마지막 동기화 이후 KVS에 있는 키의 총 개수입니다.

**응답 예제**

```
{keyCount:3,creationDateTime:2023-11-30T23:07:55.765Z,lastUpdatedDateTime:2023-12-15T03:57:52.411Z}
```