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.