Aracılığıyla paylaş


Azure İşlevleri ile Sunucusuz Node.js Uygulamaları Geliştirme

Azure İşlevleri, kolayca ölçeklenebilir, isteğe bağlı HTTP uç noktaları geliştirmenizi sağlayan güçlü bir sunucusuz altyapı sağlar. JavaScript veya TypeScript kullanarak çeşitli olaylara yanıt veren sunucusuz uygulamalar oluşturabilir ve sunucuları yönetme konusunda endişelenmeden kod yazmaya odaklanmanızı sağlayabilirsiniz. Bu kılavuz, Azure İşlevlerini kullanarak sunucusuz Node.js uygulamaları geliştirmeye başlamanıza ve diğer Azure hizmetleriyle sorunsuz bir şekilde tümleştirmenize yardımcı olur.

İşlev kaynağı nedir?

Azure İşlevi kaynağı, tek bir Azure coğrafi konumundaki tüm ilgili işlevler için mantıksal birimdir. Kaynak, birbirinden bağımsız veya giriş veya çıkış bağlamalarıyla ilgili olabilecek tek bir işlev veya birçok işlev içerebilir. Birçok yaygın işlev arasından seçim yapabilir veya kendi işlevlerinizi oluşturabilirsiniz.

İşlev kaynak ayarları ortam değişkenleri, kimlik doğrulaması, günlük kaydı ve CORS gibi tipik sunucusuz yapılandırmaları içerir.

Dayanıklı, durum bilgisi olan işlevler

Dayanıklı İşlevler durumunu koruyun veya Azure'da uzun süre çalışan işlevleri yönetin. JavaScript'te ilk dayanıklı işlevinizi oluşturun.

Statik web uygulamaları işlevleri içerir

Sunucusuz API'lere de ihtiyaç duyan statik bir ön uç istemci uygulaması (Angular, React veya Vue gibi) geliştirirken, her ikisini birlikte paketlemek için işlevlerle Statik Web uygulamalarını kullanın.

İstemci uygulamasından API'ye ara sunucu

API'nizi Statik web uygulamanızla dağıtmayı planlıyorsanız, istemci uygulamanızın API çağrılarına ara sunucu eklemeniz gerekmez. Azure İşlevleri uygulamasını yönetilen uygulama olarak dağıttığınızda ara sunucu sizin için oluşturulur.

Statik Web Uygulaması ve Azure İşlevleri ile yerel olarak geliştirme yaptığınızda , Azure Static Web Apps CLI yerel ara sunucu sağlar.

Azure İşleviniz için yapılandırmanız gereken yaygın güvenlik ayarları

Azure İşlevinizin güvenliğini sağlamak için aşağıdaki yaygın ayarlar yapılandırılmalıdır:

  • Kimlik doğrulaması ve yetkilendirme:
    • Güçlü kimlik doğrulaması için Microsoft Entra Id (eski adıyla Azure Active Directory) kullanın. İşlev uygulamanızı üretim iş yükleri için OAuth2 belirteçleri gerektirecek şekilde yapılandırın.
    • Hassas uygulamalar için işlev anahtarlarını kullanmaktan kaçının. Bunun yerine Microsoft Entra ID ile tümleştirin veya işlev kodunuzda JWT belirteçlerini doğrulayın.
    • İşlev uygulamanızın kimliğini diğer Azure kaynaklarıyla doğrulamak için yönetilen kimlikleri kullanarak her işlevin yalnızca ihtiyaç duyduğu erişimi almasını sağlayın.
  • Yapılandırma ayarları:
    • Uygulama ayarları - Güvenliği etkilemeyen ayarlar için Uygulama ayarları oluşturun.
    • Gizli diziler ve anahtarlar - Güvenliği etkileyen tüm ayarlar için şu katmanlı yaklaşımı kullanın:
      1. İlk olarak, desteklenen yerlerde kimlik doğrulaması için Microsoft Entra Id kullanın.
      2. Entra Id'yi desteklemeyen tümleştirmeler için gizli dizileri Azure Key Vault'ta depolayın ve bu ayarları Key Vault'unuzdan çekin.
      3. Koda veya yapılandırma dosyalarına sırları hiçbir zaman yerleştirmeyin.
    • Diğer platform güvenlik ayarları için bkz. Azure İşlevlerinin Güvenliğini Sağlama.
  • Ağ güvenliği:
    • CORS - istemci etki alanlarınızı yapılandırın. Tüm etki alanlarını gösteren öğesini kullanmayın *.
    • Sanal ağ tümleştirmesi - Ağ maruziyetini sınırlamak ve güvenilen kaynaklardan gelen trafiği kısıtlamak için özel uç noktaları veya sanal ağ tümleştirmesini kullanın.
  • HTTPS ve şifreleme:
    • HTTPS için TLS/SSL ayarı - API'niz varsayılan olarak HTTP ve HTTPS isteklerini kabul eder. HTTPS'yi yalnızca TLS/SSL ayarlarında etkinleştirin. İşlev uygulamanız güvenli bir alt etki alanında barındırılıyor olduğundan, bunu hemen kullanabilir (ile https) ve bir etki alanı adı satın almayı geciktirebilir ve hazır olana kadar etki alanı için sertifika kullanabilirsiniz.
  • Dağıtım ve izleme:
    • Dağıtım Yuvaları - veya stage gibi preflight bir dağıtım yuvası oluşturun ve bu yuvaya gönderme. Hazır olduğunuzda bu aşama yuvasını üretimle değiştirin. El ile üretime gönderme alışkanlığı edinme. Kod tabanınızın yuvadaki sürümü veya işlemeyi gösterebilmesi gerekir.
    • İşlevlerinizi ve denetim günlüklerinizi şüpheli etkinlikler için izlemek üzere gerçek zamanlı telemetri, uyarı ve anomali algılama için Application Insights'ı etkinleştirin.

Kapsamlı güvenlik yönergeleri için bkz. Azure İşlevlerinin Güvenliğini Sağlama.

Azure İşlevleri için barındırma seçenekleri

Gereksinimlerinize bağlı olarak Azure İşlevlerini farklı şekillerde barındırabilirsiniz:

Azure İşlevleri kaynak barındırma planları

Bir Azure İşlevleri kaynağı oluşturduğunuzda şu barındırma planlarından birini seçebilirsiniz:

  • Tüketim planı: Yalnızca işlevlerinizin otomatik ölçeklendirmeyle çalıştığı süre için ödeme gerçekleştirin.
  • Esnek Tüketim planı: Soğuk başlangıçları, sanal ağ tümleştirmesini ve yapılandırılabilir örnek boyutlarını (512 MB ile 4 GB arasında) azaltmak için her zaman hazır örneklerle gelişmiş denetim sağlar. Bu plan, kurumsal güvenlik ve performans özellikleri gerektiren yeni Linux tabanlı iş yükleri için önerilir. Bu plan, Tüketim planına benzer şekilde, ancak her zaman hazır durumda olan örnekler gibi özellikler için ek maliyetlerle yürütme tabanlı faturalama kullanır.
  • Premium plan: Önceden ısıtılmış örnekler, sanal ağ bağlantısı ve daha uzun yürütme süreleri ile gelişmiş performans sağlar.
  • Ayrılmış (App Service) planı: Öngörülebilir maliyetler ve çalışma ortamı üzerinde tam kontrol için ayrılmış sanal makinelerde fonksiyonları çalıştırın.

Doğru barındırma planını seçme hakkında daha fazla bilgi için bkz. Azure İşlevleri barındırma seçenekleri.

Azure Container Apps kaynağı

Alternatif olarak, Azure İşlevleri'yi kapsayıcılı iş yükleri olarak bir Azure Container Apps kaynağına dağıtabilirsiniz. Bu seçenek kapsayıcı ortamı üzerinde tam denetim sağlar ve özel bağımlılıklara, uzun süre çalışan işlemlere ihtiyacınız olduğunda veya işlevleri diğer kapsayıcılı mikro hizmetlerle birleştirmek istediğinizde idealdir. Daha fazla bilgi için bkz. Azure İşlevleri'nin barındırılması için Azure Container Apps .

Azure İşlevleri geliştirme önkoşulları

  • Node.js LTS - Azure İşlevleri ile en iyi uyumluluk ve güvenlik güncelleştirmeleri için en son Uzun Vadeli Destek (LTS) sürümünü kullanın.
  • Azure İşlevleri Temel Araçları - Yerel geliştirme ve hata ayıklama için geçerli ana sürümü kullanın.

HTTP istekleri için basit bir JavaScript işlevi

İşlev, istek ve bağlam bilgileriyle dışarı aktarılan zaman uyumsuz bir işlevdir. Azure portalındaki aşağıdaki kısmi ekran görüntüsünde işlev kodu gösterilmektedir.

import { app, HttpRequest, HttpResponseInit, InvocationContext } from "@azure/functions";

export async function status(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
    context.log(`Http function processed request for url "${request.url}"`);

    return {
        status: 200,
        jsonBody: {
            env: process.env
        }
    };
};

app.http('status', {
    route: "status",
    methods: ['GET'],
    authLevel: 'anonymous',
    handler: status
});

Visual Studio Code ve uzantılarla işlevleri yerel olarak geliştirme

Visual Studio Code kullanarak ilk işlevinizi oluşturun. Visual Studio Code, Azure İşlevleri uzantısıyla ayrıntıların çoğunu basitleştirir.

Bu uzantı, yaygın şablonlarla JavaScript ve TypeScript işlevleri oluşturmanıza yardımcı olur.

Diğer Azure hizmetleri ile tümleştirme

Sunucusuz işlevler sunucu yapılandırmasının ve yönetiminin büyük bir kısmını kaldırır, böylece yalnızca ihtiyacınız olan koda odaklanabilirsiniz.

  • Düşük kodlu işlevler: Azure İşlevleri ile, tetikleyici bağlamalarını kullanarak diğer Azure hizmetleri tarafından tetiklenen veya diğer Azure hizmetlerine çıkış veren işlevler oluşturursunuz. v4 programlama modeli tüm tetikleyicileri ve bağlamaları doğrudan kodunuz içinde kaydederek yapılandırma türünü güvenli ve sezgisel hale getirir.
  • Yüksek kod işlevleri: Daha fazla denetim için diğer Azure hizmetlerini koordine etmek ve denetlemek için Azure SDK'larını kullanın. Kimlik bilgilerini yönetmeden işlevlerinizin kimliğini diğer Azure kaynaklarıyla güvenli bir şekilde doğrulamak için yönetilen kimlikleri kullanın.