Не удается увидеть группу ресурсов на портале Azure - PullRequest
0 голосов
/ 29 ноября 2018

Спойлер: я новичок в Azure и Azure Powershell.

Я начал изучать Azure и Azure Powershell, и моей текущей самостоятельной тренировкой было написание сценария, который проверяет, существует ли конкретная группа ресурсов вAzure.Если эта конкретная группа ресурсов не существует, создайте ее.Поэтому я начал писать этот сценарий:

# Exit on error
$ErrorActionPreference = "Stop"

# Import module for Azure Rm
Import-Module AzureRM

# Connect with Azure
Connect-AzureRmAccount

# Define name of Resource group we want to create
$ResourceGroupTest = "ResourceGroupForStorageAccount"

# Check if ResourceGroup exists
Get-AzureRmResourceGroup -Name $ResourceGroupTest -ErrorVariable $NotPresent -ErrorAction SilentlyContinue

Write-Host "Start to check if Resource group '$($ResourceGroupTest)' exists..."
if ($NotPresent) {
    Write-Host "Resource group with name '$($ResourceGroupTest)' does not exist."

    # Create resource group
    New-AzureRmResourceGroup -Name $ResourceGroupTest -Location "West Europe" -Verbose
} else {
    Write-Host "Found Resource group with name '$($ResourceGroupTest)'."
}

Теперь, когда я запускаю этот сценарий, я получаю такой вывод:

Start to check if Resource group 'ResourceGroupForStorageAccount' exists...
Found Resource group with name 'ResourceGroupForStorageAccount'.
Account                      SubscriptionName               Tenant ...
-------                      ----------------               -------- ...
my.email@host.com            Some subscription              ...             

Но я не могу найти эту вновь созданную группу ресурсовс именем ResourceGroupForStorageAccount в списке групп ресурсов на портале Azure RM.

Где моя проблема?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

просто для добавления к существующему ответу, это происходит потому, что powershell расширяет переменную в ваших выражениях -ErrorVariable $NotPresent.и поскольку ваша переменная не существует, она становится: -ErrorVariable.Таким образом, он не создает переменную с именем not present, и ваш оператор if() не работает так, как вы ожидаете.

0 голосов
/ 29 ноября 2018

Неверное значение для -ErrorVariable, пожалуйста, используйте NotPresent вместо $NotPresent для параметра -ErrorVariable.Если вы используете -ErrorVariable $NotPresent, то $NotPresent всегда равно null / false, поэтому команда создания ресурса никогда не выполняется.

пример кода, как показано ниже:

#your other code here.

# Check if ResourceGroup exists
Get-AzureRmResourceGroup -Name $ResourceGroupTest -ErrorVariable NotPresent -ErrorAction SilentlyContinue

Write-Host "Start to check if Resource group '$($ResourceGroupTest)' exists..."
if ($NotPresent) {
    Write-Host "Resource group with name '$($ResourceGroupTest)' does not exist."

    # Create resource group
    New-AzureRmResourceGroup -Name $ResourceGroupTest -Location "West Europe" -Verbose
} else {
    Write-Host "Found Resource group with name '$($ResourceGroupTest)'."
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...