Business Intelligence/2. Oktober 2024 -Aktualisiert am 7. Januar 2025/4 Min. Lesezeit

Azure Containerized Function App

Teil 2: Konfigurieren des Container-Registrys und Hochladen des ersten Images


Wenn eine Azure Function containerisiert wird, wird die Funktion zusammen mit ihren Abhängigkeiten in einem Docker-Container verpackt. Für die Bereitstellung dieser containerisierten Funktion ist eine Registry erforderlich, um das Container-Image zu speichern und zu verwalten, sowie ein Dienst, der die Bereitstellung automatisiert und verwaltet.

Azure Container Registry (ACR) ist ein verwalteter, privater Docker-Registry-Dienst in Azure. Er ermöglicht das Erstellen, Speichern und Verwalten von Container-Images und Artefakten (wie Helm-Charts, OCI-Images) für alle Arten von Container-Bereitstellungen. ACR vereinfacht den Prozess des Abrufens von Container-Images, die auf Azure-Diensten wie Azure Kubernetes Service (AKS), Azure App Service oder Azure Functions bereitgestellt werden sollen.

Hauptmerkmale von ACR:
  • Image-Speicherung: Docker-Container-Images und zugehörige Artefakte werden in einer privaten Registrierung gespeichert.
  • Integration mit Azure: Eine nahtlose Integration mit Azure DevOps, Kubernetes und weiteren Azure-Diensten wird ermöglicht.
  • Sicherheit: ACR unterstützt rollenbasierte Zugriffskontrolle (RBAC), private Netzwerke sowie Verschlüsselung für ein sicheres Management von Images.
  • Geo-Replikation: Container-Images können global verteilt werden, um eine schnellere Bereitstellung in verschiedenen Regionen sicherzustellen.

Azure Container Registry ist erforderlich, um Ihr Container-Image sicher zu speichern und es für die Bereitstellung zugänglich zu machen. Es dient als zentrales Repository für Ihre containerisierten Funktions-Images, gewährleistet eine einfache Integration mit Azure-Diensten und bietet die Möglichkeit, Bereitstellungen über mehrere Regionen hinweg zu skalieren.


Konfigurieren:

1. Im Azure-Portal die Container-Registry suchen und “Create Container Registry” auswählen.

2. Basic Settings:

  • Subscription: Das entsprechende Azure Subscription auswählen.
  • Resource Group: Eine vorhandene Ressource Group wählen oder eine neue erstellen.
  • Registry Name: Einen global eindeutigen Namen für die Container-Registry festlegen.
  • Region: Die Azure-Region bestimmen, in der die Registry gehostet werden soll.

Pricing Plan: Eine passende Preisstufe für die Registry wählen.

3. Überprüfen und Erstellen: Nachdem alle Details ausgefüllt wurden, auf “Review + Create” klicken. Anschließend alle Konfigurationen überprüfen und auf „Create“ klicken, um die Container-Registry bereitzustellen.

Im linken Menü zu Settings -> Access Keys navigieren und Admin User” auswählen. Dort werden der Benutzername und das Passwort für die Registry bereitgestellt.

Das erste Image in die Registry hochladen:
  • Zurück zu Visual Studio Code wechseln und die Docker-Konfiguration für die Azure-Funktion durch Ausführung des folgenden Befehls initialisieren:
    • func init --docker-only
  • Das Docker-Image mit einem Versions-Tag erstellen:
    • docker build --tag blog/<repository_name>:v1.0.0 .
  • Das Docker-Image für die Azure Container Registry taggen:
  • Die Anmeldung bei der Azure Container Registry durchführen. Das ACR_PASSWORD kann im Portal unter Settings -> Access Keys gefunden werden:
    • az acr login --name <azure_container_repository_name> --username crblogarticle --password ${{secrets.ACR_PASSWORD}}
  • Das Docker-Image in die Azure Container Registry hochladen:
    • docker push <repository_name>.azurecr.io/<repository_name>:v1.0.0

Nachdem die Befehle ausgeführt wurden, zu Services -> Repositories navigieren. Dort kann überprüft werden, ob das Image mit dem Tag erfolgreich hochgeladen wurde.

Fazit

In diesem Abschnitt wurde beschrieben, wie die Azure Function containerisiert und das Docker-Image erfolgreich in die Azure Container Registry hochgeladen wird. Im nächsten Blogartikel wird erläutert, wie das Image auf einer Azure Function-Instanz bereitgestellt wird.