2016-10-21 11 views
0

Ich habe die folgende ARM Template-Struktur:Azure ARM Vorlage geschachtelt Vorlagenbereitstellung nicht Ressourcen aktualisieren nicht gestartet

Parent Template 
    |--Nested Template 1 
    |--... 
    |--Nested Template 6 

Also ich habe nur 2 Ebene von Vorlagen, Eltern und verschachtelt.

Nehmen wir an, ich stelle Eltern zu einer leeren Ressourcengruppe und alles funktioniert gut. Danach lösche ich eine der Ressourcen und möchte dieselbe Parent-Vorlage mit denselben Parametern bereitstellen, um gelöschte Ressourcen zurück zu bringen. Aber die Bereitstellung würde fehlschlagen sagen, dass die Ressource bereits existiert (die andere, nicht die, die ich versucht, neu zu erstellen). Ich habe sowohl den inkrementellen Modus als auch den vollständigen Modus für Bereitstellungen getestet. Wenn ich eine verschachtelte Vorlage mit den fehlenden Ressourcen direkt aufruft, funktioniert sie wie erwartet (dh ich erstelle eine Bereitstellung nur mit verschachtelter Vorlage, nicht mit einer übergeordneten, die verschachtelte Vorlage aufruft).

UPD: Nach einigen zusätzlichen Tests kann ich schließen, dass das noch seltsamer ist als vorher. So beginne ich diesen Einsatz mit Powershell:

New-AzureRmResourceGroupDeployment @parameters

Und es setzt ganz gut, aber wenn ich den gleichen Befehl aufrufen, nachdem der erste Einsatz abgeschlossen würde ich einen Fehler:

The resource 'gggg-1s-the-wordd' already exists in location 'westeurope' in resource group 'gggg'. A resource with the same name cannot be created in location 'northeurope'. Please select a new resource name.

dies ist Verhalten ausgenommen? Ich kann nichts Relevantes finden, danke!

UPD2: Es spielt keine Rolle, wenn ich Portal oder Powershell verwende, bekomme ich den gleichen Fehler.

UPD3: Oh, Sie werden das lieben, auch wenn ich die Reploy-Schaltfläche in der Bereitstellung traf, würde es mit demselben Fehler auskommen. Ich glaube, das ist ein Fehler.

+0

Redeploy startet einfach eine neue Bereitstellung mit derselben Vorlage und denselben Parametern. Daher ist es sinnvoll, dass es dasselbe wie eine separate Bereitstellung in Portal oder PowerShell ausführt. –

+0

Aber es macht keinen Sinn, dass es Fehler – 4c74356b41

Antwort

1

Also mit Hilfe von Brian konnten wir den Schuldigen identifizieren. Das Problem war, dass der Standort der WebApp auf "Ressourcengruppe(). Location" festgelegt war, während der App Service Plan die Position von Parametern korrekt erfasste. Dies führte zu einem Problem, bei dem WebApp zur Bereitstellungszeit in der Region bereitgestellt wurde, in der sich der App Service-Plan befand. Zur Evaluierungszeit würde es jedoch in Betracht ziehen, dass diese WebApp zu der Region gehört, in der sich die Ressourcengruppe befand. TLDR - Copy Paste Fehler, der mit einem Fehler bei der Standortbestimmung in ARM gekoppelt ist, führt zu einem ziemlich merkwürdigen Verhalten.

+0

Ich denke, es ist ein Bug, und sollte so behandelt werden. Es war nicht dein Kopierfehler. Wenn Sie bereits den Namen des Hosting-Plans angeben, ist die Verwendung von resourceGroup(). Location so, wie es sein sollte. ABER, dieser Bug zwingt Sie, sich zu wiederholen und den Standort zu übergeben. In meinem Fall hatte ich bereits einen Plan, und ich benutze einfach eine einfache Vorlage, und rate mal, ich muss sagen, wo diese Website wird .. All diese ARM-Vorlagen fühlt sich an wie in 10 min gemacht wurde von jemandem, der keine Ahnung hat, wie man Ressourcen IRL verwaltet. PS-Validator funktioniert nicht einmal. –

+1

PS Validator ist ein Haufen Mist, es testet nur auf grundlegende Syntaxfehler – 4c74356b41

1

Wenn Sie dieselbe Ressource bereitstellen (absichtlich nicht das Wort "template" dort), um dieselbe Ressourcengruppe zu verwenden, sollte Azure es "so machen". IOW, wenn es nicht da ist, wird es es schaffen, wenn es da ist, sollte es no-op. Es ist nicht so, dass Schwarz und Weiß einige Nuancen haben (wie Sie bestimmte Eigenschaften nicht ändern können, wenn die Ressource vorhanden ist), aber wenn Sie die gleiche Ressource mit den gleichen Eigenschaftswerten für dieselbe Ressourcengruppe bereitstellen, sollten Sie keinen Fehler erhalten.

Im Allgemeinen sollte die Verschachtelung (oder nicht) keinen davon beeinflussen.

Wenn Sie in verschiedenen Ressourcengruppen bereitstellen, wird je nach Ressource möglicherweise ein Fehler zu "bereits vorhanden" angezeigt.

Alles gesagt, es ist wirklich schwer zu sagen in Ihrem speziellen Fall, was ohne nähere Details passiert ... Also, wenn das nicht hilft, können Sie einige Details hinzufügen (was ist die genaue Fehlermeldung) oder eine Repro (Vorlage, mit der wir das Problem sehen könnten)?

+0

Ich habe weitere Details hinzugefügt, würden Sie so freundlich sein, sie anzuschauen und kontaktieren Sie mich persönlich, wenn Sie mehr Daten benötigen? Mein Twitter-Nickname ist der gleiche wie hier. Vielen Dank! – 4c74356b41

+1

Ich bin nicht viel von einem Hochtöner - aber wenn Sie mir eine E-Mail senden möchten, bin ich glücklich zu graben ... bmoore bei microsoft.com ... –

Verwandte Themen