Alıştırma - what-if komutuyla değişiklikleri önizleme
Not
Korumalı alanı ilk kez etkinleştirdiğinizde ve koşulları kabul edişinizde, Microsoft hesabınız Microsoft Learn Korumalı Alanı adlı yeni bir Azure diziniyle ilişkilendirilir. Ayrıca Concierge Aboneliği adlı özel bir aboneliğe de eklenirsiniz.
Oyuncak şirketinizdeki tasarım ekibi, sanal ağı yapılandıran bir şablonu güncelleştirmenizi istedi. Bu ünitede, güncelleştirilmiş şablonu dağıtmanın etkilerini doğrulamak için what-if kullanacaksınız.
İşlem sırasında şunları yapacaksınız:
- İlk şablonu oluşturun ve dağıtın.
- Biraz farklı bir şablon dağıtmaya hazırlanın ve beklenen değişiklikleri gözden geçirmek için durum işlemini kullanın.
- Boş bir şablon dağıtmak için eksiksiz bir dağıtım kullanın ve beklenen değişiklikleri gözden geçirmek için durum işlemini kullanın.
Bu alıştırmada Visual Studio Code için Azure Resource Manager Araçları kullanılmaktadır. Visual Studio Code’da bu uzantıyı yüklediğinizden emin olun.
Bu alıştırmada Visual Studio Code için Bicep uzantısı kullanılır. Visual Studio Code’da bu uzantıyı yüklediğinizden emin olun.
Başlangıç şablonunu oluşturma
Ekibinizin kullandığı mevcut bir şablonla başlarsınız. Şablon sanal ağı oluşturur.
Visual Studio Code'u açın.
azuredeploy.json adlı yeni bir dosya oluşturun.
Visual Studio Code'un ARM şablonu araçlarını yükleyebilmesi için boş dosyayı kaydedin.
Dosya>Farklı Kaydet'i veya Windows'ta Ctrl+S (macOS'ta⌘+S) seçeneğini belirleyebilirsiniz. Dosyayı nereye kaydettiğinizi unutmayın. Örneğin, dosyayı kaydetmek için bir betik klasörü oluşturmak isteyebilirsiniz.
Aşağıdaki kodu azuredeploy.json kopyalayın.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "variables": {}, "resources": [ { "apiVersion": "2024-01-01", "type": "Microsoft.Network/virtualNetworks", "name": "vnet-001", "location": "[resourceGroup().location]", "tags": { "CostCenter": "12345", "Owner": "Team A" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
Şablonu kaydedin.
Visual Studio Code'u açın.
main.bicep adlı yeni bir dosya oluşturun.
Visual Studio Code'un Bicep araçlarını yükleyebilmesi için boş dosyayı kaydedin.
Dosya>Farklı Kaydet'i veya Windows'ta Ctrl+S (macOS'ta⌘+S) seçeneğini belirleyebilirsiniz. Dosyayı nereye kaydettiğinizi unutmayın. Örneğin, dosyayı kaydetmek için bir betik klasörü oluşturmak isteyebilirsiniz.
Aşağıdaki kodu main.bicep içine kopyalayın.
resource vnet 'Microsoft.Network/virtualNetworks@2024-01-01' = { name: 'vnet-001' location: resourceGroup().location tags: { 'CostCenter': '12345' 'Owner': 'Team A' } properties: { addressSpace: { addressPrefixes: [ '10.0.0.0/16' ] } enableVmProtection: false enableDdosProtection: false subnets: [ { name: 'subnet001' properties: { addressPrefix: '10.0.0.0/24' } } { name: 'subnet002' properties: { addressPrefix: '10.0.1.0/24' } } ] } }
Şablonu kaydedin.
Şablonu Azure’a dağıtma
Bu şablonu Azure'a dağıtmak için Visual Studio Code terminalinden Azure hesabınızda oturum açın. Azure PowerShell'i yüklediğinizden emin olun ve korumalı alanı etkinleştiren hesapta oturum açın.
Terminal menüsünde Yeni Terminal’i seçin. Terminal penceresi genellikle ekranınızın alt yarısında açılır.
Terminal penceresinin sağ tarafında gösterilen kabuk powershell veya pwsh ise, doğru kabuk açıktır ve sonraki bölüme atlayabilirsiniz.
PowerShell veya pwsh dışında bir kabuk görünürse, kabuk açılan okunu ve ardından PowerShell'i seçin.
Terminal kabukları listesinde powershell veya pwsh seçeneğini belirleyin.
Terminalde, şablonunuzu kaydettiğiniz dizine gidin. Örneğin, şablonunuzu templates klasörüne kaydettiyseniz şu komutu kullanabilirsiniz:
Set-Location -Path templates
Bicep CLI'yi yükleme
Azure PowerShell'den Bicep'i kullanmak için Bicep CLI'yı yükleyin.
Azure PowerShell kullanarak Azure’da oturum açma
Visual Studio Code terminalinde aşağıdaki komutu çalıştırın:
Connect-AzAccount
Azure hesabınızda oturum açabilmeniz için bir tarayıcı açılır.
Azure'da oturum açtıktan sonra terminalde bu hesapla ilişkili aboneliklerin listesi görüntülenir.
Korumalı alanı etkinleştirdiyseniz Concierge Aboneliği adlı bir abonelik görüntülenir. Alıştırmanın geri kalanında kullanın.
Bu oturumda çalıştırdığınız tüm Azure PowerShell komutları için varsayılan aboneliği ayarlayın.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Not
Yakın zamanda birden fazla korumalı alan kullandıysanız terminalde birden fazla Concierge Aboneliği örneği görüntülenebilir. Bu durumda, varsayılan abonelik olarak bir tane ayarlamak için sonraki iki adımı kullanın. Yukarıdaki komut başarılı olursa ve yalnızca bir Concierge Aboneliği listeleniyorsa, sonraki iki adımı atlayın.
Abonelik kimliğini alın. Aşağıdaki komutu çalıştırdığınızda abonelikleriniz ve bunların kimlikleri listelenir. öğesini bulun
Concierge Subscription
ve ikinci sütundaki kimliği kopyalayın. şunaaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
benzer.Get-AzSubscription
Etkin aboneliğinizi Concierge Aboneliği olarak değiştirin. {Abonelik kimliğiniz} değerini kopyaladığınız kimlikle değiştirdiğinizden emin olun.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Varsayılan kaynak grubunu ayarlama
Bu alıştırmada azure powershell komutlarının geri kalanından varsayılan kaynak grubunu ayarlayabilir ve parametresini atlayabilirsiniz. Bu varsayılan değeri korumalı alan ortamında sizin için oluşturulan kaynak grubuna ayarlayın.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Bu şablonu Azure’a dağıtmak için, Visual Studio Code terminalinden Azure hesabınızda oturum açmanız gerekir. Azure CLI'yı yüklediğinizden emin olun ve korumalı alanı etkinleştirmek için kullandığınız hesapla oturum açmayı unutmayın.
Terminal menüsünde Yeni Terminal’i seçin. Terminal penceresi genellikle ekranınızın alt yarısında açılır.
Terminal penceresinin sağ tarafında gösterilen kabuk bash ise, doğru kabuk açıktır ve sonraki bölüme atlayabilirsiniz.
Bash dışında bir kabuk görünürse, kabuk açılan okunu ve ardından Azure Cloud Shell (Bash) öğesini seçin.
Terminal kabukları listesinde bash'i seçin.
Terminalde, şablonunuzu kaydettiğiniz dizine gidin. Örneğin, şablonunuzu templates klasörüne kaydettiyseniz şu komutu kullanabilirsiniz:
cd templates
Bicep'i yükleme
Bicep'in en son sürümüne sahip olduğunuzdan emin olmak için aşağıdaki komutu çalıştırın:
az bicep install && az bicep upgrade
Azure'da oturum açma
Visual Studio Code terminalinde aşağıdaki komutu çalıştırarak Azure'da oturum açın:
az login
Açılan tarayıcıda Azure hesabınızda oturum açın.
Visual Studio Code terminali, bu hesapla ilişkili aboneliklerin listesini görüntüler.
Bu oturumda çalıştırdığınız tüm Azure CLI komutları için varsayılan aboneliği ayarlayın.
az account set --subscription "Concierge Subscription"
Not
Yakın zamanda birden fazla korumalı alan kullandıysanız terminalde birden fazla Concierge Aboneliği örneği görüntülenebilir. Bu durumda, varsayılan abonelik olarak bir tane ayarlamak için sonraki iki adımı kullanın. Yukarıdaki komut başarılı olursa ve yalnızca bir Concierge Aboneliği listeleniyorsa, sonraki iki adımı atlayın.
Concierge Aboneliği kimliklerini alın.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Abonelik kimliğini kullanarak varsayılan aboneliği ayarlayın. {your subscription ID} öğesini en son Concierge Aboneliği Kimliği ile değiştirin.
az account set --subscription {your subscription ID}
Varsayılan kaynak grubunu ayarlama
Azure CLI'yı kullandığınızda, varsayılan kaynak grubunu ayarlayabilir ve bu alıştırmadaki Azure CLI komutlarının geri kalanından parametresini atlayabilirsiniz. Varsayılan değeri korumalı alan ortamında sizin için oluşturulan kaynak grubuna ayarlayın.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Bu şablonu Azure'a dağıtmak için Visual Studio Code terminalinden Azure hesabınızda oturum açın. Azure PowerShell'i yüklediğinizden emin olun ve korumalı alanı etkinleştiren hesapta oturum açın.
Terminal menüsünde Yeni Terminal’i seçin. Terminal penceresi genellikle ekranınızın alt yarısında açılır.
Terminal penceresinin sağ tarafında gösterilen kabuk powershell veya pwsh ise, doğru kabuk açıktır ve sonraki bölüme atlayabilirsiniz.
PowerShell veya pwsh dışında bir kabuk görünürse, kabuk açılan okunu ve ardından PowerShell'i seçin.
Terminal kabukları listesinde powershell veya pwsh seçeneğini belirleyin.
Terminalde, şablonunuzu kaydettiğiniz dizine gidin. Örneğin, şablonunuzu templates klasörüne kaydettiyseniz şu komutu kullanabilirsiniz:
Set-Location -Path templates
Azure PowerShell kullanarak Azure’da oturum açma
Visual Studio Code terminalinde aşağıdaki komutu çalıştırın:
Connect-AzAccount
Azure hesabınızda oturum açabilmeniz için bir tarayıcı açılır.
Azure'da oturum açtıktan sonra terminalde bu hesapla ilişkili aboneliklerin listesi görüntülenir.
Korumalı alanı etkinleştirdiyseniz Concierge Aboneliği adlı bir abonelik görüntülenir. Alıştırmanın geri kalanında kullanın.
Bu oturumda çalıştırdığınız tüm Azure PowerShell komutları için varsayılan aboneliği ayarlayın.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Not
Yakın zamanda birden fazla korumalı alan kullandıysanız terminalde birden fazla Concierge Aboneliği örneği görüntülenebilir. Bu durumda, varsayılan abonelik olarak bir tane ayarlamak için sonraki iki adımı kullanın. Yukarıdaki komut başarılı olursa ve yalnızca bir Concierge Aboneliği listeleniyorsa, sonraki iki adımı atlayın.
Abonelik kimliğini alın. Aşağıdaki komutu çalıştırdığınızda abonelikleriniz ve bunların kimlikleri listelenir. öğesini bulun
Concierge Subscription
ve ikinci sütundaki kimliği kopyalayın. şunaaaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
benzer.Get-AzSubscription
Etkin aboneliğinizi Concierge Aboneliği olarak değiştirin. {Abonelik kimliğiniz} değerini kopyaladığınız kimlikle değiştirdiğinizden emin olun.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Varsayılan kaynak grubunu ayarlama
Bu alıştırmada azure powershell komutlarının geri kalanından varsayılan kaynak grubunu ayarlayabilir ve parametresini atlayabilirsiniz. Bu varsayılan değeri korumalı alan ortamında sizin için oluşturulan kaynak grubuna ayarlayın.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Bu şablonu Azure’a dağıtmak için, Visual Studio Code terminalinden Azure hesabınızda oturum açmanız gerekir. Azure CLI'yı yüklediğinizden emin olun ve korumalı alanı etkinleştirmek için kullandığınız hesapla oturum açmayı unutmayın.
Terminal menüsünde Yeni Terminal’i seçin. Terminal penceresi genellikle ekranınızın alt yarısında açılır.
Terminal penceresinin sağ tarafında gösterilen kabuk bash ise, doğru kabuk açıktır ve sonraki bölüme atlayabilirsiniz.
Bash dışında bir kabuk görünürse, kabuk açılan okunu ve ardından Azure Cloud Shell (Bash) öğesini seçin.
Terminal kabukları listesinde bash'i seçin.
Terminalde, şablonunuzu kaydettiğiniz dizine gidin. Örneğin, şablonunuzu templates klasörüne kaydettiyseniz şu komutu kullanabilirsiniz:
cd templates
Azure'da oturum açma
Visual Studio Code terminalinde aşağıdaki komutu çalıştırarak Azure'da oturum açın:
az login
Açılan tarayıcıda Azure hesabınızda oturum açın.
Visual Studio Code terminali, bu hesapla ilişkili aboneliklerin listesini görüntüler.
Bu oturumda çalıştırdığınız tüm Azure CLI komutları için varsayılan aboneliği ayarlayın.
az account set --subscription "Concierge Subscription"
Not
Yakın zamanda birden fazla korumalı alan kullandıysanız terminalde birden fazla Concierge Aboneliği örneği görüntülenebilir. Bu durumda, varsayılan abonelik olarak bir tane ayarlamak için sonraki iki adımı kullanın. Yukarıdaki komut başarılı olursa ve yalnızca bir Concierge Aboneliği listeleniyorsa, sonraki iki adımı atlayın.
Concierge Aboneliği kimliklerini alın.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Abonelik kimliğini kullanarak varsayılan aboneliği ayarlayın. {your subscription ID} öğesini en son Concierge Aboneliği Kimliği ile değiştirin.
az account set --subscription {your subscription ID}
Varsayılan kaynak grubunu ayarlama
Azure CLI'yı kullandığınızda, varsayılan kaynak grubunu ayarlayabilir ve bu alıştırmadaki Azure CLI komutlarının geri kalanından parametresini atlayabilirsiniz. Varsayılan değeri korumalı alan ortamında sizin için oluşturulan kaynak grubuna ayarlayın.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Azure PowerShell kullanarak şablonu dağıtma
Şablonu dağıtmak için New-AzResourceGroupDeployment
komutunu çalıştırın.
New-AzResourceGroupDeployment -TemplateFile main.bicep
Çalışan... metni terminalde görünür. Dağıtımın tamamlanması bir veya iki dakika sürer.
Azure PowerShell kullanarak şablonu dağıtma
Şablonu dağıtmak için New-AzResourceGroupDeployment
komutunu çalıştırın.
New-AzResourceGroupDeployment -TemplateFile azuredeploy.json
Çalışan... metni terminalde görünür. Dağıtımın tamamlanması bir veya iki dakika sürer.
Azure CLI kullanarak şablonu dağıtma
Şablonu dağıtmak için az deployment group create
komutunu çalıştırın.
az deployment group create --template-file main.bicep
Dağıtımın tamamlanması bir veya iki dakika sürer.
Azure CLI kullanarak şablonu dağıtma
Şablonu dağıtmak için az deployment group create
komutunu çalıştırın.
az deployment group create --template-file azuredeploy.json
Dağıtımın tamamlanması bir veya iki dakika sürer.
Dağıtımı doğrulama
Dağıtımınızın oluşturulduğunu ve Azure'a gönderildiğini doğrulamak için Azure portalına gidin ve korumalı alan aboneliğinde olduğunuzdan emin olun:
Sayfanın üst köşesinde bulunan avatarınızı seçin.
Dizini değiştir’i seçin. Listede Microsoft Learn Korumalı Alan dizinini seçin.
Kaynak grupları’nı seçin.
[sandbox resource group name] öğesini seçin.Genel Bakış bölümünde bir dağıtımın başarılı olduğunu göreceksiniz.
Dağıtımın ayrıntılarını görmek için 1 Başarılı seçeneğini belirleyin.
Dağıtılan kaynakları görmek için ana dağıtımı seçin. Bu durumda iki alt ağa sahip bir sanal ağ (adres alanı 10.0.0.0/16) dağıtılmıştır.
Daha sonra dağıtımları yeniden denetleyebilmeniz için sayfayı tarayıcınızda açık bırakın.
Şablonu değiştirme
Visual Studio Code'daki azuredeploy.json dosyasında adlı
Owner
etiketi ve değerini silin. İşiniz bittiğinde sanal ağıntags
özelliği şu şekilde görünmelidir:"tags": { "CostCenter": "12345" },
olarak değiştirmek
/16
için/15
öğesiniaddressPrefixes
güncelleştirin. İşiniz bittiğinde sanal ağınaddressSpace
özelliği şu şekilde görünmelidir:"addressSpace": { "addressPrefixes": [ "10.0.0.0/15" ] },
adlı
subnet001
alt ağı silin. Alt ağ nesnesinin tamamını sildiğinizden emin olun. İşiniz bittiğinde sanal ağınsubnets
özelliği şu şekilde görünmelidir:"subnets": [ { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ]
Şablonu kaydedin.
Visual Studio Code'daki main.bicep dosyasında adlı
Owner
etiketi ve değerini silin. İşiniz bittiğinde sanal ağıntags
özelliği şu şekilde görünmelidir:tags: { 'CostCenter': '12345' }
olarak
addressPrefixes
değiştirmek için öğesini güncelleştirin/15
/16
. İşiniz bittiğinde sanal ağınaddressSpace
özelliği şu şekilde görünmelidir:addressSpace: { addressPrefixes: [ '10.0.0.0/15' ] }
adlı
subnet001
alt ağı silin. Alt ağ nesnesinin tamamını sildiğinizden emin olun. İşiniz bittiğinde sanal ağınsubnets
özelliği şu şekilde görünmelidir:subnets: [ { name: 'subnet002' properties: { addressPrefix: '10.0.1.0/24' } } ]
Şablonu kaydedin.
What-if komutunu değiştirilmiş şablonla çalıştırma
what-if işlemini gerçekleştirmek için New-AzResourceGroupDeployment
komutunu -WhatIf
bayrağıyla çalıştırın.
New-AzResourceGroupDeployment `
-WhatIf `
-TemplateFile main.bicep
what-if işlemini gerçekleştirmek için New-AzResourceGroupDeployment
komutunu -WhatIf
bayrağıyla çalıştırın.
New-AzResourceGroupDeployment `
-WhatIf `
-TemplateFile azuredeploy.json
Durum işlemini gerçekleştirmek için komutunu çalıştırın az deployment group what-if
:
az deployment group what-if \
--template-file main.bicep
Durum işlemini gerçekleştirmek için komutunu çalıştırın az deployment group what-if
:
az deployment group what-if \
--template-file azuredeploy.json
Durum çıktısı aşağıdakine benzer:
Ön eke ek olarak sonucun renk kodlu olduğuna dikkat edin:
- Değişiklikler için mor ve ~
- Oluşturulacak yeni kaynaklar için yeşil ve +
- Silinecekler için turuncu ve -
Şablondaki kaynakları kaldırma
Visual Studio Code'da azuredeploy.json dosyasını güncelleştirin ve dizinin tüm içeriğini
resources
kaldırın. İşiniz bittiğinde şablonunuz şu şekilde görünmelidir:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ ] }
Şablonu kaydedin.
Visual Studio Code'daki main.bicep dosyasında dosyanın tüm içeriğini silin, ancak dosyanın kendisini silmeyin.
Şablonu kaydedin.
Tamamlama modunu ve onay seçeneğini kullanarak dağıtma
Aşağıdaki adımlarda var olan ortamınıza boş bir şablon dağıtacaksınız.
Uyarı
Gerçek hayatta bunu yapmak, buluttaki her şeyin kaldırılmasına neden olacaktır. Aşağıdaki kodda ilginizi çekebilecek bir deneme sunulmuştur ancak bu modu kullanırken dikkatli olmanız gerekir. Önerilen değişiklikleri beğenmemeniz durumunda -Confirm
bayrağını kullanarak bu işlemi durdurabilirsiniz.
Uyarı
Gerçek hayatta bunu yapmak, buluttaki her şeyin kaldırılmasına neden olacaktır. Aşağıdaki kodda ilginizi çekebilecek bir deneme sunulmuştur ancak bu modu kullanırken dikkatli olmanız gerekir. Önerilen değişiklikleri beğenmemeniz durumunda --confirm-with-what-if
bayrağını kullanarak bu işlemi durdurabilirsiniz.
Dağıtımı tam modda yürütmek için bayrağıyla
-Mode Complete
çalıştırınNew-AzResourceGroupDeployment
:New-AzResourceGroupDeployment ` -Mode Complete ` -Confirm ` -TemplateFile main.bicep
Çıkışınız aşağıdakine benzer olacaktır:
Çıkışın son satırının ne tür bir onay olduğunu not edin. Devam etmeniz için y veya n seçeneklerinden birini belirtmenizi istiyor.
[A] Tümüne Evet için, dağıtımı yürütmek ve ortamınızı temizlemek için A girin.
Dağıtımı tam modda yürütmek için bayrağıyla
-Mode Complete
çalıştırınNew-AzResourceGroupDeployment
:New-AzResourceGroupDeployment ` -Mode Complete ` -Confirm ` -TemplateFile azuredeploy.json
Çıkışınız aşağıdakine benzer olacaktır:
Çıkışın son satırının ne tür bir onay olduğunu not edin. Devam etmeniz için y veya n seçeneklerinden birini belirtmenizi istiyor.
[A] Tümüne Evet için, dağıtımı yürütmek ve ortamınızı temizlemek için A girin.
Tamamlama modunda bir dağıtım oluşturmak için
az deployment group create
komutunu--mode Complete
bayrağıyla çalıştırın:az deployment group create \ --mode Complete \ --confirm-with-what-if \ --template-file main.bicep
Çıkışınız aşağıdakine benzer olacaktır:
Çıkışın son satırının ne tür bir onay olduğunu not edin. Devam etmeniz için y veya n seçeneklerinden birini belirtmenizi istiyor.
Dağıtımı yürütmek ve ortamınızı temizlemek için y ("evet" için) girin.
Tamamlama modunda bir dağıtım oluşturmak için
az deployment group create
komutunu--mode Complete
bayrağıyla çalıştırın:az deployment group create \ --mode Complete \ --confirm-with-what-if \ --template-file azuredeploy.json
Çıkışınız aşağıdakine benzer olacaktır:
Çıkışın son satırının ne tür bir onay olduğunu not edin. Devam etmeniz için y veya n seçeneklerinden birini belirtmenizi istiyor.
Dağıtımı yürütmek ve ortamınızı temizlemek için y ("evet" için) girin.
Dağıtımı doğrulama
Daha önce kullandığınız açık tarayıcıya geri dönün. Bu ekran görüntüsünde olduğu gibi sanal ağın artık orada olmadığını doğrulayın: