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.
Visual Studio'da Dosya>Yeni Proje'yi> seçin.
Azure Kaynak Grubu proje şablonunu ve İleri'yi seçin.
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.
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.
Seçtiğiniz şablon sadece başlangıçtır; senaryonuzun gereksinimlerini karşılamak üzere kaynak ekleyebilir ve kaldırabilirsiniz.
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.
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.
Şablonunuz üzerinde çalışmak için WebSite.json dosyasını açın.
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.
Şablonun bu bölümüne gitmek için ana hattaki bir öğeyi seçin.
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.
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.
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.
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" ] }
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.
numberOfWorkers değerini 1 olarak ayarlayabilir ve dosyayı kaydedebilirsiniz.
"properties": { "name": "[parameters('hostingPlanName')]", "numberOfWorkers": 1 }
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:
Dağıtım projesi düğümünün kısayol menüsündeYeniDağıt'ı> seçin.
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.
Çı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.
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.
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.
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.
Visual Studio çözümünüze bir proje ekleyin. Çözüme sağ tıklayın veYeni Proje Ekle'yi> seçin.
ASP.NET Core Web Uygulaması ekleyin.
Web uygulamanıza bir ad verin ve Oluştur'u seçin.
Web Uygulaması ve Oluştur'u seçin.
Visual Studio web uygulamanızı oluşturduktan sonra her iki projeyi de çözümde görürsünüz.
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.
Oluşturduğunuz web uygulaması projesini seçin.
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.
Şablonunuza (WebSite.json) Geri dön ve şablona bir kaynak ekleyin.
Bu kez Web Apps için Web Dağıtımı’nı seçin.
Şablonunuzu kaydedin.
Ş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:
Yeniden dağıtmak için Dağıt'ı ve daha önce dağıttığınız kaynak grubunu seçin.
Yapıt depolama hesabı için bu kaynak grubuyla dağıtılan depolama hesabını seçin.
Web uygulamasını görüntüleme
Dağıtım tamamlandıktan sonra portalda web uygulamanızı seçin. Yeni siteye göz atmak için URL’yi seçin.
Varsayılan ASP.NET uygulamasını başarıyla dağıttığınızdan emin olun.
İş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.
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)]" } }
Projenizi yeniden dağıt.
Dağıtım tamamlandıktan sonra panonuzu portalda görüntüleyin. Pano'yu seçin ve dağıtılan panoyu seçin.
Özelleştirilmiş panoyu görürsünüz.
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.
Azure portal soldaki menüden Kaynak grupları'nı seçin.
Kaynak grubu adını seçin.
Ü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: