Entwickeln einer Daten-API mit Azure Web-App für Container

Abgeschlossen

Die Entwicklung einer Daten-API mit Azure Web-App für Container bietet eine robuste und skalierbare Lösung für moderne Anwendungen. Mithilfe der Leistungsfähigkeit von Containern und verwalteten Azure-Diensten können Entwickler APIs mühelos erstellen, bereitstellen und verwalten, um Leistung und Zuverlässigkeit sicherzustellen. Dieser Ansatz vereinfacht nicht nur den Entwicklungsprozess, sondern verbessert auch die Portabilität und Skalierbarkeit von Anwendungen und macht es zu einer idealen Wahl für die heutige moderne Softwarelandschaft.

Entdecken Sie die Vorteile der Verwendung von Web-App für Container

  • Portabilität: Container kapseln die Anwendung und ihre Abhängigkeiten, um sicherzustellen, dass sie in verschiedenen Umgebungen konsistent ausgeführt wird. Dadurch wird das Problem „das funktioniert auf meinem Computer” beseitigt, wodurch die Bereitstellung auf verschiedenen Plattformen nahtlos erfolgt.

  • Skalierbarkeit: Azure Web-App für Container ermöglicht die automatische bedarfsabhängige Skalierung. Das bedeutet, dass Ihre Daten-API ohne manuelle Eingriffe eine erhöhte Last verarbeiten kann, um hohe Verfügbarkeit und Leistung sicherzustellen.

  • Vereinfachte Verwaltung: Azure verwaltet die zugrunde liegende Infrastruktur, einschließlich Betriebssystempatching, Lastenausgleich und Kapazitätsbereitstellung. Auf diese Weise können Entwickler sich auf das Schreiben von Code konzentrieren, anstatt Server verwalten zu müssen.

Erstellen einer Daten-API mit Azure Web-App für Container

Um eine Daten-API mit Azure Web-App für Container zu erstellen, müssen Sie eine Container-App mit dem DAB-Image erstellen, erforderliche Berechtigungen zuweisen, eine Dockerfile einrichten und die App mit dem neuen Image und den Anmeldeinformationen aktualisieren. Rufen Sie schließlich den Domänennamen ab, und testen Sie die API.

Bevor Sie beginnen, stellen Sie sicher, dass Sie über ein Azure-Abonnement, eine Ressourcengruppe und Zugriff auf Azure Cloud Shell verfügen.

Erstellen einer Container-App

Mit den folgenden Schritten können Sie eine Azure Container Apps-Instanz erstellen.

  1. Verwenden Sie az containerapp env create, um eine Azure Container Apps-Umgebung zu erstellen.

    az containerapp env create \ 
      --resource-group $RESOURCE_GROUP_NAME \
      --name $CONTAINER_ENV_NAME \
      --logs-destination none \
      --location $LOCATION
    
  2. Verwenden Sie den Befehl az containerapp create, um eine neue Container-App mithilfe des DAB-Containerimages mcr.microsoft.com/azure-databases/data-api-builder zu erstellen.

    az containerapp create \ 
      --resource-group $RESOURCE_GROUP_NAME \
      --environment $CONTAINER_ENV_NAME \
      --name $API_CONTAINER_NAME \
      --image "mcr.microsoft.com/azure-databases/data-api-builder" \
      --ingress "external" \
      --target-port "5000" \
      --system-assigned
    

Anschließend können Sie den Prinzipalbezeichner der verwalteten Identität mithilfe von az identity show abrufen.

Zuweisen von Berechtigungen

Weisen Sie die Berechtigungen für die systemseitig zugewiesene verwaltete Identität zu, um Daten aus Azure SQL zu lesen und in Azure Container Registry zu lesen und zu schreiben.

az role assignment create \
  --assignee $CURRENT_USER_PRINCIPAL_ID \
  --role $ROLE_ID \
  --scope $RESOURCE_GROUP_ID

Erstellen einer Azure Container Registry-Instanz

Um eine neue Azure Container Registry-Instanz zu erstellen, führen Sie den folgenden Befehl aus.

az acr create \
  --resource-group $RESOURCE_GROUP_NAME \
  --name <CONTAINER_REGISTRY_NAME> \
  --sku "Standard" \
  --location <LOCATION> \
  --admin-enabled false

Erstellen und Bereitstellen eines Containerimages

  1. Verwenden Sie für die Buildphase das Containerimage mcr.microsoft.com/dotnet/sdk.

  2. Installieren Sie die DAB CLI.

    RUN dotnet tool install Microsoft.DataApiBuilder
    
  3. Erstellen Sie eine Konfigurationsdatei für Ihre Azure SQL-Datenbankverbindung mit der Quelldatenbank, indem Sie RUN dotnet tool run dab -- init ausführen.

  4. Erstellen Sie Entitäten, die den Tabellen in der Quelldatenbank zugeordnet werden sollen.

    RUN dotnet tool run dab -- add Address --source "SalesLT.Address" --permissions "anonymous:read"
    
  5. Kopieren Sie die Konfigurationsdatei in das endgültige Containerimage mcr.microsoft.com/azure-databases/data-api-builder.

  6. Erstellen Sie das Image als Azure Container Registry-Aufgabe, indem Sie az acr build ausführen, um Ihr Image zu erstellen.

  7. Konfigurieren Sie die Container-App für die Verwendung der Containerregistrierung.

    az containerapp registry set \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --server <container-registry-login-server> \
      --username <container-registry-username> \
      --password <container-registry-password>
    
  8. Erstellen Sie einen geheimen Schlüssel mit der Azure SQL-Verbindungszeichenfolge.

    az containerapp secret set \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --secrets "SQLConnectionString=<your-sql-connection-string>"
    
  9. Aktualisieren Sie die Container-App mit dem neuen benutzerdefinierten Containerimage und der Verbindungszeichenfolge.

    az containerapp update \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --image <container-registry-login-server>/<image-name>:<tag> \
      --secrets "SQLConnectionString=<your-sql-connection-string>"
    
  10. Rufen Sie den vollqualifizierten Domänennamen der Container-App ab.

    az containerapp show \
      --name <container-app-name> \
      --resource-group <resource-group-name> \
      --query "properties.configuration.ingress.fqdn" \
      --output "tsv"
    

Mit diesen Schritten wird die Azure-Container-App mit dem neuen benutzerdefinierten Containerimage und den Anmeldeinformationen aktualisiert und der vollqualifizierte Domänenname der Container-App wird abgerufen.

Navigieren Sie schließlich zur URL, und testen Sie die API, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

Hinweis

Ausführliche Schritte zum Bereitstellen des Daten-API-Generators für Azure Container Apps mit Azure CLI finden Sie im Tutorial: Bereitstellen des Daten-API-Generators in Azure Container Apps mit Azure CLI.