Node.js uygulaması oluşturma ve dağıtma

Bu makalede Azure Pipelines'ı kullanarak sürekli tümleştirme (CI) ve sürekli dağıtım (CD) ile azure app service'e Node.js bir uygulama derleyen ve dağıtan bir işlem hattı oluşturma adımları gösterilmektedir. CI/CD, uygulama kodu deponuza bir işleme olduğunda uygulamanızı otomatik olarak oluşturup dağıtarak kapalı kalma süresini ve hata riskini azaltır.

Önkoşullar

ürün Gereksinimler
Azure DevOps - Bir Azure DevOps projesi.
- Microsoft tarafından barındırılan aracılarda işlem hatlarını çalıştırabilme özelliği. Ücretsiz katmanı etkinleştirin veya paralel bir iş satın alın.
- YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma.
- İzinleri:
     - İşlem hattı oluşturmak için Katkıda Bulunanlar grubunda yer almanız ve grubun Derleme işlem hattı oluşturma izninin İzin Ver olarak ayarlanması gereklidir. Proje Yöneticileri grubunun üyeleri işlem hatlarını yönetebilir.
    - Hizmet bağlantıları oluşturmak için:hizmet bağlantıları için Yönetici veya Oluşturucu rolüne sahip olmanız gerekir.
GitHub - GitHub hesabı.
- Azure Pipelines'ı yetkilendirmek için GitHub hizmet bağlantısı.
Azure Bir Azure aboneliği.
ürün Gereksinimler
Azure DevOps - Bir Azure DevOps projesi.
- Şirket içinde barındırılan bir aracı. Kendinize ait bir acente oluşturmak için Kendi Sunucunuzda Barındırılan Acenteler'e bakın.
- YAML ve Azure Pipelines hakkında temel bilgiler. Daha fazla bilgi için bkz. İlk işlem hattınızı oluşturma.
- İzinleri:
    - İşlem hattı oluşturmak için Katkıda Bulunanlar grubunda yer almanız ve grubun Derleme işlem hattı oluşturma izninin İzin Ver olarak ayarlanması gereklidir. Proje Yöneticileri grubunun üyeleri işlem hatlarını yönetebilir.
    - Hizmet bağlantıları oluşturmak için:hizmet bağlantıları için Yönetici veya Oluşturucu rolüne sahip olmanız gerekir.
GitHub - GitHub hesabı.
- Azure Pipelines'ı yetkilendirmek için GitHub hizmet bağlantısı.
Azure Bir Azure aboneliği.

Not

GitHub kullanan yordamlar için kimlik doğrulaması, yetkilendirme veya GitHub kuruluşlarında veya belirli depolarda oturum açma işlemleri gerekebilir. Gerekli işlemleri tamamlamak için yönergeleri izleyin. Daha fazla bilgi için bkz. GitHub depolarına erişim.

Örnek uygulamayı fork etme

  1. GitHub'da Node.js Merhaba Dünya deposuna gidin ve üst menüden Forkla seçin.

    Çatalı yapılacak Node.js projesini seçmek için GitHub'ın ekran görüntüsü.

  2. Seçili değilse Çatal Sahibi olarak GitHub kuruluşunuzu seçin ve ardından Çatal Oluştur'u seçin.

    GitHub'da dal oluştur ekran görüntüsü.

Tarayıcı, URL'de https://github.com/<owner>/nodejs-docs-hello-world adresinde bulunan yeni çatallamanıza gider.

App Service web uygulamasını oluşturma ve dağıtma

Azure portalda Cloud Shell kullanarak Azure App Service web uygulamanızı oluşturun. Cloud Shell'i kullanmak için Azure portalında oturum açın ve üst araç çubuğundaki Cloud Shell düğmesini seçin.

Azure portalı araç çubuğundaki Azure Cloud Shell düğmesinin ekran görüntüsü.

Cloud Shell, tarayıcının alt kısmında görünür. Açılan menüde ortam olarak Bash'in seçildiğinden emin olun.

Azure Cloud Shell'in ekran görüntüsü.

Tip

Cloud Shell'e yapıştırmak için Ctrl+Shift+V kullanın veya sağ tıklayıp bağlam menüsünden Yapıştır'ı seçin.

Web uygulamasını oluşturma ve dağıtma

  1. Cloud Shell'de, aşağıdaki komutu kullanarak çatallanmış deponuzun bir kopyasını Azure'a klonlayın; <your-forked-repository-url> yerine çatallanmış deponuzun URL'sini yazın.

    git clone <your-forked-repository-url>
    
  2. Dizini kopyalanmış depo klasörüne değiştirin.

    cd nodejs-docs-hello-world
    
  3. Bir App Service web uygulaması sağlamak ve ilk dağıtımı yapmak için az webapp up komutunu çalıştırın. Bu --sku F1 parametresi, ücretsiz fiyatlandırma katmanında web uygulamasını oluşturur ve herhangi bir maliyet oluşturmaz.

    Parametresiz az webapp up çalıştırılırsaname, Azure'da benzersiz olan rastgele oluşturulmuş bir web uygulaması adı otomatik olarak atanır. Parametresini --name <web-app-name> ayrıca Azure'da benzersiz olan herhangi bir adı atamak için de kullanabilirsiniz. Örneğin, uygulama tanımlayıcısına sahip bir kişisel ad veya şirket adı gibi --name <your-name>-nodeapp.

    az webapp up --sku F1 --name <app-name>
    

komutu az webapp up uygulamayı bir Node.js uygulaması olarak tanır ve aşağıdaki eylemleri gerçekleştirir:

  1. Varsayılan bir kaynak grubu oluşturur.
  2. Varsayılan bir App Service planı oluşturur.
  3. Atanan ada ve <your-web-app-name>.azurewebsites.net sahip bir web uygulaması oluşturur.
  4. ZIP dağıtımı, derleme otomasyonu etkinleştirilmiş şekilde geçerli çalışma dizininden tüm dosyaları dağıtır.
  5. Parametreleri yerel olarak .azure/config dosyasında önbelleğe alır, böylece proje klasöründen veya başka az webapp up komutlarla az webapp dağıtırken bunları yeniden belirtmeniz gerekmez.

Komut parametrelerini kullanarak varsayılan eylemleri kendi değerlerinizle geçersiz kılabilirsiniz. Daha fazla bilgi için bkz. az webapp up.

Komutu çalıştırılırken durum iletileri oluşturur. Web sitesi başarıyla başlatıldıktan sonraYou can launch the app at https://<your-web-app-name>.azurewebsites.net web uygulamasına gitmek için adresinden bağlantıyı seçebilirsiniz.

komutu az webapp up , örnek web uygulaması için aşağıdaki JSON çıkışını oluşturur:

{
  "URL": "<your-web-app-url>",
  "appserviceplan": "<your-app-service-plan-name>",
  "location": "<your-azure-region>",
  "name": "<your-web-app-name>",
  "os": "Linux",
  "resourcegroup": "<your-resource-group-name>",
  "runtime_version": "node|20-LTS",
  "runtime_version_detected": "10.0",
  "sku": "FREE",
  "src_path": "<repository-source-path>"
}

Şablondan işlem hattı oluşturma

  1. Azure DevOps projenizde, sol gezinti menüsünden İşlem Hatları'nı ve ardından Yeni işlem hattı'nı veya bu işlem hattı projenin ilk işlem hattıysa İşlem hattı oluştur'u seçin.

  2. Kodunuz nerede ekranında GitHub'ı seçin.

  3. Depo seçin ekranında, fork'lanmış nodejs-docs-hello-world deponuzu seçin.

  4. Azure Pipelines kodu bir Node.js uygulaması olarak tanır ve İşlem hattınızı yapılandırma sayfasında birkaç işlem hattışablonu önerir. Azure'de Node.js için Express Web Uygulamasını Linux'ta seçin.

  5. Sonraki ekranda Azure aboneliğinizi seçin ve Devam'ı seçin. Bu eylem, Azure kaynaklarınıza bir hizmet bağlantısı oluşturur.

  6. Sonraki ekranda Azure web uygulamanızı seçin ve Doğrula ve yapılandır'ı seçin. Azure Pipelines bir azure-pipelines.yml dosyası oluşturur ve dosyayı YAML işlem hattı düzenleyicisinde görüntüler.

  7. İşlem hattınızı gözden geçirin YAML ekranında işlem hattınızın kodunu gözden geçirin.

    İşlem hattı aşağıdaki eylemleri gerçekleştirir:

    • Ana kod dalındaki her işlemede çalışacak bir tetikleyici ayarlar.
    • Hizmet bağlantısı, web uygulaması, makine görüntüsü ve ortam için değişkenler oluşturur ve kullanır.
    • Derleme aracısına Node.js yükler ve uygulama derlemesini çalıştırmak ve test etmek için npm kullanır.
    • Yerleşik uygulamayı bir ZIP arşivine paketler ve ZIP'i hedef konuma yükler.
    • ZIP paketini App Service uygulamasına dağıtır ve uygulamayı başlatır.

İşlem hattını kaydetme ve çalıştırma

  1. Kodu gözden geçirdikten sonra Kaydet ve çalıştır'ı seçin, işlem hattınızı kaydedip çalıştırmak için Kaydet ve yeniden çalıştır'ı seçin. azure-pipelines.yml dosyası çatallanmış deponuza kaydedilir ve kod Azure App Service'e dağıtılır.

    Not

    İşlem hattı ilk kez çalıştırıldığında, oluşturduğu ortama erişmek için izin ister. İşlem hattının ortama erişmesine izin vermek için İzin Ver'i seçin.

  2. Çalıştırma Özeti sayfasında, boru hattınızın çalışmasını ve derlemesini gözlemlemek için işi seçin.

  3. Çalıştırma başarılı olduğunda Azure Web Uygulaması Dağıtma görevini seçin ve dağıtılan web sitesini görüntülemek için App Service Uygulaması URL'sini seçin.

    Azure Pipelines'da web sitesi URL konumunun ekran görüntüsü.

  4. Dağıtılan web sitesi URL'sinde App Service'te çalışan siteyi gördüğünüzden emin olun.

    Web tarayıcısında çalışan Node.js uygulamasının ekran görüntüsü.

CI derlemesini ve dağıtımını çalıştırın

anahtar sözcüğü, trigger: main çatallanmış kod deponuzun dalında her değişiklik yapıldığında main işlem hattınızı çalışacak şekilde yapılandırır. CI derlemesini çalıştırmak için:

  1. Çatallanmış GitHub deponuza gidin ve README.md dosyasında küçük bir değişiklik yapın.
  2. Değişiklikleri işle'yi ve Değişiklikleri yeniden işle'yi seçin.
  3. Azure Pipelines'da nodejs-docs-hello-world işlem hattınızın tek tek CI açıklamasıyla yeniden çalıştığını doğrulayın.

Kaynakları temizleme

Artık ihtiyacınız yoksa bu makale için oluşturduğunuz kaynakları silebilirsiniz.

  • Azure App Service kaynaklarını kaldırmak için Cloud Shell'de aşağıdaki komutları sırasıyla çalıştırın. App Service planını silebilmeniz için önce web uygulamasını silmeniz ve kaynak grubunu silebilmeniz için önce app service planını silmeniz gerekir.

    az webapp delete --name <web-app-name> --resource-group <resource-group-name>
    az appservice plan delete --name <app-service-plan-name> --resource-group <resource-group-name>
    az group delete --name <resource-group-name>
    
  • Azure Pipelines'da işlem hattınızı kaldırmak için işlem hattını seçin, işlem hattı sayfasının sağ üst kısmındaki Diğer eylemler simgesini ve ardından Sil'i seçin. Azure DevOps projenizi kaldırmak için bkz. Projeyi silme.

  • Çatallanmış nodejs-docs-hello-world GitHub deponuzu silmek için depoya gidin ve üst menü çubuğundan Ayarlar'ı seçin. Sayfanın en altına kaydırın ve Bu depoyu sil'i seçin.