Alıştırma - Azure'Node.js uygulama dağıtma

Tamamlandı

Bu GitHub için hataya neden olan veri kaynağı, temel bir proje için kaynak Node.js içerir. Bu bölümde, bu projeyi daha önce Azure Pipelines Azure uygulama hizmetine oluşturan ve dağıtan bir proje oluşturacağız.

Bu bölümde şunları siz:

  • GitHub Azure Pipelines için GitHub yükleyin.
  • Bu modül Azure DevOps bir proje ayarlayın.
  • Ana dala yapılan işlemeler tarafından tetiklenen bir CI/CD işlem hattı oluşturun.
  • İşlem hattı görevlerini gözden geçirme.
  • CI/CD iş akışını tetiklemek için işlem hattını kaydedin.

Azure Pipelines yükleme

Burada, Azure Pipelines depo için GitHub yükleyin. Bu uzantı Azure Pipelines depodan en son GitHub çekebilirsiniz.

  1. GitHub Market'e gidin.
  2. Veri Azure Pipelines arama ve Azure Pipelines seçin.
  3. Ücretsiz seçeneğini bulun ve Ücretsiz olarak yükle'yi seçin.
  4. Siparişi tamamla'yi seçin ve yükleme işlemini başlatın.
  5. Yalnızca depoları seçin'i seçin ve daha önce kopyalamış olduğunu nodejs-docs-hello-world deposunu seçin.
  6. Yükle'yi seçin.

Azure DevOps ayarlama

Önceki görev, GitHub depoyu Azure DevOps bağlar. Bu işlemi tamamlamak için şimdi bir Azure DevOps oluşturacağız.

  1. dev.azure.com.

  2. + Yeni proje'yi seçin.

    Yeni proje oluştur iletişim kutusu açılır.

  3. İlk Project alanına nodejs-hello-world gibi bir ad girin.

  4. Görünürlük altında projenizin genel mi yoksa özel mi olduğunu seçersiniz. Şimdilik özel'i seçebilirsiniz.

    Açık kaynak proje oluşturucuları genellikle başkalarının etkin sorunları ve derleme durumunu görüntüleyişleri için genel görünürlüğü seçer.

  5. Gelişmiş'i seçin.

  6. Sürüm denetimi altında Git'in seçili olduğundan emin olun.

  7. Oluştur’u seçin.

İşlem hattını oluşturma

Burada yerleşik şablonlardan birini kullanarak Azure Pipelines CI/CD işlem hattı oluşturabilirsiniz. İşlem, Git deponun kök dizininde bulunan azure-pipelines.yml adlı bir işlem hattı yapılandırma dosyası üretir.

  1. Bu Azure DevOps nodejs-hello-world projenize gidin.

  2. Proje Pipelines veya sol bölmeden öğesini seçin.

  3. İşlem Hattı Oluştur'a seçin.

  4. Yeni Bağlan'yi seçin ve GitHub.

    İstendiğinde, kimlik bilgilerinizi GitHub girin.

  5. Seç sekmesinde nodejs-docs-hello-world deposunu seçin.

  6. Yapılandır sekmesinde Azure'Node.js Express Web App'i Linux'a seçin.

    Istendiğinde:

    1. Daha önce kaynak oluşturduğunuz Azure aboneliğini seçin.
    2. Devam’ı seçin.
    3. Daha önce oluşturduğunuz Web Uygulaması adını seçin, örneğin nodejs-cicd-17396.
    4. Doğrula ve yapılandır'ı seçin.
  7. Gözden Geçir sekmesinde işlem hattı yapılandırmanız için başlangıç kodunu gözden geçirebilirsiniz. Kaydet ve çalıştır'ı henüz seçme.

İşlem hattı görevlerini gözden geçirme

Başlangıç işlem hattı kodu, uygulama derlemek, test etmek, paketi oluşturmak ve azure'a dağıtmak Node.js her şeyi sağlar. Çalıştırmadan önce, uygulamayı derlemek ve dağıtmak için kullandığı aşamalar ve görevlere bakalım.

CI tetikleyicisi

İşlem hattı, dalda bir değişiklik işlendikleri zaman çalıştıracak şekilde main yapılandırılır. Çalıştırmaları dallarına, yollarına veya etiketine göre dahil etmek (veya hariç tutmak) gibi gerektiğinde ayarlayabilirsiniz.

### YamlMime:Yaml
ms.openlocfilehash: 1fb923648d716c425292af6d4e0a20b542edb56c
ms.sourcegitcommit: fe9d2a1e8052ec873de0342d21fdbb9bfb39e197
ms.translationtype: MT
ms.contentlocale: tr-TR
ms.lasthandoff: 09/08/2021
ms.locfileid: "123800516"
trigger:
- main

İşlem hattı değişkenleri

İşlem hattı bakımına yardımcı olmak için varsayılan şablon, Azure'a bağlanmak için kullanılan hizmet bağlantı dizesinin adı gibi yaygın olarak kullanılan parametrelerin değişkenlerini kullanır. Hizmet bağlantısı, azure aboneliğinize sanal ağdan güvenli Azure Pipelines.

Değişkenleri, işlem hattının dışında yönetilen işlem hattı kitaplıklarından da içeri aktarebilirsiniz. Aşağıda bir örneği yer alır. Gördüğünüz değerler Azure aboneliğinize özgü olur.

### YamlMime:Yaml
ms.openlocfilehash: 793f810082ce5e224cc278666dbde0787fce4796
ms.sourcegitcommit: fe9d2a1e8052ec873de0342d21fdbb9bfb39e197
ms.translationtype: MT
ms.contentlocale: tr-TR
ms.lasthandoff: 09/08/2021
ms.locfileid: "123800516"
variables:
  azureSubscription: 00001111-0000-1111-2222-000011112222
  webAppName: nodejs-cicd-16353
  environmentName: nodejs-cicd-16353
  vmImageName: ubuntu-latest

Derleme aşaması

Aşama, işlem hattının bağımsız olarak çalıştırılabilir ve farklı mekanizmalar tarafından tetiklenen bir kısmıdır. Örneğin, uygulamayı derlemek için bir aşamaya, üretim öncesi ortama dağıtan ikinci aşamaya ve üretime dağıtım yapılan son aşamaya sahip olabilir.

Bu işlem hattı iki aşamaya ayrılır: Derleme ve Dağıtma. Derleme aşaması, derleme yapıtlarını (bir derleme dosyası) yapıt depolamaya yayımlamayı da içeren.zip görevlerini yapılandırır ve gerçekleştirir.

### YamlMime:Yaml
ms.openlocfilehash: 2bf61b8d99163ea997f6f11a494dd8bd9d6e7617
ms.sourcegitcommit: fe9d2a1e8052ec873de0342d21fdbb9bfb39e197
ms.translationtype: MT
ms.contentlocale: tr-TR
ms.lasthandoff: 09/08/2021
ms.locfileid: "123800516"
stages:
- stage: Build
  displayName: Build stage
  jobs:
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)

Node.js Aracı Yükleyicisi görevi

Görev, NodeTool@0 proje oluşturmak için derleme Node.js ayarlar. Bu işlem hattının amaçları doğrultusunda, yüklenebilecek uygulama versionSpec araçlarının sürümünü belirtmek Node.js parametresi gerekir. Bu görev hakkında daha fazla bilgi içinNode.js Yükleyicisi görev belgelerinde bulabilirsiniz.

### YamlMime:Yaml
ms.openlocfilehash: 3bfd8246711d64a844ddd38d1ff79fc805265202
ms.sourcegitcommit: fe9d2a1e8052ec873de0342d21fdbb9bfb39e197
ms.translationtype: MT
ms.contentlocale: tr-TR
ms.lasthandoff: 09/08/2021
ms.locfileid: "123800516"
steps:
- task: NodeTool@0
  inputs:
    versionSpec: 10.x
  displayName: Install Node.js

Derlemeyi çalıştırma

Derlemenin kendisi, satır içi npm betikte komutlar kullanılarak çalıştırdır. Bu proje herhangi bir test içermez, ancak bunları eklersiniz, bunlar komutun bir parçası olarak npm run test run olur.

- script: |
    npm install
    npm run build --if-present
    npm run test --if-present
  displayName: 'npm install, build and test'

Derlemeyi yayımlama

Derleme tamamlandıktan sonra, görev ArchiveFiles@2 derleme çıktısını bir derleme.zippaketler. Sonuçta elde edilen.zip dosyası, gelecekteki kullanım ve gözden geçirme için diğer ad bırakma kullanılarak yapıt depolamada yayımlanır.

- task: ArchiveFiles@2
  displayName: Archive files
  inputs:
    rootFolderOrFile: $(System.DefaultWorkingDirectory)
    includeRootFolder: false
    archiveType: zip
    archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
    replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
  artifact: drop

Derleme yapıtları için kendi depolama alanınızı sağlamanız gerekli değil. Azure Pipelines, yapılandırılan saklama ilkesine göre derlemenizin sonuçlarını tutar. Daha fazla bilgi edinmek için bkz. Derleme ve sürüm saklama ilkeleri.

Derlemeyi dağıtma

İşlem hattının ikinci aşaması uygulamayı Azure'a dağıtır. Derleme aşamasının başarıyla tamamlanmasına bağlıdır ve bundan sonra uygulamayı yapılandırılan hedefe dağıtmak için işlem hattının Azure hizmet bağlantısını kullanır. Bu projeler uygulamayı Azure App Service.

- stage: Deploy
  displayName: Deploy stage
  dependsOn: Build
  condition: succeeded()
  jobs:
    - deployment: Deploy
      displayName: Deploy
      environment: $(environmentName)
      pool:
        vmImage: $(vmImageName)
      strategy:
        runOnce:
          deploy:
            steps:
              - task: AzureWebApp@1
                displayName: 'Azure Web App Deploy: nodejs-cicd-16353'
                inputs:
                  azureSubscription: $(azureSubscription)
                  appType: webAppLinux
                  appName: $(webAppName)
                  runtimeStack: NODE|10.10
                  package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
                  startUpCommand: npm run start

Azure Web App görevi

Görev AzureWebApp@1 web uygulamalarını Azure App Service. Çeşitli platformlarda uygulamaları destekleyen ve bu uygulama için gereken her şeyi içeren çok esnek bir Node.js görevdir:

  • azureSubscription , Azure hizmet bağlantısı işlem hattı değişkeninizin adını ifade eder.
  • appType , uygulamanın Linux için dağıtıldığından ( ) webAppLinux gösterir.
  • appName Azure Azure App Service örneğinin adını belirtir.
  • runtimeStack , uygulamanın hangi görüntü üzerinde çalıştır gerektiğini gösterir; bu, Linux dağıtımları için gereklidir.
  • package dağıtılacak paketin yolunu belirtir.
  • startUpCommand , uygulama dağıtıldıktan sonra çalıştırılacak başlangıç komutunu belirtir ve bu, Linux dağıtımları için gereklidir.

Azure Web App görev belgelerinde bu görevin esnekliği hakkında daha fazla bilgi edinebilirsiniz.

Derlemeyi ve sürümü tetiklemek için işlem hattını kaydetme

  1. Sayfanın sağ üst köşesinden Kaydet ve çalıştır'ı seçin. İşlem hattını çalıştıracak şekilde tetiklemek için Kaydet ve yeniden çalıştır'ı seçin.

  2. Bu Azure Pipelines derlemeye gidin. Çalıştırılırken derlemeyi izleme.

  3. Derleme başarılı olduktan sonra, web sitesinin dağıtım görevini seçin ve dağıtılan siteyi görüntülemek için URL'ye tıklayın.

    Azure Pipelines Web sitesi URL 'SI bulunuyor.

  4. App Service üzerinde çalışan siteyi görürsünüz.

    Bir Web tarayıcısında çalışan Node.js uygulaması.

Bu uygulama çok temel olsa da, artık genişletebileceğinizi belirten, tamamen bir CI/CD işlem hattına sahipsiniz. Azure 'a kendi Node.js projelerinizden birini dağıtmak için burada gerçekleştirdiğiniz adımları tekrarlayabilirsiniz.