Übung: Verwenden von Datenvolumes
Standardmäßig ist Azure Container Instances zustandslos. Wenn der Container abstürzt oder beendet wird, gehen alle Zustände verloren. Sie müssen ein Volume aus einem externen Speicher einbinden, um den Zustand nach Ablauf der Lebensdauer des Containers abzurufen.
Binden Sie eine Azure-Dateifreigabe in eine Azure-Containerinstanz ein, damit Sie Daten speichern und später darauf zugreifen können.
Erstellen einer Azure-Dateifreigabe
Erstellen Sie ein Speicherkonto und eine Dateifreigabe. Später können Sie die Dateifreigabe für den Zugriff auf eine Azure-Containerinstanz freigeben.
Geben Sie einen eindeutigen Namen für Ihr Speicherkonto ein. Führen Sie zu Lernzwecken den folgenden Befehl aus, um einen eindeutigen Namen in einer Bash-Variable zu speichern:
STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
Führen Sie den folgenden Befehl
az storage account create
aus, um Ihr Speicherkonto zu erstellen:az storage account create \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --sku Standard_LRS \ --location eastus
Führen Sie den folgenden Befehl aus, um die Verbindungszeichenfolge für das Speicherkonto in einer Umgebungsvariable mit dem Namen
AZURE_STORAGE_CONNECTION_STRING
zu platzieren:export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --output tsv)
AZURE_STORAGE_CONNECTION_STRING
ist eine spezielle Umgebungsvariable, die von der Azure-Befehlszeilenschnittstelle (Azure CLI) verstanden wird.export
macht diese Variable für andere CLI-Befehle zugänglich, die Sie später ausführen.Führen Sie diesen Befehl aus, um eine Dateifreigabe mit dem Namen aci-share-demo im Speicherkonto zu erstellen:
az storage share create --name aci-share-demo
Erhalten der Anmeldeinformationen für das Speicherkonto
Um eine Azure-Dateifreigabe als Volume in Azure Container Instances einzubinden, benötigen Sie diese drei Werte:
- Speicherkontoname
- Freigabename
- Speicherkonto-Zugriffsschlüssel
Sie verfügen bereits über die ersten zwei Werte. Der Name des Speicherkontos wird in der Bash-Variable STORAGE_ACCOUNT_NAME
gespeichert. Sie haben aci-share-demo im vorherigen Schritt als Freigabename angegeben. Sie erhalten nun den verbleibenden Wert: den Zugriffsschlüssel für das Speicherkonto.
Führen Sie den folgenden Befehl aus, um den Speicherkontoschlüssel abzurufen:
STORAGE_KEY=$(az storage account keys list \ --resource-group learn-deploy-aci-rg \ --account-name $STORAGE_ACCOUNT_NAME \ --query "[0].value" \ --output tsv)
Das Ergebnis wird in einer Bash-Variable namens
STORAGE_KEY
gespeichert.Optional können Sie den Namen des Speicherschlüssels auch in der Konsole ausgeben.
echo $STORAGE_KEY
Bereitstellen eines Containers und Einbinden der Dateifreigabe
Geben Sie die Freigabe und den Bereitstellungspunkt des Volumes bei der Erstellung des Containers an, um eine Azure-Dateifreigabe als Volume in einem Container bereitzustellen.
Führen Sie den Befehl
az container create
aus, um einen Container zu erstellen, der/aci/logs/
in die Dateifreigabe einbindet:az container create \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --image mcr.microsoft.com/azuredocs/aci-hellofiles \ --location eastus \ --ports 80 \ --ip-address Public \ --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \ --azure-file-volume-account-key $STORAGE_KEY \ --azure-file-volume-share-name aci-share-demo \ --azure-file-volume-mount-path /aci/logs/
Führen Sie
az container show
aus, um die öffentliche IP-Adresse des Containers abzurufen:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query ipAddress.ip \ --output tsv
Navigieren Sie in einem Browser zur IP-Adresse des Containers. Sie erhalten die folgende Seite:
Geben Sie Text in das Formular ein, und klicken Sie auf Absenden. Auf diese Weise wird eine Datei mit dem Text erstellt, den Sie in der Azure-Dateifreigabe eingegeben haben.
Führen Sie den Befehl
az storage file list
aus, um die Dateien in der Dateifreigabe anzuzeigen:az storage file list -s aci-share-demo -o table
Führen Sie
az storage file download
aus, um eine Datei in Ihre Cloud Shell-Sitzung herunterzuladen. Ersetzen Sie <Dateiname> durch eine der Dateien, die im vorherigen Schritt angezeigt wurden:az storage file download -s aci-share-demo -p <filename>
Führen Sie den Befehl
cat
zum Ausgeben der Inhalte der Datei aus.cat <filename>
Denken Sie daran, dass Ihre Daten erhalten bleiben, wenn der Container beendet wird. Sie können die Dateifreigabe in andere Containerinstanzen einbinden, um diesen die Daten zur Verfügung zu stellen.