

Doc AWS SDK 예제 GitHub 리포지토리에서 더 많은 SDK 예제를 사용할 수 있습니다. [AWS](https://github.com/awsdocs/aws-doc-sdk-examples) 

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

# CloudFront Functions 뷰어 요청에서 키-값 페어 사용
<a name="cloudfront_example_cloudfront_functions_kvs_key_value_pairs_section"></a>

다음 코드 예제에서는 CloudFront Functions 뷰어 요청에서 키-값 페어를 사용하는 방법을 보여줍니다.

------
#### [ JavaScript ]

**CloudFront Functions를 위한 JavaScript 런타임 2.0**  
 GitHub에 더 많은 내용이 있습니다. [CloudFront Functions 예제](https://github.com/aws-samples/amazon-cloudfront-functions/tree/main/kvs-key-value-pairs) 리포지토리에서 전체 예시를 찾고 설정 및 실행하는 방법을 배워보세요.

```
import cf from 'cloudfront';

// This fails if there is no key value store associated with the function
const kvsHandle = cf.kvs();

// Remember to associate the KVS with your function before referencing KVS in your code.
// https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/kvs-with-functions-associate.html
async function handler(event) {
    const request = event.request;
    // Use the first segment of the pathname as key
    // For example http(s)://domain/<key>/something/else
    const pathSegments = request.uri.split('/')
    const key = pathSegments[1]
    try {
        // Replace the first path of the pathname with the value of the key
        // For example http(s)://domain/<value>/something/else
        pathSegments[1] = await kvsHandle.get(key);
        const newUri = pathSegments.join('/');
        console.log(`${request.uri} -> ${newUri}`)
        request.uri = newUri;
    } catch (err) {
        // No change to the pathname if the key is not found
        console.log(`${request.uri} | ${err}`);
    }
    return request;
}
```

------