Verwalten von Revisionen und Geheimnissen in Azure Container Apps

Abgeschlossen

Azure Container Apps implementiert die Versionsverwaltung für Container-Apps, indem Revisionen erstellt werden. Eine Revision ist eine unveränderliche Momentaufnahme der Version einer Container-App. Sie können Revisionen verwenden, um eine neue Version Ihrer App zu veröffentlichen oder schnell zu einer früheren Version Ihrer App zurückzukehren. Neue Überarbeitungen werden erstellt, wenn Sie Ihre Anwendung mit Änderungen auf Überarbeitungsebeneaktualisieren. Sie können Ihre Container-App auch anhand einer bestimmten Überarbeitung aktualisieren.

Sie können steuern, welche Revisionen aktiv sind und welcher Teil des externen Datenverkehrs an die einzelnen aktiven Revisionen weitergeleitet wird. Revisionsnamen bezeichnen Revisionen und werden in der Revisions-URL verwendet. Sie können den Revisionsnamen anpassen, indem Sie das Revisionssuffix festlegen.

Container Apps erstellt standardmäßig einen eindeutigen Revisionsnamen mit einem Suffix, das aus einer halb zufälligen Zeichenfolge von alphanumerischen Zeichen besteht. Wenn Sie das Revisionssuffix einer Container-App namens album-api beispielsweise auf 1st-revision festlegen, würde eine Revision namens album-api--1st-revision erstellt werden. Sie können das Revisionssuffix in der ARM-Vorlage, über die Azure CLI-Befehle az containerapp create und az containerapp update oder beim Erstellen einer Revision über das Azure-Portal festlegen.

Aktualisieren der Container-App

Mit dem Befehl az containerapp update können Sie Umgebungsvariablen, Computeressourcen und Skalierungsparameter ändern und ein anderes Image bereitstellen. Wenn das Update Ihrer Container-App Änderungen auf Revisionsebene enthält, wird eine neue Revision generiert.

az containerapp update \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --image <IMAGE_NAME>

Mit dem Befehl az containerapp revision list können Sie alle mit Ihrer Container-App verbundenen Revisionen auflisten.

az containerapp revision list \
  --name <APPLICATION_NAME> \
  --resource-group <RESOURCE_GROUP_NAME> \
  -o table

Weitere Informationen zu Container Apps-Befehlen finden Sie in der az containerapp-Referenz.

Verwalten von Geheimnissen in Azure Container Apps

Mithilfe von Azure Container Apps kann Ihre Anwendung vertrauliche Konfigurationswerte sicher speichern. Sobald geheime Schlüssel auf Anwendungsebene definiert sind, stehen gesicherte Werte für Container-Apps zur Verfügung. Insbesondere können Sie innerhalb von Skalierungsregeln auf gesicherte Werte verweisen.

  • Geheimnisse sind einer Anwendung zugeordnet, unabhängig von spezifischen Revisionen einer Anwendung.
  • Das Hinzufügen, Entfernen oder Ändern von Geheimnissen generiert keine neuen Revisionen.
  • Jede Anwendungsrevision kann auf mindestens ein Geheimnis verweisen.
  • Mehrere Revisionen können auf dieselben geheimen Schlüssel verweisen.

Ein aktualisiertes oder gelöschtes Geheimnis wirkt sich nicht automatisch auf vorhandene Revisionen in Ihrer App aus. Wenn ein Geheimnis aktualisiert oder gelöscht wird, haben Sie zwei Möglichkeiten, auf die Änderungen zu reagieren:

  1. Eine neue Revision bereitstellen.
  2. Eine bestehende Revision neu starten.

Stellen Sie vor dem Löschen eines Geheimnisses eine neue Revision bereit, die nicht mehr auf das alte Geheimnis verweist. Deaktivieren Sie dann alle Revisionen, die auf das Geheimnis verweisen.

Hinweis

Container Apps bietet keine Unterstützung für die Azure Key Vault-Integration. Aktivieren Sie stattdessen die verwaltete Identität in der Container-App, und verwenden Sie das Key Vault SDK in Ihrer App, um auf Geheimnisse zuzugreifen.

Definieren von Geheimnissen

Wenn Sie eine Container-App erstellen, werden Geheimnisse mithilfe des Parameters --secrets definiert.

  • Der Parameter akzeptiert einen durch Leerzeichen getrennten Satz von Name/Wert-Paaren.
  • Jedes Paar wird durch ein Gleichheitszeichen (=) getrennt.

Im folgenden Beispiel wird im Parameter --secrets eine Verbindungszeichenfolge für ein Warteschlangenspeicherkonto angegeben. Der Wert für „queue-connection-string“ stammt aus einer Umgebungsvariablen namens $CONNECTION_STRING.

az containerapp create \
  --resource-group "my-resource-group" \
  --name queuereader \
  --environment "my-environment-name" \
  --image demos/queuereader:v1 \
  --secrets "queue-connection-string=$CONNECTION_STRING"

Nachdem Sie Geheimnisse auf der Anwendungsebene deklariert haben, können Sie diese in Umgebungsvariablen referenzieren, wenn Sie eine neue Revision in Ihrer Container-App erstellen. Wenn eine Umgebungsvariable auf ein Geheimnis verweist, wird ihr Wert mit dem Wert aufgefüllt, der im Geheimnis definiert ist. Um in der Azure CLI auf ein Geheimnis in einer Umgebungsvariablen zu verweisen, legen Sie deren Wert auf secretref: fest, gefolgt vom Namen des Geheimnisses.

Das folgende Beispiel zeigt eine Anwendung, die eine Verbindungszeichenfolge auf Anwendungsebene deklariert. Auf diese Verbindung wird in einer Containerumgebungsvariable verwiesen.

az containerapp create \
  --resource-group "my-resource-group" \
  --name myQueueApp \
  --environment "my-environment-name" \
  --image demos/myQueueApp:v1 \
  --secrets "queue-connection-string=$CONNECTIONSTRING" \
  --env-vars "QueueName=myqueue" "ConnectionString=secretref:queue-connection-string"