JavaScript를 사용하여 KV 모듈을 Cloudflare 작업자로 가져오는 방법

KV

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 블록을 포함하고 유용한 오류 메시지를 제공하면 애플리케이션을 더욱 안정적이고 유지 관리하기 쉽게 만드는 데 도움이 될 수 있습니다.

  1. KV 네임스페이스를 내 작업자에 바인딩하려면 어떻게 해야 합니까?
  2. 다음 구성을 추가하면 KV 네임스페이스를 바인딩할 수 있습니다. 파일: .
  3. Cloudflare KV의 최종 일관성이란 무엇입니까?
  4. 최종 일관성으로 인해 한 곳에서 KV에 대한 수정 사항이 즉시 전 세계로 퍼지지 않을 수도 있습니다. 즉각적인 것은 아니지만 이 지연은 많은 응용 프로그램에 적합합니다.
  5. KV와 상호작용할 때 오류를 어떻게 처리할 수 있나요?
  6. 시간 초과와 같은 가능한 문제를 관리하려면 다음을 사용하십시오. KV 작업 주변을 차단합니다. 나중에 문제를 해결하기 위해 오류를 보고할 수 있습니다.
  7. KV에 JSON과 같은 복잡한 데이터 유형을 저장할 수 있습니까?
  8. 실제로 JSON 데이터는 먼저 다음을 사용하여 문자열로 변환하여 저장할 수 있습니다. , 그런 다음 데이터를 얻으려면.
  9. KV에 저장하기 전에 데이터를 검증하려면 어떻게 해야 합니까?
  10. 사용하기 전에 데이터를 저장하려면 데이터가 예상한 형식을 따르는지 확인하는 유효성 검사 함수를 작성하세요.

영구 데이터를 효과적으로 관리하려면 Cloudflare KV 저장소를 작업자에 통합해야 합니다. 기본 가져오기 및 넣기 요청을 사용하고 KV 네임스페이스를 올바르게 바인딩하면 데이터를 쉽게 저장하고 검색할 수 있습니다. 도우미 기능을 사용하고 문법을 이해하면 개발이 더 원활하게 진행됩니다.

실수 및 일관성 문제를 처리하는 방법을 포함하여 모범 사례를 준수하는지 확인하십시오. 이 기반을 사용하면 Cloudflare Workers에서 다양한 시나리오에 대해 KV 스토어를 효과적으로 활용하는 확장 가능하고 안정적인 앱을 만들 수 있습니다.

  1. Cloudflare Workers 및 KV 통합 사용에 대한 정보는 Cloudflare 공식 문서에서 확인할 수 있습니다. 자세한 내용은 다음을 방문하세요. Cloudflare 작업자 KV API .
  2. Wrangler CLI를 사용하여 Cloudflare Worker를 관리하는 방법에 대한 지침은 다음을 참조하세요. Cloudflare Wrangler 문서 .
  3. Cloudflare KV 및 최종 일관성 처리에 대한 훌륭한 튜토리얼은 다음에서 확인할 수 있습니다. Cloudflare Workers KV의 작동 방식 .