Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Meer informatie over het schrijven naar permanente opslag in een container-app met behulp van een Azure Files-opslagkoppeling. Voor meer informatie over opslagkoppelingen, zie Opslagkoppelingen gebruiken in Azure Container Apps.
In deze zelfstudie leert u het volgende:
- Een Container Apps-omgeving maken
- Een Azure Storage-account maken
- Een bestandsshare definiëren in het opslagaccount
- De omgeving koppelen aan de opslagbestandsshare
- Bevestig het opslaggedeelte in een afzonderlijke container
- Controleer de opslagmontage door het toegangslogboek van de website te bekijken
Opmerking
Azure Container Apps ondersteunt het koppelen van bestandsshares met behulp van SMB- en NFS-protocollen. In deze zelfstudie ziet u hoe u een Azure Files-share kunt koppelen met behulp van het SMB-protocol. Zie Opslagkoppelingen gebruiken in Azure Container Apps voor meer informatie over het koppelen van NFS-shares.
Vereiste voorwaarden
- Installeer de nieuwste versie van de Azure CLI.
De omgeving instellen
Met de volgende opdrachten definieert u omgevingsvariabelen en zorgt u ervoor dat uw Container Apps-extensie up-to-date is.
Meld u aan bij de Azure CLI.
az login
Stel omgevingsvariabelen in die in verschillende opdrachten worden gebruikt.
RESOURCE_GROUP="my-container-apps-group" ENVIRONMENT_NAME="my-storage-environment" LOCATION="canadacentral"
Zorg ervoor dat u de nieuwste versie van de Azure CLI-extensie voor Container Apps hebt.
az extension add -n containerapp --upgrade
Registreer de
Microsoft.App
naamruimte.az provider register --namespace Microsoft.App
Registreer de
Microsoft.OperationalInsights
-provider voor de Azure Monitor Log Analytics-werkruimte als u deze nog niet eerder hebt gebruikt.az provider register --namespace Microsoft.OperationalInsights
Een omgeving maken
Met de volgende stappen maakt u een resourcegroep en een Container Apps-omgeving.
Maak een resourcegroep.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
Zodra de opdracht is gemaakt, wordt het bericht Geslaagd geretourneerd.
Aan het einde van deze zelfstudie kunt u de resourcegroep verwijderen om alle services te verwijderen die tijdens dit artikel zijn gemaakt.
Maak een Container Apps-omgeving.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"
Zodra de opdracht is gemaakt, wordt het bericht Geslaagd geretourneerd.
Opslagkoppelingen zijn gekoppeld aan een Container Apps-omgeving en worden geconfigureerd binnen individuele container-apps.
Een opslagaccount instellen
Maak vervolgens een opslagaccount en stel een bestandsshare in om te koppelen aan de container-app.
Definieer de naam van een opslagaccount.
Met deze opdracht wordt een willekeurig achtervoegsel gegenereerd voor de naam van het opslagaccount om de uniekheid te garanderen.
STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
Een Azure Storage-account maken.
az storage account create \ --resource-group $RESOURCE_GROUP \ --name $STORAGE_ACCOUNT_NAME \ --location "$LOCATION" \ --kind StorageV2 \ --sku Standard_LRS \ --enable-large-file-share \ --query provisioningState
Zodra de opdracht is gemaakt, wordt het bericht Geslaagd geretourneerd.
Definieer de naam van een bestandsshare.
STORAGE_SHARE_NAME="myfileshare"
Maak de Azure Storage-bestandsshare.
az storage share-rm create \ --resource-group $RESOURCE_GROUP \ --storage-account $STORAGE_ACCOUNT_NAME \ --name $STORAGE_SHARE_NAME \ --quota 1024 \ --enabled-protocols SMB \ --output table
Haal de sleutel van het opslagaccount op.
STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`
De sleutel van het opslagaccount is vereist voor het maken van de opslagkoppeling in uw Container Apps-omgeving. Container Apps biedt geen ondersteuning voor op identiteit gebaseerde toegang tot Azure-bestandsshares.
Definieer de naam van de opslagkoppeling.
STORAGE_MOUNT_NAME="mystoragemount"
Deze waarde is de naam die wordt gebruikt om de koppeling voor opslagkoppeling vanuit uw Container Apps-omgeving naar uw Azure Storage-account te definiëren.
De opslagmount maken
U kunt nu de configuratie van de container-app bijwerken ter ondersteuning van de opslagkoppeling.
Maak de opslagkoppeling in de omgeving.
az containerapp env storage set \ --access-mode ReadWrite \ --azure-file-account-name $STORAGE_ACCOUNT_NAME \ --azure-file-account-key $STORAGE_ACCOUNT_KEY \ --azure-file-share-name $STORAGE_SHARE_NAME \ --storage-name $STORAGE_MOUNT_NAME \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --output table
Met deze opdracht maakt u een koppeling tussen de container-app-omgeving en de bestandsshare die met de
az storage share-rm
opdracht is gemaakt.Nu het opslagaccount en de omgeving zijn gekoppeld, kunt u een container-app maken die gebruikmaakt van de opslagkoppeling.
Definieer de naam van de container-app.
CONTAINER_APP_NAME="my-container-app"
Maak de container-app.
az containerapp create \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT_NAME \ --image nginx \ --min-replicas 1 \ --max-replicas 1 \ --target-port 80 \ --ingress external \ --query properties.configuration.ingress.fqdn
Met deze opdracht wordt de URL van uw nieuwe container-app weergegeven.
Kopieer de URL en plak deze in uw webbrowser om naar de website te navigeren.
Zodra de pagina is geladen, ziet u het bericht Welkom bij nginx!. Houd dit browsertabblad geopend. U keert terug naar de website tijdens de verificatiestappen voor opslagkoppelingen.
Nu u hebt bevestigd dat de container-app is geconfigureerd, kunt u de app bijwerken naar een definitie voor opslagkoppeling.
Exporteer de configuratie van de container-app.
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --output yaml > app.yaml
Opmerking
Hoewel deze toepassing geen geheimen heeft, hebben veel apps geheimen. Wanneer u de configuratie van een app exporteert, worden de waarden voor geheimen standaard niet opgenomen in de gegenereerde YAML.
Als u geen geheime waarden hoeft te wijzigen, kunt u de
secrets
sectie verwijderen en blijven uw geheimen ongewijzigd. Als u de waarde van een geheim wilt wijzigen, moet u ook zowel dename
alsvalue
voor alle geheimen in het bestand opgeven voordat u de app probeert bij te werken. Als u een geheim weglaat uit desecrets
sectie, wordt het geheim verwijderd.Open app.yaml in een code-editor.
Vervang de
volumes: null
definitie in detemplate
sectie door eenvolumes:
definitie die verwijst naar het opslagvolume. De sjabloonsectie moet er als volgt uitzien:template: containers: - image: nginx imageType: ContainerImage name: my-container-app resources: cpu: 0.5 ephemeralStorage: 2Gi memory: 1Gi volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx initContainers: null revisionSuffix: '' scale: cooldownPeriod: 300 maxReplicas: 1 minReplicas: 1 pollingInterval: 30 rules: null serviceBinds: null terminationGracePeriodSeconds: null volumes: - name: my-azure-file-volume storageName: mystoragemount storageType: AzureFile
De nieuwe
template.volumes
sectie bevat de volgende eigenschappen.Vastgoed Beschrijving name
Deze waarde komt overeen met het volume dat is gemaakt door de az containerapp env storage set
opdracht aan te roepen.storageName
Deze waarde definieert de naam die wordt gebruikt door containers in de omgeving voor toegang tot het opslagvolume. storageType
Deze waarde bepaalt het type opslagvolume dat is gedefinieerd voor de omgeving. In dit geval wordt een Azure Files-koppeling gedeclareerd. De
volumes
sectie definieert volumes op app-niveau waarnaar uw toepassingscontainer of sidecar-containers kunnen verwijzen via eenvolumeMounts
sectie die is gekoppeld aan een container.Voeg een
volumeMounts
sectie toe aan denginx
container in decontainers
sectie.containers: - image: nginx name: my-container-app volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx
De nieuwe
volumeMounts
sectie bevat de volgende eigenschappen:Vastgoed Beschrijving volumeName
Deze waarde moet overeenkomen met de naam die is gedefinieerd in de volumes
definitie.mountPath
Deze waarde definieert het pad in uw container waar de opslag is gekoppeld. Werk de container-app bij met de nieuwe configuratie voor opslagkoppeling.
az containerapp update \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --yaml app.yaml \ --output table
De opslagmontage controleren
Nu de opslagkoppeling tot stand is gebracht, kunt u bestanden in Azure Storage bewerken vanuit uw container. Gebruik de volgende opdrachten om de opslagmount in actie te observeren.
Open een interactieve shell in de container-app om opdrachten uit te voeren in de actieve container.
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP
Het kan even duren voordat deze opdracht de externe shell opent. Zodra de shell gereed is, kunt u communiceren met de opslagkoppeling via bestandssysteemopdrachten. Zie Verbinding maken met een containerconsole in Azure Container Apps voor meer informatie.
Verander naar de map nginx /var/log/nginx .
cd /var/log/nginx
Ga terug naar de browser en navigeer naar de website en vernieuw de pagina een paar keer.
De aanvragen aan de website creëren een reeks logboekvermeldingen.
Ga terug naar de terminal en vermeld de waarden van de
/var/log/nginx
map.ls
U ziet hoe de access.log - en error.log-bestanden in deze map worden weergegeven. Deze bestanden worden naar de Azure Files-mount in uw Azure Storage-share geschreven, die u in de vorige stappen hebt aangemaakt.
De inhoud van het access.log-bestand weergeven.
cat access.log
Sluit de interactieve shell van de container af om terug te keren naar uw lokale terminalsessie.
exit
U kunt nu de bestanden bekijken in Azure Portal om te controleren of ze bestaan in uw Azure Storage-account. Druk de naam van uw willekeurig gegenereerde opslagaccount af.
echo $STORAGE_ACCOUNT_NAME
Navigeer naar Azure Portal en open het opslagaccount dat in deze procedure is gemaakt.
Selecteer onder Gegevensopslagbestandskoppelingen.
Selecteer myshare om de access.log en error.log bestanden weer te geven.
De hulpbronnen opschonen
Als u deze toepassing niet wilt blijven gebruiken, voert u de volgende opdracht uit om de resourcegroep te verwijderen, samen met alle resources die in dit artikel zijn gemaakt.
az group delete \
--name $RESOURCE_GROUP