JavaScript를 사용하여 작업자에서 Cloudflare KV 설정
네트워크 에지에서 서버리스, 경량 애플리케이션을 실행하기 위한 점점 더 일반적인 옵션은 Cloudflare Workers입니다. Cloudflare KV(키-값) 저장소를 사용하여 데이터를 저장하고 검색하는 기능은 Cloudflare Workers의 중요한 구성 요소입니다. 그러나 KV 모듈을 Cloudflare Worker에 통합하는 것은 이 생태계에 익숙하지 않은 사람들에게는 다소 어려워 보일 수 있습니다.
특히 v3.78.12와 같은 버전에서 Wrangler CLI를 사용하여 Cloudflare Workers를 관리할 때 KV 스토어를 통합하려고 할 때 몇 가지 문제가 발생할 수 있습니다. KV에 대한 모듈 또는 가져오기 구문의 올바른 사용법을 이해하는 데 어려움을 겪은 개발자는 여러분뿐만이 아닙니다. 다양한 인터넷 리소스에서 제안하는 모듈을 가져오는 방법에는 여러 가지가 있을 수 있지만 정답을 찾는 것은 어려울 수 있습니다.
이 문서에서는 JavaScript를 사용하여 Cloudflare 작업자에서 KV 모듈을 올바르게 가져오고 사용하는 데 필요한 절차를 살펴보겠습니다. 요청 넣기 및 받기를 사용할 수 있도록 올바르게 구성하는 방법을 살펴보겠습니다. 애플리케이션에서 Cloudflare KV의 최대 기능을 활용하려면 이 절차를 이해하는 것이 중요합니다.
백엔드 프로그래밍 또는 Cloudflare 작업자에 대한 경험 수준에 관계없이 이 자습서는 절차의 각 단계를 안내합니다. 마지막에는 기본 JavaScript 코드를 사용하여 KV 모듈과 통신하고 설정하는 방법을 이해하게 됩니다.
명령 | 사용예 |
---|---|
env.MY_KV_NAMESPACE.put() | Cloudflare용 KV 저장소에 값을 보유합니다. 예를 들어, wait env.MY_KV_NAMESPACE.put('key1', 'value')는 작업자가 영구 데이터를 유지하는 데 필요한 데이터가 KV 저장소에 저장되는 방식입니다. |
env.MY_KV_NAMESPACE.get() | Cloudflare의 KV 저장소에서 값을 추출합니다. Const 값 = 대기 env.MY_KV_NAMESPACE.get('key1'); 예시로 데이터를 작업자로 다시 읽기 위해 이 명령은 해당 키를 통해 KV에 저장된 데이터를 검색합니다. |
addEventListener('fetch') | Sets up an event listener for the fetch event, which is triggered when a request is made to the Worker. Example: addEventListener('fetch', event =>작업자에 대한 요청이 있을 때 트리거되는 가져오기 이벤트에 대한 이벤트 리스너를 설정합니다. 예: addEventListener('fetch', event => {...}); 이는 작업자가 들어오는 HTTP 요청을 처리하는 방법을 정의하는 데 사용됩니다. |
event.respondWith() | 클라이언트에게 응답을 반환합니다. 작업자가 HTTP 요청에 어떻게 반응해야 하는지 지정하는 중요한 방법은 event.respondWith(handleRequest(event.request)); 이는 일반적으로 KV 스토어의 정보를 반환합니다. |
handleRequest() | 쿼리 및 응답을 처리하기 위해 특별히 만들어진 함수입니다. handlerRequest(request)를 예로 사용하면 async function {...} 여기에는 KV를 처리하고 GET 및 PUT와 같은 다양한 요청 메서드를 관리하기 위한 로직이 포함되어 있습니다. |
Response() | HTTP 응답에 대한 개체를 만듭니다. 예: return new Response('Hello World'); KV에서 검색된 응답에 자주 사용되는 이 명령은 요청 처리 후 클라이언트에 데이터를 반환하는 데 사용됩니다. |
putValue() | KV 데이터 저장을 위한 모듈식 도우미 기능입니다. PutValue(kv, key, value)는 비동기 함수 {...}의 예입니다. KV에 값을 저장하는 메커니즘이 이 함수에 포함되어 있어 코드 재사용성이 향상됩니다. |
getValue() | KV로부터 정보를 얻기 위한 모듈식 지원 기능입니다. async 함수 getValue(kv, key) 예를 들어 {...} 이 명령을 사용하면 putValue()와 마찬가지로 재사용 가능한 논리를 사용하여 KV에서 데이터를 더 쉽게 수집할 수 있습니다. |
wrangler.toml | 작업자의 KV 네임스페이스를 연결하는 구성 파일입니다. kv_namespaces = [{ 바인딩 = "MY_KV_NAMESPACE", id = "kv-id" }]가 이에 대한 예입니다. 작업자 스크립트에서 KV에 액세스하려면 작업자가 KV 스토어에 연결되는 방법을 설명하는 이 파일이 있어야 합니다. |
Cloudflare Worker KV 통합 이해
이전 예에 제공된 스크립트는 작업자 스크립트가 JavaScript를 사용하여 Cloudflare KV 스토어와 통신할 수 있도록 만들어졌습니다. 주요 역할은 다음을 사용하는 것입니다. 데이터 저장 및 검색을 위한 시스템입니다. Cloudflare Workers를 사용하면 서버리스 환경에서 작동하기 때문에 사용자 가까이에서 작은 스크립트를 실행할 수 있습니다. 키-값 데이터베이스인 KV 저장소는 영구 데이터를 관리하는 데 유용합니다. 첫 번째 예에서는 `put` 및 `get} 작업을 기본 작업으로 구성할 수 있습니다. 좀 더 정확하게 말하면 명령어는 그리고 각각 데이터를 저장하고 검색하는 데 사용되며 동적 콘텐츠를 관리하는 데 필요합니다.
`wrangler.toml} 구성 파일을 통해 KV 네임스페이스를 Cloudflare Worker에 바인딩하는 것은 기본적인 아이디어 중 하나입니다. 으로 지정하여 , 우리는 이 구성의 작업자에게. {env} 객체를 사용하면 작업자 스크립트가 바인딩된 후 이 KV 저장소에 액세스할 수 있습니다. 수신되는 HTTP 요청에 대해 이벤트 리스너를 구성하면 `addEventListener('fetch')` 메서드를 통해 작업자가 요청 메서드(GET 또는 PUT)에 따라 반응할 수 있습니다. 실시간 데이터 읽기 및 쓰기를 요구하는 API 요청을 관리할 때 이 기술은 매우 유용합니다.
두 번째 예는 기본 요청 처리 외에 KV 활동을 처리하는 보다 모듈화된 접근 방식을 보여줍니다. `putValue()` 및 `getValue()`와 같은 함수를 사용하여 KV 저장소에서 데이터를 저장하고 검색하는 구현 세부 사항을 추상화할 수 있습니다. 이러한 함수는 프로그램의 다른 섹션에서 사용될 수 있으므로 스크립트를 더 쉽게 재사용하고 유지 관리할 수 있습니다. 개발자는 관심사를 나누어 KV와 상호 작용하기 위한 논리가 소프트웨어 전반에 걸쳐 포함되고 일관성이 있는지 확인할 수 있습니다.
마지막 예는 Fetch API 기능을 Cloudflare KV 작업과 결합하는 방법을 보여줍니다. 이제 직원들은 HTTP 요청에 동적으로 반응할 수 있습니다. 개발자는 Cloudflare Workers를 사용하여 적응형 API를 생성하고 Fetch API를 활용하여 데이터 저장 및 검색 요청의 비동기 처리를 보장할 수 있습니다. `Response()` 객체의 중요성은 KV 작업의 결과를 클라이언트에 반환할 수 있는 HTTP 응답으로 압축하는 기능에 있습니다. Cloudflare Worker는 프레임워크와 모듈식 도우미 방법 덕분에 다양한 상황에서 성능을 유지하고 간단하게 테스트할 수 있습니다.
작업자에서 Cloudflare KV를 가져오고 사용하는 다양한 방법
JavaScript: Wrangler를 사용하여 Cloudflare KV Store에 액세스
// Cloudflare Worker script using Wrangler to access the KV store
export default {
async fetch(request, env) {
// Put request to store a value in KV
await env.MY_KV_NAMESPACE.put('key1', 'Hello, Cloudflare KV!');
// Get request to retrieve a value from KV
const value = await env.MY_KV_NAMESPACE.get('key1');
return new Response(`Stored value: ${value}`);
},
};
// Ensure that MY_KV_NAMESPACE is bound to the Worker in the wrangler.toml
대체 접근 방식: Cloudflare Worker에서 Fetch API 사용
JavaScript: 작업자의 Cloudflare KV에서 데이터 가져오기
// Cloudflare Worker script to fetch data from a KV namespace
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
// Fetch data from KV store using env bindings
const value = await MY_KV_NAMESPACE.get('key2');
return new Response(value || 'Value not found');
}
// Ensure 'MY_KV_NAMESPACE' is properly defined in wrangler.toml
모듈식 접근 방식: KV 작동을 위한 별도의 기능
JavaScript: Cloudflare KV 작업을 위한 모듈식 기능
export default {
async fetch(request, env) {
if (request.method === 'PUT') {
const result = await putValue(env.MY_KV_NAMESPACE, 'key3', 'Modular KV Put!');
return new Response(result);
} else if (request.method === 'GET') {
const value = await getValue(env.MY_KV_NAMESPACE, 'key3');
return new Response(`Retrieved value: ${value}`);
}
},
};
async function putValue(kv, key, value) {
await kv.put(key, value);
return 'Value stored successfully!';
}
async function getValue(kv, key) {
return await kv.get(key);
}
작업자의 Cloudflare KV 관리 모범 사례
성능과 보안을 최적화하려면 Cloudflare KV를 작업자에 통합할 때 몇 가지 권장 사례를 고려하는 것이 중요합니다. KV 저장소가 올바르게 바인딩되어 있는지 확인하십시오. 구성 파일은 초보자가 자주 잊어버리는 작업 중 하나입니다. 잘못된 바인딩으로 인해 작업자 스크립트가 KV 저장소에 액세스하려고 하면 런타임 문제가 발생할 수 있습니다. 그것은 보장된다 네임스페이스를 올바르게 정의하여 작업자 환경에서 식별하고 사용할 수 있습니다.
데이터 검색을 효과적으로 관리하는 것도 또 다른 중요한 요소입니다. 최종 일관성을 고려하면 , 가져온 데이터가 다른 영역에서 다소 동기화되지 않을 수 있습니다. 특히 시간에 민감한 데이터를 처리하는 경우에는 이러한 일관성 모델을 염두에 두고 애플리케이션을 설계하는 것이 중요합니다. 덜 중요한 데이터에서는 이러한 지연이 중요하지 않지만 전역 설정에서 KV를 사용할 때는 이 동작을 이해하는 것이 필수적입니다.
마지막으로 보안과 오류 처리를 고려해야 합니다. 다른 서버리스 설정과 마찬가지로 Cloudflare 작업자도 강력한 오류 처리가 필요합니다. 특히 KV와 같은 외부 스토리지 시스템으로 작업할 때 더욱 그렇습니다. KV에 데이터를 넣기 전에 유효성이 검증되었는지 확인하고 다음과 같은 잠재적인 어려움을 처리하십시오. 또는 연결 문제가 정중하게 발생합니다. KV 작업에 try-catch 블록을 포함하고 유용한 오류 메시지를 제공하면 애플리케이션을 더욱 안정적이고 유지 관리하기 쉽게 만드는 데 도움이 될 수 있습니다.
- KV 네임스페이스를 내 작업자에 바인딩하려면 어떻게 해야 합니까?
- 다음 구성을 추가하면 KV 네임스페이스를 바인딩할 수 있습니다. 파일: .
- Cloudflare KV의 최종 일관성이란 무엇입니까?
- 최종 일관성으로 인해 한 곳에서 KV에 대한 수정 사항이 즉시 전 세계로 퍼지지 않을 수도 있습니다. 즉각적인 것은 아니지만 이 지연은 많은 응용 프로그램에 적합합니다.
- KV와 상호작용할 때 오류를 어떻게 처리할 수 있나요?
- 시간 초과와 같은 가능한 문제를 관리하려면 다음을 사용하십시오. KV 작업 주변을 차단합니다. 나중에 문제를 해결하기 위해 오류를 보고할 수 있습니다.
- KV에 JSON과 같은 복잡한 데이터 유형을 저장할 수 있습니까?
- 실제로 JSON 데이터는 먼저 다음을 사용하여 문자열로 변환하여 저장할 수 있습니다. , 그런 다음 데이터를 얻으려면.
- KV에 저장하기 전에 데이터를 검증하려면 어떻게 해야 합니까?
- 사용하기 전에 데이터를 저장하려면 데이터가 예상한 형식을 따르는지 확인하는 유효성 검사 함수를 작성하세요.
영구 데이터를 효과적으로 관리하려면 Cloudflare KV 저장소를 작업자에 통합해야 합니다. 기본 가져오기 및 넣기 요청을 사용하고 KV 네임스페이스를 올바르게 바인딩하면 데이터를 쉽게 저장하고 검색할 수 있습니다. 도우미 기능을 사용하고 문법을 이해하면 개발이 더 원활하게 진행됩니다.
실수 및 일관성 문제를 처리하는 방법을 포함하여 모범 사례를 준수하는지 확인하십시오. 이 기반을 사용하면 Cloudflare Workers에서 다양한 시나리오에 대해 KV 스토어를 효과적으로 활용하는 확장 가능하고 안정적인 앱을 만들 수 있습니다.
- Cloudflare Workers 및 KV 통합 사용에 대한 정보는 Cloudflare 공식 문서에서 확인할 수 있습니다. 자세한 내용은 다음을 방문하세요. Cloudflare 작업자 KV API .
- Wrangler CLI를 사용하여 Cloudflare Worker를 관리하는 방법에 대한 지침은 다음을 참조하세요. Cloudflare Wrangler 문서 .
- Cloudflare KV 및 최종 일관성 처리에 대한 훌륭한 튜토리얼은 다음에서 확인할 수 있습니다. Cloudflare Workers KV의 작동 방식 .