2017-01-05 7 views
0

私は、PowerShellのNew-AzureRmResourceGroupDeploymentコマンドレットを呼び出して、私のJSONテンプレートに従って、多数のAzureリソースをスピンアップします。
しかし、多くの場合、MongoDBまたはRedis VMのいずれかが最初にプロビジョニングに失敗し、コマンドを再実行して、プロビジョニングが成功します。Azure Powershellテンプレート:すべてのリソースが正常にプロビジョニングされた場合はブール値を返しますか?

すべてのリソースの展開が成功したかどうかをプログラムで確認し、whileループでこのブール値を使用して、すべてのリソースが正常にプロビジョニングされるまで展開を継続できますか?上記のコマンドレットはオブジェクトを返しますが、プロビジョニングの成功の指標を見つけることができませんでした。線に沿って

何か:

While ($didNotSucceed) { 
    New-AzureRmResourceGroupDeployment -TemplateFile <FileName> -ResourceGroupName <ResourceGroupName> 
    } 

答えて

1
$result = New-AzureRmResourceGroupDeployment bla-bla-bla 
if ($result.ProvisioningState -eq "Failed") { 
    New-AzureRmResourceGroupDeployment bla-bla-bla 
} 

リソースグループの展開は、展開(驚くべき)のプロビジョニング状態を有するProvisioningState特性を有します。 FailedまたはSucceededです(私は他のステータスは見ていません)。

はまた、ここで私は仕事を構築し、私のジェンキンスで使っていたものです:

try { $deploy = New-AzureRmResourceGroupDeployment @parameters } 
catch { Remove-AzureRmResourceGroup -ResourceGroupName $rgName -Force; $error; $_; exit 1 } 
+1

通常コードがどのように動作するかについて語ってあなたのポストに説明を追加することをお勧めします。これにより、新しい開発者はコードの内容を理解することができます。 –

+0

説明はほとんどありません。しかし、あなたが主張すれば。 – 4c74356b41

+0

コードは私自身の質問を解決するのに十分でしたが、説明は傷ついていません。ありがとう。 – AllTradesJack

関連する問題