WebApp in Microsoft Azure Deutschland mit VS entwickeln

Aktuell gibt es noch etwas Probleme, wenn man mit Visual Studio zum Beispiel eine WebApp für Azure Deutschland entwickeln möchte. Dies liegt unter anderem daran, dass VS die neuen Endpunkte von Azure Deutschland (noch) nicht kennt und damit weder Ressourcen findet noch eine Authentifizierung des Benutzers an Azure vornehmen kann. Wer dennoch schon loslegen will, hier sind zwei mögliche Wege.

Voraussetzung für beide Lösungen ist, dass wir bereits ein Login für Azure Deutschland besitzen. Durch die Besonderheit von Azure Deutschland kann mit den Konten der globalen Azure Cloud nicht zugegriffen werden!

Publish Profil unterschieben

Für diesen Weg legen wir zuerst im Portal eine neue WebApp an. Wichtig ist, dass wir das im Portal für Azure Deutschland tun, Adresse ist https://portal.microsoftazure.de/. Nachdem die WebApp erfolgreich erzeugt wurde, finden wir im Blade mit dem Überblick über die WebApp am oberen rechten Rand drei Punkte. Klickt man hier drauf, dann kann man sich das Profile für die WebApp herunterladen. Dieses enthält alle notwendigen Adressen, Benutzernamen und Passwörter, um von Visual Studio aus eine WebApp hochladen zu können.

VS screenshot

 

Anschließend öffnen wir in VS die WebApp und starten das Deployment ("Veröffentlichen"): Projektmappe, Rechtsklick auf das Projekt, Veröffentlichen (oder einen anderen der vielen Wege...). Es öffnet sich eine Dialogbox, in der wir unter dem Punkt "Profil" ein neues Profil importieren können, und da wählen wir - wer hätte das gedacht - unser gerade heruntergeladenes File mit den Einstellungen für unsere (im Portal erzeugte) WebApp aus. Das war es eigentlich auch schon.

VS screenshot

Warum das funktioniert? Nun, die Verbindung zu Azure wird von VS nur am Anfang des Projekts benötigt, um eine WebApp direkt anzulegen. Bei der Gelegenheit werden - wie beim Anlegen im Portal - die später benutzten Zugänge angelegt und ins Projekt direkt importiert. Für das eigentliche Deployment ist aber dann nicht mehr das Azure-Konto, sondern das erzeugte neue Deployment-Konto zuständig.

(An dieser Stelle vielen Dank an die Kollegen Malte und Robin-Manuel, die mich da unterstützt haben)

Registry ändern

Achtung! Das Verändern der Registry kann ihrem Computer ernsthaften Schaden zufügen! Das ist eine ausdrückliche Warnung, und ich lehne die Verantwortung für alle Folgen ab. Bei mir hat's geklappt, bei anderen auch, wenn es nicht klappt, dann muss evtl. VS hinterher neu installiert werden (an noch Schlimmeres wollen wir gar nicht denken...)

Noch ein paar Vorbemerkungen:

  1. Gilt nur für VS2015, ausprobiert habe ich es mit der freien Community-Version
  2. Eine gleichzeitige Verwendung von Azure-Konten für die globale Azure Umgebung und für Azure Deutschland ist nicht möglich. Wenn die Registry geändert wurde, dann kann nur noch nach Azure Deutschland veröffentlicht werden. Erst nachdem wir die Registry-Änderungen rückgängig gemacht haben, können wir wieder ins globale Azure veröffentlichen.
  3. Wenn in VS schon Azure-Konten hinterlegt sind, dann müssen diese zuerst entfernt werden. Dies gilt auch, wenn man zurück wechseln will ins globale Azure.
  4. VS muss beendet sein, wenn die Registry geändert wird.

Wir sehen, das ist also nichts, mit dem man laufend hin- und her wechselt. Aber gut, genug gewarnt. Hier sind die Registry-Keys, um VS2015 an Azure Deutschland zu gewöhnen:

[code]
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VSCommon\ConnectedUser]
"AadInstance"="https://login.microsoftonline.de/"
"adaluri"="https://management.microsoftazure.de"
"AzureRMEndpoint"="https://management.microsoftazure.de"
"AzureRMAudienceEndpoint"="https://management.core.cloudapi.de"
"EnableAzureRMIdentity"="true"
"GraphUrl"="graph.cloudapi.de"
"AadApplicationTenant"="f577cd82-810c-43f9-a1f6-0cc532871050"

Die Datei liegt auch auf GitHub zum Herunterladen. Abspeichern als .reg-Datei und per Doppelklick importieren. Nach dem Start von VS können wir nun auch direkt eine WebApp anlegen und veröffentlichen. Aber wie gesagt eben nicht mehr in die  globale Azure Umgebung. Ich musste, um das rückgängig zu machen, übrigens nur die Keys wieder löschen (hab ich mit regedit.exe gemacht, ganz klassisch), weil da vorher nichts drin stand. Vielleicht sollte man aber vorher mal sicherheitshalber reinschauen...