Visual Studio aracılığıyla Azure kaynak grupları oluşturma ve dağıtma

Visual Studio ile altyapınızı ve kodlarınızı Azure’a dağıtan bir proje oluşturabilirsiniz. Örneğin, web sitesi için web ana bilgisayarını, web sitesini ve kodu dağıtabilirsiniz. Visual Studio genelde karşılaşılan senaryoların dağıtılması için birçok farklı başlangıç şablonu sağlar. Bu makalede bir web uygulaması dağıtacaksınız.

Bu makalede , Azure geliştirme ve ASP.NET iş yükleri yüklü olarak Visual Studio 2019 veya sonraki sürümlerin nasıl kullanılacağı gösterilmektedir. Visual Studio 2017 kullanıyorsanız deneyiminiz büyük ölçüde aynıdır.

Azure Kaynak Grubu projesi oluşturma

Bu bölümde, Web uygulaması şablonuyla bir Azure Kaynak Grubu projesi oluşturacaksınız.

  1. Visual Studio'da Dosya>Yeni Proje'yi> seçin.

  2. Azure Kaynak Grubu proje şablonunu ve İleri'yi seçin.

    Azure Kaynak Grubu ve İleri düğmesini vurgulayan Yeni proje oluştur penceresinin ekran görüntüsü.

  3. Projenize bir ad verin. Diğer varsayılan ayarlar büyük olasılıkla uygundur, ancak ortamınızda çalışması için bunları gözden geçirin. İşiniz bittiğinde Oluştur’u seçin.

    Visual Studio'da proje adlandırma penceresinin ekran görüntüsü.

  4. Azure Resource Manager’da dağıtmak istediğiniz şablonu seçin. Dağıtmak istediğiniz proje türüne bağlı olarak çok sayıda farklı seçeneğiniz olduğunu unutmayın. Bu makale için Web uygulaması şablonunu ve Tamam'ı seçin.

    Web uygulaması şablonunun vurgulandığı şablon seçim penceresinin ekran görüntüsü.

    Seçtiğiniz şablon sadece başlangıçtır; senaryonuzun gereksinimlerini karşılamak üzere kaynak ekleyebilir ve kaldırabilirsiniz.

  5. Visual Studio, web uygulaması için bir kaynak grubu dağıtım projesi oluşturur. Projenizin dosyalarını görmek için dağıtım projesindeki düğüme bakın.

    Kaynak grubu dağıtım proje dosyalarını gösteren Visual Studio Çözüm Gezgini ekran görüntüsü.

    Web uygulaması şablonunu seçtiğiniz için aşağıdaki dosyaları görürsünüz:

    Dosya adı Description
    Deploy-AzureResourceGroup.ps1 Azure Resource Manager’da dağıtılacak PowerShell komutlarını çalıştıran PowerShell betiği. Visual Studio, şablonunuzu dağıtmak için bu PowerShell betiğini kullanır.
    WebSite.json Azure’da dağıtmak istediğiniz altyapıyı tanımlayan Resource Manager şablonu ve dağıtım sırasında sağlayabileceğiniz parametreler. Resource Manager’ın kaynakları doğru sırayla dağıtmasını sağlamak için kaynaklarınız arasındaki bağımlılıkları da tanımlar.
    WebSite.parameters.json Şablon tarafından gereken değerleri içeren bir parametre dosyası. Her bir dağıtımı özelleştirmek için parametre değerlerini geçirirsiniz. Derleme Eylemi'ninİçerik olarak ayarlandığına dikkat edin. Daha fazla parametre dosyası eklerseniz derleme eyleminin İçerik olarak ayarlandığından emin olun.

    Tüm kaynak grubu dağıtım projeleri bu temel dosyaları içerir. Diğer projelerin diğer işlevleri desteklemek için daha fazla dosyası olabilir.

Resource Manager şablonunu özelleştirme

Dağıtmak istediğiniz kaynakları açıklayan Resource Manager şablonunu değiştirerek dağıtım projesini özelleştirebilirsiniz. Resource Manager şablonu bileşenleri hakkında daha fazla bilgi edinmek için Azure Resource Manager şablonları yazma.

  1. Şablonunuz üzerinde çalışmak için WebSite.json dosyasını açın.

  2. Visual Studio düzenleyicisi, Resource Manager şablonu düzenleme konusunda size yardımcı olan araçlar sağlar. JSON Ana Hattı penceresi, şablonunuzda tanımlanan bileşenleri görmenizi kolaylaştırır.

    Resource Manager şablonu için Visual Studio'daki JSON Anahat penceresinin ekran görüntüsü.

  3. Şablonun bu bölümüne gitmek için ana hattaki bir öğeyi seçin.

    JSON Anahat penceresinde seçili bir öğeyle Visual Studio düzenleyicisinin ekran görüntüsü.

  4. JSON Ana Hattı penceresinin üst tarafında bulunan Kaynak Ekle düğmesini seçerek veya kaynaklar’a sağ tıklayıp Yeni Kaynak Ekle’yi seçerek yeni kaynak ekleyebilirsiniz.

    Yeni Kaynak Ekle seçeneğini vurgulayan JSON Anahat penceresinin ekran görüntüsü.

  5. Depolama Hesabı'yı seçin ve bir ad verin. 11 karakterden uzun olmayan ve yalnızca sayı ile küçük harf içeren bir ad belirtin.

    Depolama Hesabı'nın seçili olduğu Yeni Kaynak Ekle penceresinin ekran görüntüsü.

  6. Yalnızca kaynak eklenmediğini, aynı zamanda depolama hesabı türü için bir parametre ve depolama hesabı adı bir değişken eklendiğini unutmayın.

    Eklenen Depolama Hesabı kaynağını gösteren JSON Anahat penceresinin ekran görüntüsü.

  7. Depolama hesabı türü parametresi, izin verilen türlerle ve varsayılan türle önceden tanımlanmıştır. Bu değerleri bırakabilir veya senaryonuz için düzenleyebilirsiniz. Bu şablon aracılığıyla herkesin Premium_LRS depolama hesabı dağıtmasını istemiyorsanız izin verilen türlerden bunu kaldırın.

    "demoaccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_ZRS",
        "Standard_GRS",
        "Standard_RAGRS"
      ]
    }
    
  8. Visual Studio, şablonu düzenlerken kullanılabilen özellikleri anlamanıza yardımcı olmak için IntelliSense de sağlar. Örneğin, App Service planınızın özelliklerini düzenlemek için HostingPlan kaynağına gidin ve resources için bir değer ekleyin. IntelliSense’in kullanılabilir değerleri gösterdiğini ve bu değerler için bir açıklama sunduğunu unutmayın.

    Resource Manager şablonu için intellisense önerilerini gösteren Visual Studio düzenleyicisinin ekran görüntüsü.

    numberOfWorkers değerini 1 olarak ayarlayabilir ve dosyayı kaydedebilirsiniz.

    "properties": {
      "name": "[parameters('hostingPlanName')]",
      "numberOfWorkers": 1
    }
    
  9. WebSite.parameters.json dosyasını açın. Dağıtım sırasında dağıtılan kaynağı özelleştiren değerleri geçirmek için parametre dosyasını kullanırsınız. Barındırma planına bir ad verin ve dosyayı kaydedin.

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "hostingPlanName": {
          "value": "demoHostPlan"
        }
      }
    }
    

Projeyi Azure'a dağıtma

Artık projenizi bir kaynak grubuna dağıtmaya hazırsınız.

Varsayılan olarak, projedeki PowerShell betiği (Deploy-AzureResourceGroup.ps1) AzureRM modülünü kullanır. AzureRM modülü hala yüklüyse ve bunu kullanmaya devam etmek istiyorsanız, bu varsayılan betiği kullanabilirsiniz. Bu betikle Visual Studio arabirimini kullanarak çözümünüzü dağıtabilirsiniz.

Ancak yeni Az modülüne geçiş yaptıysanız projenize yeni bir betik eklemeniz gerekir. Az modülünü kullanan bir betik eklemek için Deploy-AzTemplate.ps1 betiğini kopyalayın ve projenize ekleyin. Bu betiği dağıtım için kullanmak için Visual Studio'nun dağıtım arabirimini kullanmak yerine bir PowerShell konsolundan çalıştırmanız gerekir.

Her iki yaklaşım da bu makalede gösterilmiştir. Bu makale, varsayılan betiği AzureRM modül betiği, yeni betiği ise Az modülü betiği olarak ifade eder.

Az modül betiği

Az modülü betiği için bir PowerShell konsolu açın ve şunu çalıştırın:

.\Deploy-AzTemplate.ps1 -ArtifactStagingDirectory . -Location centralus -TemplateFile WebSite.json -TemplateParametersFile WebSite.parameters.json

AzureRM modül betiği

AzureRM modülü betiği için Visual Studio'yu kullanın:

  1. Dağıtım projesi düğümünün kısayol menüsündeYeniDağıt'ı> seçin.

    Dağıt ve Yeni seçeneklerin vurgulandığı dağıtım projesi bağlam menüsünün ekran görüntüsü.

  2. Kaynak Grubuna Dağıt iletişim kutusu görüntülenir. Kaynak Grubu açılır kutusunda, mevcut bir kaynak grubu seçin veya yeni bir tane oluşturun. Dağıt'ı seçin.

    Visual Studio'da Kaynak Grubuna Dağıt iletişim kutusunun ekran görüntüsü.

  3. Çıktı pencerelerinde dağıtımın durumunu görürsünüz. Dağıtım tamamlandığında son ileti aşağıdakine benzer bir ifadeyle dağıtımın başarılı olduğunu belirtir:

    18:00:58 - Successfully deployed template 'website.json' to resource group 'ExampleAppDeploy'.
    

Dağıtılan kaynakları görüntüleme

Şimdi sonuçları kontrol edelim.

  1. Tarayıcıda Azure portal açın ve hesabınızda oturum açın. Kaynak grubunu görmek için Kaynak grupları’nu ve dağıttığınız kaynak grubunu seçin.

  2. Dağıtılan tüm kaynakları görürsünüz. Depolama hesabı adının, ilgili kaynağı eklerken belirttiğiniz adla tam olarak aynı olmadığına dikkat edin. Depolama hesabı benzersiz olmalıdır. Şablon, benzersiz bir ad oluşturmak için sağladığınız ada otomatik olarak bir karakter dizesi ekler.

    Bir kaynak grubunda dağıtılan kaynakları görüntüleyen Azure portal ekran görüntüsü.

Projeye kod ekleme

Bu noktada, uygulamanız için altyapı dağıttınız, ancak proje ile dağıtılan gerçek bir kod yoktur.

  1. Visual Studio çözümünüze bir proje ekleyin. Çözüme sağ tıklayın veYeni Proje Ekle'yi> seçin.

    Visual Studio'da Yeni Proje Ekle bağlam menüsünün ekran görüntüsü.

  2. ASP.NET Core Web Uygulaması ekleyin.

    ASP.NET Core Web Uygulaması'nın seçili olduğu Yeni Proje penceresinin ekran görüntüsü.

  3. Web uygulamanıza bir ad verin ve Oluştur'u seçin.

    ASP.NET Core Web Uygulaması için proje adlandırma penceresinin ekran görüntüsü.

  4. Web Uygulaması ve Oluştur'u seçin.

    Web Uygulaması'nın seçili olduğu Yeni ASP.NET Core Web Uygulaması penceresinin ekran görüntüsü.

  5. Visual Studio web uygulamanızı oluşturduktan sonra her iki projeyi de çözümde görürsünüz.

    Çözümde her iki projenin de görüntülendiği Visual Studio Çözüm Gezgini ekran görüntüsü.

  6. Bundan böyle kaynak grubu projenizin yeni projeyi tanıdığından emin olmanız gerekir. Kaynak grubu projenize (ExampleAppDeploy) Geri dön. Başvurular’a sağ tıklayın ve Başvuru Ekle’yi seçin.

    Başvuru Ekle seçeneğini vurgulayan ExampleAppDeploy bağlam menüsünün ekran görüntüsü.

  7. Oluşturduğunuz web uygulaması projesini seçin.

    Visual Studio'da web uygulaması projesinin seçili olduğu Başvuru Ekle penceresinin ekran görüntüsü.

    Başvuru ekleyerek web uygulaması projesini kaynak grubu projesine bağlar ve bazı özellikleri otomatik olarak ayarlarsınız. Bu özellikleri başvurunun Özellikler penceresinde görürsünüz. Dosya Yolu Ekle paketin oluşturulduğu yerin yolunu içerir. Klasörü (ExampleApp) ve dosyayı (package.zip) not edin. Uygulamayı dağıtırken parametre olarak ileteceğiniz için bu değerleri bilmeniz gerekir.

    Web uygulaması projesinin başvuru özelliklerini görüntüleyen Özellikler penceresi ekran görüntüsü.

  8. Şablonunuza (WebSite.json) Geri dön ve şablona bir kaynak ekleyin.

    Yeni Kaynak Ekle seçeneğinin vurgulandığı JSON Anahat penceresinin ekran görüntüsü.

  9. Bu kez Web Apps için Web Dağıtımı’nı seçin.

    Web Apps için Web Dağıtımı'nın seçili olduğu Yeni Kaynak Ekle penceresinin ekran görüntüsü.

    Şablonunuzu kaydedin.

  10. Şablonunuzda bazı yeni parametreler var. Bunlar önceki adımda eklendi. Bu değerler otomatik olarak oluşturulduğundan _artifactsLocation veya _artifactsLocationSasToken için değer sağlamanız gerekmez. Ancak, klasör ve dosya adını dağıtım paketini içeren yola ayarlamanız gerekir. Bu parametrelerin adları PackageFolder ve PackageFileName ile biter. Adın ilk bölümü, eklediğiniz Web Dağıtımı kaynağının adıdır. Bu makalede, bunlar ExampleAppPackageFolder ve ExampleAppPackageFileName olarak adlandırılır.

    Website.parameters.json dosyasını açın ve bu parametreleri başvuru özelliklerinde gördüğünüz değerlere ayarlayın. ExampleAppPackageFolder'ı klasörün adına ayarlayın. ExampleAppPackageFileName değerini zip dosyasının adına ayarlayın.

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "hostingPlanName": {
          "value": "demoHostPlan"
        },
        "ExampleAppPackageFolder": {
          "value": "ExampleApp"
        },
        "ExampleAppPackageFileName": {
          "value": "package.zip"
        }
      }
    }
    

Altyapı ile kod dağıtma

Projeye kod eklediğinizden, bu kez dağıtımınız biraz farklı. Dağıtım sırasında, projeniz için yapıtları Resource Manager erişebileceği bir yere hazırlarsınız. Yapıtlar bir depolama hesabına hazırlanır.

Az modül betiği

Az modülü betiğini kullanıyorsanız şablonunuzda yapmanız gereken küçük bir değişiklik vardır. Bu betik yapıtların konumuna eğik çizgi ekler, ancak şablonunuz bu eğik çizgiyi beklemez. WebSite.json dosyasını açın ve MSDeploy uzantısının özelliklerini bulun. PackageUri adlı bir özelliği vardır. Yapıtların konumu ile paket klasörü arasındaki eğik çizgiyi kaldırın.

Şu şekilde görünmelidir:

"packageUri": "[concat(parameters('_artifactsLocation'), parameters('ExampleAppPackageFolder'), '/', parameters('ExampleAppPackageFileName'), parameters('_artifactsLocationSasToken'))]",

Yukarıdaki örnekte parametreler ('_artifactsLocation') ile parametreler ('ExampleAppPackageFolder') arasında hiçbir fark olmadığına '/', dikkat edin.

Projeyi yeniden oluşturun. Projeyi oluşturmak, dağıtmanız gereken dosyaların hazırlama klasörüne eklenmesini sağlar.

Şimdi bir PowerShell konsolu açın ve şunu çalıştırın:

.\Deploy-AzTemplate.ps1 -ArtifactStagingDirectory .\bin\Debug\staging\ExampleAppDeploy -Location centralus -TemplateFile WebSite.json -TemplateParametersFile WebSite.parameters.json -UploadArtifacts -StorageAccountName <storage-account-name>

AzureRM modül betiği

AzureRM modülü betiği için Visual Studio'yu kullanın:

  1. Yeniden dağıtmak için Dağıt'ı ve daha önce dağıttığınız kaynak grubunu seçin.

    Dağıt ve daha önce kullanılan kaynak grubunun vurgulandığı dağıtım projesi bağlam menüsünün ekran görüntüsü.

  2. Yapıt depolama hesabı için bu kaynak grubuyla dağıtılan depolama hesabını seçin.

    Yapıt depolama hesabı seçili durumdayken Kaynak Grubuna Dağıt iletişim kutusunun ekran görüntüsü.

Web uygulamasını görüntüleme

  1. Dağıtım tamamlandıktan sonra portalda web uygulamanızı seçin. Yeni siteye göz atmak için URL’yi seçin.

    URL'nin vurgulandığı web uygulaması kaynağını görüntüleyen Azure portal ekran görüntüsü.

  2. Varsayılan ASP.NET uygulamasını başarıyla dağıttığınızdan emin olun.

    Web tarayıcısında dağıtılan varsayılan ASP.NET uygulamasının ekran görüntüsü.

İşlem panosu ekleme

Yalnızca Visual Studio arabirimi aracılığıyla kullanılabilir olan kaynaklarla sınırlı olmazsınız. Şablonunuza özel bir kaynak ekleyerek dağıtımınızı özelleştirebilirsiniz. Kaynak eklemeyi göstermek için dağıttığınız kaynağı yönetmek üzere bir işlem panosu eklersiniz.

  1. WebSite.json dosyasını açın ve depolama hesabı kaynağından sonra ancak kaynaklar bölümünün kapatılmasından ] önce aşağıdaki JSON dosyasını ekleyin.

     ,{
       "properties": {
         "lenses": {
           "0": {
             "order": 0,
             "parts": {
               "0": {
                 "position": {
                   "x": 0,
                   "y": 0,
                   "colSpan": 4,
                   "rowSpan": 6
                 },
                 "metadata": {
                   "inputs": [
                     {
                       "name": "resourceGroup",
                       "isOptional": true
                     },
                     {
                       "name": "id",
                       "value": "[resourceGroup().id]",
                       "isOptional": true
                     }
                   ],
                   "type": "Extension/HubsExtension/PartType/ResourceGroupMapPinnedPart"
                 }
               },
               "1": {
                 "position": {
                   "x": 4,
                   "y": 0,
                   "rowSpan": 3,
                   "colSpan": 4
                 },
                 "metadata": {
                   "inputs": [],
                   "type": "Extension[azure]/HubsExtension/PartType/MarkdownPart",
                   "settings": {
                     "content": {
                       "settings": {
                         "content": "__Customizations__\n\nUse this dashboard to create and share the operational views of services critical to the application performing. To customize simply pin components to the dashboard and then publish when you're done. Others will see your changes when you publish and share the dashboard.\n\nYou can customize this text too. It supports plain text, __Markdown__, and even limited HTML like images <img width='10' src='https://portal.azure.com/favicon.ico'/> and <a href='https://azure.microsoft.com' target='_blank'>links</a> that open in a new tab.\n",
                         "title": "Operations",
                         "subtitle": "[resourceGroup().name]"
                       }
                     }
                   }
                 }
               }
             }
           }
         },
         "metadata": {
           "model": {
             "timeRange": {
               "value": {
                 "relative": {
                   "duration": 24,
                   "timeUnit": 1
                 }
               },
               "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
             }
           }
         }
       },
       "type": "Microsoft.Portal/dashboards",
       "apiVersion": "2015-08-01-preview",
       "name": "[concat('ARM-',resourceGroup().name)]",
       "location": "[resourceGroup().location]",
       "tags": {
         "hidden-title": "[concat('OPS-',resourceGroup().name)]"
       }
     }
    
  2. Projenizi yeniden dağıt.

  3. Dağıtım tamamlandıktan sonra panonuzu portalda görüntüleyin. Pano'yu seçin ve dağıtılan panoyu seçin.

    Örnek bir özel panoyu vurgulayan Azure portal Panosu sayfasının ekran görüntüsü.

  4. Özelleştirilmiş panoyu görürsünüz.

    Azure portal özelleştirilmiş işletim panosunun ekran görüntüsü.

Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak panoya erişimi yönetebilirsiniz. Ayrıca dağıtıldıktan sonra panonun görünümünü özelleştirebilirsiniz. Ancak kaynak grubunuza yeniden dağıttığınızda pano şablonunuzdaki varsayılan durumuna sıfırlanır. Pano oluşturma hakkında daha fazla bilgi için bkz. Program aracılığıyla Azure Panoları oluşturma.

Kaynakları temizleme

Artık Azure kaynakları gerekli değilse, kaynak grubunu silerek dağıttığınız kaynakları temizleyin.

  1. Azure portal soldaki menüden Kaynak grupları'nı seçin.

  2. Kaynak grubu adını seçin.

  3. Üstteki menüden Kaynak grubunu sil'i seçin.

Sonraki adımlar

Bu makalede Visual Studio kullanarak şablon oluşturmayı ve dağıtmayı öğrendiniz. Şablon geliştirme hakkında daha fazla bilgi edinmek için yeni başlangıç öğretici serimize bakın: