/ Git

Azure Function Deployment mit Azure CLI + Azure Functions CLI

Wie kann man ohne Azure Portal und ohne Azure Function Portal eine Function App auf Azure bereitstellen.

Im Artikel: Let's Code 22/23: Azure Functions CLI - Debugging + Bereitstellung verwenden wir die Portale, doch auch dort wird schon angemerkt, dass man es auch anders machen kann (ARM Tmplate, Azure PowerShell oder die CLI).

Diesmal zeige ich den Weg über die command line interfaces (CLI):

Anmerkung: Die Azure CLI gibt es in einer zweiten, neueren Version (Azure CLI 2.0). Diese basiert auf Python und kann daher besser in nicht Windows Plattformen verwendet werden. Siehe Blogeintrag von Scott Hanselmann Exploring the new DevOps - Azure Command Line Interface 2.0 (CLI)

Vermutlich wird die Azure Function CLI irgendwann in die Azure CLI integriert werden.

Installation (oder updaten):

npm install -g azure-cli azure-functions-cli

Folgende Versionen sind bei mir installiert:

npm list -g --depth=0
  - azure-cli@0.10.8
  - azure-functions-cli@1.0.0-beta.9

Zur einfacheren Verwaltung sollen unsere Azure Functions in einer eigenen Ressource Gruppe (genannt HlcKeepAlive5) angelegt werden:

azure group create -n HlcKeepAlive5 -l westeurope

Dann benötigen wir einen Storage Account:

azure storage account create --sku-name LRS --kind Storage -l westeurope -g HlcKeepAlive5 hlckeepalive5

Die Azure Function CLI benötigt zur Erzeugung der Function App die Subscription ID, das ist eine Guid, die man folgendermaßen ermitteln kann:

 azure account list
 oder
 func azure subscriptions list

Für meine "Nutzungsbasierte Bezahlung": 7777777-6666-7777-8888-12345abcde

Damit können wir nun eine Function App anlegen:

Anmerkung: Achtung, folgender Aufruf funktioniert in der neuesten Version (1.0.0-beta.91) der Azure Function CLI leider nicht mehr.

Am einfachsten machte man das nun über das Portal oder mit Hilfe eines Quickstart Templates (101-function-app-create-dynamic).

 func azure functionapp create -g HlcKeepAlive5 -n HlcKeepAlive5 -l westeurope -s 7777777-6666-7777-8888-12345abcde -p WestEuropePlan

Und auch gleich ein git Repository dazufügen:

func azure functionapp enable-git-repo HlcKeepAlive5

Die git Adresse erhält man durch:

func azure functionapp list

Falls noch nicht geschehen, eine Azure Function lokal anlegen (in einem neuen Verzeichnis):

func init
func new

Dies wird im letzten Blogeintrag näher beschrieben.

Und das Ganze publishen (diesmal ohne VS Code):

git remote add azure https://gitusername@hlckeepalive5.scm.azurewebsites.net

git add *
git commit -m "initial commit"
git push --set-upstream azure master

Zum Entfernen, löscht man am einfachsten die gesamte Ressource Group:

azure group delete -n HlcKeepAlive5
Bemerkungen:
Settings:

Will man auch die App Service Settings lokal zur Verfügung haben:

func azure functionapp fetch-app-settings HlcKeepAlive5
func settings decrypt
Hilfe:

Hilfe bekommt man für Azure CLI und Azure Function CLI z.B. durch folgende Aufrufe:

azure account list -h
oder 
azure help account list
Azure CLI 2.0

Wie ganz oben erwähnt, gibt es eine neuere auf Python basierte Azure CLI, die sogenante Azure CLI 2.0. Die Aufrufe sind sehr ähnlich:

az group create -n HlcKeepAlive5 -l westeurope
az group list --output table
az storage account create --sku Standard_LRS --kind Storage -l westeurope -g HlcKeepAlive5 -n hlckeepalive5
az group delete -n HlcKeepAlive5


Weitere Let's Code Artikel und die dazugehörigen Videos im YouTube Channel: Helmbergers Let's Code.