Cloudflare Genel

Cloudflare Workers ile Sunucusuz Uygulama Geliştirme

Cloudflare Workers ile Sunucusuz Uygulama Geliştirme

Cloudflare Workers ile Sunucusuz Uygulama Geliştirme

Günümüz web uygulamaları, performans ve ölçeklenebilirlik gereksinimleri nedeniyle sunucusuz mimarilere yönelmektedir. Cloudflare Workers, geliştiricilere bu ihtiyaçları karşılamak için güçlü bir platform sunar. Bu makalede, Cloudflare Workers ile nasıl sunucusuz uygulamalar geliştirebileceğinizi adım adım anlatacağız.

Cloudflare Workers Nedir?

Cloudflare Workers, Cloudflare’ın kenar ağında (edge network) JavaScript kodu çalıştırmanızı sağlayan bir sunucusuz platformdur. Bu sayede, uygulamanız dünyanın her yerindeki kullanıcılara düşük gecikme süresiyle hizmet verebilir.

Neden Cloudflare Workers?

Performans: Kullanıcı istekleri kullanıcıya en yakın noktada işlenir.
Ölçeklenebilirlik: Altyapı yönetimi olmadan otomatik ölçeklenir.
Maliyet: Kullanılan kaynak kadar ödeme modeli ile maliyet etkin.

Başlarken

1. Cloudflare Hesabı Oluşturma

İlk adım olarak, bir Cloudflare hesabına ihtiyacınız var. Cloudflare üzerinden ücretsiz bir hesap oluşturabilirsiniz.

2. Wrangler CLI Kurulumu

Cloudflare Workers projelerini yönetmek için Wrangler CLI aracını kullanacağız.

Node.js ve NPM yüklü olduğundan emin olun.

“`bash
npm install -g @cloudflare/wrangler
“`

3. Wrangler ile Oturum Açma

Cloudflare hesabınızla Wrangler’ı yetkilendirin:

“`bash
wrangler login
“`

Tarayıcıda açılan sayfadan izin verin.

4. Yeni Bir Proje Oluşturma

Bir Workers projesi oluşturmak için:

“`bash
wrangler init my-worker
cd my-worker
“`

5. Projeyi Düzenleme

src/index.js dosyasını açın ve aşağıdaki gibi basit bir “Hello, World!” uygulaması yazın:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  return new Response('Hello, World!', {
    headers: { 'content-type': 'text/plain' },
  })
}

6. Projeyi Yayına Alma

Öncelikle wrangler.toml dosyasını düzenleyin ve account_id ve zone_id bilgilerinizi girin.

“`toml
name = “my-worker”
type = “javascript”
account_id = “YOUR_ACCOUNT_ID”
zone_id = “YOUR_ZONE_ID”
route = “yourdomain.com/*”
“`

Ardından, projeyi yayınlayın:

“`bash
wrangler publish
“`

7. DNS Ayarları ve Yönlendirme

Cloudflare üzerinden alan adınızın DNS ayarlarını yapılandırın ve gerektiğinde sanal sunucu hizmetleri ile entegre edin.

Gelişmiş Kullanımlar

API Oluşturma

Cloudflare Workers ile RESTful API’ler geliştirebilirsiniz.

async function handleRequest(request) {
  const url = new URL(request.url)
  if (url.pathname === '/api/data') {
    const data = { message: 'Bu bir API yanıtıdır.' }
    return new Response(JSON.stringify(data), {
      headers: { 'content-type': 'application/json' },
    })
  }
  return new Response('Sayfa bulunamadı', { status: 404 })
}

KV Storage Kullanımı

Kalıcı veri depolamak için KV Storage kullanabilirsiniz.

1. KV Namespaces oluşturun:

“`bash
wrangler kv:namespace create “MY_NAMESPACE”
“`

2. wrangler.toml dosyasına ekleyin:

“`toml
kv_namespaces = [
{ binding = “MY_NAMESPACE”, id = “KV_NAMESPACE_ID” }
] “`

3. Kodunuzda kullanın:

async function handleRequest(request) {
  const value = await MY_NAMESPACE.get('key')
  return new Response(Değer: ${value})
}

Performans ve Ölçeklenebilirlik

Cloudflare Workers, global ağ üzerinde çalıştığından yüksek performans sunar. Ancak yoğun trafik alan uygulamalar için doğru yapılandırma ve optimizasyon önemlidir. Daha fazla kaynak gerektiğinde, bulut sunucu çözümleri ile entegrasyon düşünebilirsiniz.

Güvenlik İpuçları

CORS Ayarları: API’leriniz için doğru CORS başlıklarını ayarlayın.
Rate Limiting: Kötü niyetli istekleri engellemek için oran sınırlaması uygulayın.
Veri Doğrulama: Kullanıcı girdilerini daima doğrulayın.

Sonraki Adımlar

Durable Objects: Daha karmaşık veri modelleri için kullanın.
Third-party Entegrasyonlar: Harici servislerle etkileşim kurun.
Sertifikalar ve HTTPS: Güvenli bağlantılar için SSL sertifikalarını yapılandırın.

Cloudflare Workers ile sunucusuz uygulama geliştirmek, ölçeklenebilir ve performanslı çözümler üretmenizi sağlar. İhtiyaçlarınıza göre ek hizmetler için fiziksel sunucu seçeneklerine göz atabilirsiniz.