Tutorial: Erstellen und Bereitstellen von Containerimages in der Cloud mit Azure Container Registry TasksTutorial: Build and deploy container images in the cloud with Azure Container Registry Tasks

ACR Tasks ist eine Suite mit Features in Azure Container Registry, die optimierte und effiziente Docker-Containerimage-Builds in Azure bietet.ACR Tasks is a suite of features within Azure Container Registry that provides streamlined and efficient Docker container image builds in Azure. In diesem Artikel erfahren Sie, wie Sie das Schnellaufgabenfeature von ACR Tasks verwenden.In this article, you learn how to use the quick task feature of ACR Tasks.

Der Entwicklungszyklus „Innere Schleife“ ist der iterative Prozess, der das Schreiben von Code sowie das Erstellen und Testen Ihrer Anwendung umfasst, bevor sie zur Quellcodeverwaltung committet wird.The "inner-loop" development cycle is the iterative process of writing code, building, and testing your application before committing to source control. Eine Schnellaufgabe erweitert Ihre innere Schleife auf die Cloud und ermöglicht die Überprüfung des Erfolgsstatus von Buildvorgängen sowie automatisches Pushen erfolgreich erstellter Images an Ihre Containerregistrierung.A quick task extends your inner-loop to the cloud, providing you with build success validation and automatic pushing of successfully built images to your container registry. Ihre Images werden nativ in der Cloud (in der Nähe Ihrer Registrierung) erstellt, was eine schnellere Bereitstellung ermöglicht.Your images are built natively in the cloud, close to your registry, enabling faster deployment.

Sämtliche Dockerfile-Kenntnisse lassen sich 1:1 auf ACR Tasks übertragen.All your Dockerfile expertise is directly transferrable to ACR Tasks. Für die Erstellung in der Cloud mit ACR Tasks müssen Sie lediglich den ausgeführten Befehl ändern. Ihre Dockerfile-Dateien können Sie unverändert weiter verwenden.You don't have to change your Dockerfiles to build in the cloud with ACR Tasks, just the command you run.

Dieser erste Teil einer Tutorialreihe umfasst Folgendes:In this tutorial, part one of a series:

  • Abrufen des Quellcodes für die BeispielanwendungGet the sample application source code
  • Erstellen eines Containerimages in AzureBuild a container image in Azure
  • Bereitstellen eines Containers für Azure Container InstancesDeploy a container to Azure Container Instances

In den weiteren Tutorials erfahren Sie, wie Sie mithilfe von Tasks Containerimage-Buildvorgänge automatisieren, wenn Code committet oder ein Basisimage aktualisiert wird.In subsequent tutorials, you learn to use ACR Tasks for automated container image builds on code commit and base image update. ACR Tasks kann mithilfe einer YAML-Datei, in der Schritte zum Erstellen, Pushen und optional zum Testen mehrerer Container definiert werden, auch Aufgaben mit mehreren Schritten ausführen.ACR Tasks can also run multi-step tasks, using a YAML file to define steps to build, push, and optionally test multiple containers.

Verwenden von Azure Cloud ShellUse Azure Cloud Shell

Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Starten von Azure Cloud Shell:To start Azure Cloud Shell:

OptionOption Beispiel/LinkExample/Link
Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Durch die Auswahl von Ausprobieren wird der Code nicht automatisch in Cloud Shell kopiert.Selecting Try It doesn't automatically copy the code to Cloud Shell. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Rufen Sie https://shell.azure.com auf, oder wählen Sie die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Starten von Cloud Shell in einem neuen FensterLaunch Cloud Shell in a new window
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Cloud Shell-Schaltfläche im Azure-Portal

Ausführen des Codes in diesem Artikel in Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Starten Sie Cloud Shell.Start Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock, um den Code zu kopieren.Select the Copy button on a code block to copy the code.

  3. Fügen Sie den Code mit STRG+UMSCHALT+V unter Windows und Linux oder Cmd+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Drücken Sie die EINGABETASTE, um den Code auszuführen.Select Enter to run the code.

Wenn Sie die Azure CLI lokal verwenden möchten, muss bei Ihnen mindestens die Azure CLI-Version 2.0.46 installiert sein, und Sie müssen mit az login angemeldet sein.If you'd like to use the Azure CLI locally, you must have Azure CLI version 2.0.46 or later installed and logged in with az login. Führen Sie az --version aus, um die Version zu ermitteln.Run az --version to find the version. Informationen zum Installieren und Aktualisieren der Befehlszeilenschnittstelle finden Sie bei Bedarf unter Installieren der Azure CLI.If you need to install or upgrade the CLI, see Install Azure CLI.

VoraussetzungenPrerequisites

GitHub-KontoGitHub account

Erstellen Sie unter https://github.com ein Konto, falls Sie noch keins besitzen.Create an account on https://github.com if you don't already have one. In dieser Tutorialreihe werden automatisierte Imagebuildvorgänge in ACR Tasks anhand eines GitHub-Repositorys veranschaulicht.This tutorial series uses a GitHub repository to demonstrate automated image builds in ACR Tasks.

Forken des BeispielrepositorysFork sample repository

Forken Sie als Nächstes das Beispielrepository über die Benutzeroberfläche von GitHub in Ihr GitHub-Konto.Next, use the GitHub UI to fork the sample repository into your GitHub account. In diesem Tutorial erstellen Sie ein Containerimage auf der Grundlage der Quelle im Repository. Im nächsten Tutorial pushen Sie dann ein Commit an Ihr Fork des Repositorys, um eine automatische Aufgabe zu initiieren.In this tutorial, you build a container image from the source in the repo, and in the next tutorial, you push a commit to your fork of the repo to kick off an automated task.

Forken Sie das folgende Repository: https://github.com/Azure-Samples/acr-build-helloworld-nodeFork this repository: https://github.com/Azure-Samples/acr-build-helloworld-node

Screenshot der Schaltfläche zum Forken (hervorgehoben) in GitHub

Klonen Ihres ForksClone your fork

Klonen Sie nach dem Forken des Repositorys Ihren Fork, und geben Sie das Verzeichnis ein, das Ihren lokalen Klon enthält.Once you've forked the repo, clone your fork and enter the directory containing your local clone.

Klonen Sie das Repository mit git, und ersetzen Sie dabei <your-github-username> durch Ihren GitHub-Benutzernamen:Clone the repo with git, replace <your-github-username> with your GitHub username:

git clone https://github.com/<your-github-username>/acr-build-helloworld-node

Geben Sie das Verzeichnis ein, das den Quellcode enthält:Enter the directory containing the source code:

cd acr-build-helloworld-node

Bash-ShellBash shell

Die Befehle in dieser Tutorialreihe sind für die Bash-Shell formatiert.The commands in this tutorial series are formatted for the Bash shell. Falls Sie lieber PowerShell, die Befehlszeile oder eine andere Shell verwenden möchten, müssen Sie ggf. die Zeilenfortsetzung und das Umgebungsvariablenformat entsprechend anpassen.If you prefer to use PowerShell, Command Prompt, or another shell, you may need to adjust the line continuation and environment variable format accordingly.

Erstellen in Azure mit ACR TasksBuild in Azure with ACR Tasks

Nachdem Sie den Quellcode auf Ihren Computer heruntergeladen haben, können Sie mit den folgenden Schritten eine Containerregistrierung und anschließend das Containerimage mit ACR Tasks erstellen.Now that you've pulled the source code down to your machine, follow these steps to create a container registry and build the container image with ACR Tasks.

In den Tutorials dieser Reihe werden Shell-Umgebungsvariablen verwendet, um das Ausführen der Beispielbefehle zu vereinfachen.To make executing the sample commands easier, the tutorials in this series use shell environment variables. Führen Sie den folgenden Befehl aus, um die Variable ACR_NAME festzulegen.Execute the following command to set the ACR_NAME variable. Ersetzen Sie <registry-name> durch einen eindeutigen Namen für Ihre neue Containerregistrierung.Replace <registry-name> with a unique name for your new container registry. Der Registrierungsname muss innerhalb von Azure eindeutig sein, darf nur Kleinbuchstaben enthalten und muss aus zwischen 5 und 50 alphanumerischen Zeichen bestehen.The registry name must be unique within Azure, contain only lower case letters, and contain 5-50 alphanumeric characters. Da die anderen Ressourcen, die Sie in diesem Tutorial erstellen, auf diesem Namen basieren, sollte die Änderung dieser ersten Variablen ausreichend sein.The other resources you create in the tutorial are based on this name, so you should need to modify only this first variable.

Start einbettenEmbed launch

ACR_NAME=<registry-name>

Nach Angabe der Umgebungsvariablen für die Containerregistrierung können Sie die restlichen Befehle aus diesem Tutorial ohne weitere Bearbeitung kopieren und einfügen.With the container registry environment variable populated, you should now be able to copy and paste the remainder of the commands in the tutorial without editing any values. Führen Sie die folgenden Befehle aus, um eine Ressourcengruppe und eine Containerregistrierung zu erstellen:Execute the following commands to create a resource group and container registry:

RES_GROUP=$ACR_NAME # Resource Group name

az group create --resource-group $RES_GROUP --location eastus
az acr create --resource-group $RES_GROUP --name $ACR_NAME --sku Standard --location eastus

Erstellen Sie nach der Registrierungserstellung mithilfe von ACR Tasks ein auf dem Beispielcode basierendes Containerimage.Now that you have a registry, use ACR Tasks to build a container image from the sample code. Führen Sie den Befehl az acr build aus, um eine Schnellaufgabe durchzuführen:Execute the az acr build command to perform a quick task:

az acr build --registry $ACR_NAME --image helloacrtasks:v1 .

Die Ausgabe des Befehls az acr build sollte in etwa wie im folgenden Beispiel aussehen.Output from the az acr build command is similar to the following. Sie sehen den Upload des Quellcodes („context“) in Azure sowie die Details des docker build-Vorgangs, den die ACR-Aufgabe in der Cloud ausführt.You can see the upload of the source code (the "context") to Azure, and the details of the docker build operation that the ACR task runs in the cloud. Da ACR-Aufgaben Ihre Images mithilfe von docker build erstellen, sind keine Änderungen an Ihren Dockerfiles-Dateien erforderlich, und Sie können sofort mit der Verwendung von ACR Tasks beginnen.Because ACR tasks use docker build to build your images, no changes to your Dockerfiles are required to start using ACR Tasks immediately.

Packing source code into tar file to upload...
Sending build context (4.813 KiB) to ACR...
Queued a build with build ID: da1
Waiting for build agent...
2018/08/22 18:31:42 Using acb_vol_01185991-be5f-42f0-9403-a36bb997ff35 as the home volume
2018/08/22 18:31:42 Setting up Docker configuration...
2018/08/22 18:31:43 Successfully set up Docker configuration
2018/08/22 18:31:43 Logging in to registry: myregistry.azurecr.io
2018/08/22 18:31:55 Successfully logged in
Sending build context to Docker daemon   21.5kB
Step 1/5 : FROM node:9-alpine
9-alpine: Pulling from library/node
Digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
Status: Image is up to date for node:9-alpine
 ---> a56170f59699
Step 2/5 : COPY . /src
 ---> 88087d7e709a
Step 3/5 : RUN cd /src && npm install
 ---> Running in e80e1263ce9a
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN helloworld@1.0.0 No repository field.

up to date in 0.1s
Removing intermediate container e80e1263ce9a
 ---> 26aac291c02e
Step 4/5 : EXPOSE 80
 ---> Running in 318fb4c124ac
Removing intermediate container 318fb4c124ac
 ---> 113e157d0d5a
Step 5/5 : CMD ["node", "/src/server.js"]
 ---> Running in fe7027a11787
Removing intermediate container fe7027a11787
 ---> 20a27b90eb29
Successfully built 20a27b90eb29
Successfully tagged myregistry.azurecr.io/helloacrtasks:v1
2018/08/22 18:32:11 Pushing image: myregistry.azurecr.io/helloacrtasks:v1, attempt 1
The push refers to repository [myregistry.azurecr.io/helloacrtasks]
6428a18b7034: Preparing
c44b9827df52: Preparing
172ed8ca5e43: Preparing
8c9992f4e5dd: Preparing
8dfad2055603: Preparing
c44b9827df52: Pushed
172ed8ca5e43: Pushed
8dfad2055603: Pushed
6428a18b7034: Pushed
8c9992f4e5dd: Pushed
v1: digest: sha256:b038dcaa72b2889f56deaff7fa675f58c7c666041584f706c783a3958c4ac8d1 size: 1366
2018/08/22 18:32:43 Successfully pushed image: myregistry.azurecr.io/helloacrtasks:v1
2018/08/22 18:32:43 Step ID acb_step_0 marked as successful (elapsed time in seconds: 15.648945)
The following dependencies were found:
- image:
    registry: myregistry.azurecr.io
    repository: helloacrtasks
    tag: v1
    digest: sha256:b038dcaa72b2889f56deaff7fa675f58c7c666041584f706c783a3958c4ac8d1
  runtime-dependency:
    registry: registry.hub.docker.com
    repository: library/node
    tag: 9-alpine
    digest: sha256:8dafc0968fb4d62834d9b826d85a8feecc69bd72cd51723c62c7db67c6dec6fa
  git: {}

Run ID: da1 was successful after 1m9.970148252s

Gegen Ende der Ausgabe zeigt ACR Tasks die für Ihr Image ermittelten Abhängigkeiten an.Near the end of the output, ACR Tasks displays the dependencies it's discovered for your image. Dies ermöglicht ACR Tasks die Automatisierung von Imagebuildvorgängen nach einer Basisimageaktualisierung – etwa, wenn ein Basisimage mit Betriebssystem- oder Frameworkpatches aktualisiert wird.This enables ACR Tasks to automate image builds on base image updates, such as when a base image is updated with OS or framework patches. Auf die Unterstützung von Basisimageaktualisierungen durch ACR Tasks wird im weiteren Verlauf dieser Tutorialreihe noch näher eingegangen.You learn about ACR Tasks support for base image updates later in this tutorial series.

Bereitstellen in Azure Container InstancesDeploy to Azure Container Instances

Erfolgreich erstellte Images werden von ACR Tasks standardmäßig automatisch an Ihre Registrierung gepusht, von wo aus sie sofort bereitgestellt werden können.ACR tasks automatically push successfully built images to your registry by default, allowing you to deploy them from your registry immediately.

In diesem Abschnitt erstellen Sie eine Azure Key Vault-Instanz und einen Dienstprinzipal und stellen anschließend den Container unter Verwendung der Anmeldeinformationen des Dienstprinzipals in Azure Container Instances (ACI) bereit.In this section, you create an Azure Key Vault and service principal, then deploy the container to Azure Container Instances (ACI) using the service principal's credentials.

Konfigurieren der Authentifizierung der RegistrierungConfigure registry authentication

In Produktionsszenarien müssen für den Zugriff auf eine Azure-Containerregistrierung immer Dienstprinzipale verwendet werden.All production scenarios should use service principals to access an Azure container registry. Dienstprinzipale ermöglichen Ihnen eine rollenbasierte Zugriffssteuerung auf Ihre Containerimages.Service principals allow you to provide role-based access control to your container images. Beispielsweise können Sie einen Dienstprinzipal mit ausschließlichem Pullzugriff auf eine Registrierung konfigurieren.For example, you can configure a service principal with pull-only access to a registry.

Erstellen eines SchlüsseltresorsCreate a key vault

Wenn Sie noch keinen Tresor in Azure Key Vault haben, erstellen Sie einen mithilfe der Azure CLI und folgenden Befehle.If you don't already have a vault in Azure Key Vault, create one with the Azure CLI using the following commands.

AKV_NAME=$ACR_NAME-vault

az keyvault create --resource-group $RES_GROUP --name $AKV_NAME

Erstellen eines Dienstprinzipals und Speichern von AnmeldeinformationenCreate a service principal and store credentials

Sie müssen nun einen Dienstprinzipal erstellen und seine Anmeldeinformationen in Ihrem Schlüsselspeicher speichern.You now need to create a service principal and store its credentials in your key vault.

Erstellen Sie mithilfe des Befehls az ad sp create-for-rbac den Dienstprinzipal, und speichern Sie das Kennwort (password) des Dienstprinzipals mithilfe des Befehls az keyvault secret set im Tresor:Use the az ad sp create-for-rbac command to create the service principal, and az keyvault secret set to store the service principal's password in the vault:

# Create service principal, store its password in AKV (the registry *password*)
az keyvault secret set \
  --vault-name $AKV_NAME \
  --name $ACR_NAME-pull-pwd \
  --value $(az ad sp create-for-rbac \
                --name $ACR_NAME-pull \
                --scopes $(az acr show --name $ACR_NAME --query id --output tsv) \
                --role acrpull \
                --query password \
                --output tsv)

Das Argument --role im vorhergehenden Befehl konfiguriert den Dienstprinzipal mit der Rolle acrpull, die ihm ausschließlich Pullzugriff auf die Registrierung gewährt.The --role argument in the preceding command configures the service principal with the acrpull role, which grants it pull-only access to the registry. Um sowohl Push- als auch Pullzugriff zu gewähren, ändern Sie das Argument --role in acrpush.To grant both push and pull access, change the --role argument to acrpush.

Speichern Sie als Nächstes die App-ID (appId) des Dienstprinzipals im Tresor. Dies ist der Benutzername (username), den Sie zur Authentifizierung an Azure Container Registry übergeben:Next, store the service principal's appId in the vault, which is the username you pass to Azure Container Registry for authentication:

# Store service principal ID in AKV (the registry *username*)
az keyvault secret set \
    --vault-name $AKV_NAME \
    --name $ACR_NAME-pull-usr \
    --value $(az ad sp show --id http://$ACR_NAME-pull --query appId --output tsv)

Sie haben einen Azure Key Vault erstellt und in ihm zwei Geheimnisse gespeichert:You've created an Azure Key Vault and stored two secrets in it:

  • $ACR_NAME-pull-usr: Die Dienstprinzipal-ID für die Verwendung als Benutzername für die Containerregistrierung.$ACR_NAME-pull-usr: The service principal ID, for use as the container registry username.
  • $ACR_NAME-pull-pwd: Das Kennwort des Dienstprinzipals für die Verwendung als Kennwort für die Containerregistrierung.$ACR_NAME-pull-pwd: The service principal password, for use as the container registry password.

Sie können nun auf diese Geheimnisse anhand des Namens verweisen, wenn Sie oder Ihre Anwendungen und Dienste Images per Pull aus der Registrierung abrufen.You can now reference these secrets by name when you or your applications and services pull images from the registry.

Bereitstellen eines Containers mit der Azure CLIDeploy a container with Azure CLI

Nachdem die Anmeldeinformationen des Dienstprinzipals als Azure Key Vault-Geheimnisse gespeichert wurden, können sie von Ihren Anwendungen und Diensten für den Zugriff auf Ihre private Registrierung verwendet werden.Now that the service principal credentials are stored as Azure Key Vault secrets, your applications and services can use them to access your private registry.

Führen Sie den folgenden az container create-Befehl aus, um eine Containerinstanz bereitzustellen.Execute the following az container create command to deploy a container instance. Der Befehl verwendet die in Azure Key Vault gespeicherten Anmeldeinformationen des Dienstprinzipals, um sich bei Ihrer Containerregistrierung zu authentifizieren.The command uses the service principal's credentials stored in Azure Key Vault to authenticate to your container registry.

az container create \
    --resource-group $RES_GROUP \
    --name acr-tasks \
    --image $ACR_NAME.azurecr.io/helloacrtasks:v1 \
    --registry-login-server $ACR_NAME.azurecr.io \
    --registry-username $(az keyvault secret show --vault-name $AKV_NAME --name $ACR_NAME-pull-usr --query value -o tsv) \
    --registry-password $(az keyvault secret show --vault-name $AKV_NAME --name $ACR_NAME-pull-pwd --query value -o tsv) \
    --dns-name-label acr-tasks-$ACR_NAME \
    --query "{FQDN:ipAddress.fqdn}" \
    --output table

Da der Wert --dns-name-label innerhalb von Azure eindeutig sein muss, fügt der vorherige Befehl den Namen Ihrer Containerregistrierung an die DNS-Namensbezeichnung des Containers an.The --dns-name-label value must be unique within Azure, so the preceding command appends your container registry's name to the container's DNS name label. Die Ausgabe des Befehls zeigt den vollqualifizierten Domänennamen (FQDN) des Containers. Beispiel:The output from the command displays the container's fully qualified domain name (FQDN), for example:

FQDN
----------------------------------------------
acr-tasks-myregistry.eastus.azurecontainer.io

Notieren Sie sich den FQDN des Containers. Er wird im nächsten Abschnitt benötigt.Take note of the container's FQDN, you'll use it in the next section.

Überprüfen der BereitstellungVerify the deployment

Verwenden Sie den Befehl az container attach, um den Startprozess des Containers zu überwachen:To watch the startup process of the container, use the az container attach command:

az container attach --resource-group $RES_GROUP --name acr-tasks

Die Ausgabe von az container attach zeigt zunächst den Status des Containers an, während das Image gepullt und gestartet wird, und bindet dann die Ausgaben „STDOUT“ und „STDERR“ Ihrer lokalen Konsole an die des Containers.The az container attach output first displays the container's status as it pulls the image and starts, then binds your local console's STDOUT and STDERR to that of the container's.

Container 'acr-tasks' is in state 'Running'...
(count: 1) (last timestamp: 2018-08-22 18:39:10+00:00) pulling image "myregistry.azurecr.io/helloacrtasks:v1"
(count: 1) (last timestamp: 2018-08-22 18:39:15+00:00) Successfully pulled image "myregistry.azurecr.io/helloacrtasks:v1"
(count: 1) (last timestamp: 2018-08-22 18:39:17+00:00) Created container
(count: 1) (last timestamp: 2018-08-22 18:39:17+00:00) Started container

Start streaming logs:
Server running at http://localhost:80

Wenn Server running at http://localhost:80 angezeigt wird, navigieren Sie in Ihrem Browser zum FQDN des Containers, um die ausgeführte Anwendung anzuzeigen.When Server running at http://localhost:80 appears, navigate to the container's FQDN in your browser to see the running application. Der FQDN sollte in der Ausgabe des az container create-Befehls angezeigt worden sein, den Sie im vorherigen Abschnitt ausgeführt haben.The FQDN should have been displayed in the output of the az container create command you executed in the previous section.

Screenshot der im Browser gerenderten Beispielanwendung

Drücken Sie Control+C, um Ihre Konsole vom Container zu trennen.To detach your console from the container, hit Control+C.

Bereinigen von RessourcenClean up resources

Beenden Sie die Containerinstanz mithilfe des Befehls az container delete:Stop the container instance with the az container delete command:

az container delete --resource-group $RES_GROUP --name acr-tasks

Führen Sie die folgenden Befehle aus, um alle Ressourcen zu entfernen, die Sie im Rahmen dieses Tutorials erstellt haben (einschließlich der Containerregistrierung, des Schlüsseltresors und des Dienstprinzipals).To remove all resources you've created in this tutorial, including the container registry, key vault, and service principal, issue the following commands. Falls Sie allerdings direkt mit dem nächsten Tutorial fortfahren möchten, empfiehlt es sich, die Ressourcen nicht zu bereinigen, da dort die gleichen Ressourcen benötigt werden.These resources are used in the next tutorial in the series, however, so you might want to keep them if you move on directly to the next tutorial.

az group delete --resource-group $RES_GROUP
az ad sp delete --id http://$ACR_NAME-pull

Nächste SchritteNext steps

Nachdem Sie Ihre innere Schleife mit einer Schnellaufgabe getestet haben, können Sie eine Buildaufgabe konfigurieren, die dafür sorgt, dass ein Buildvorgang für Containerimages ausgelöst wird, wenn Sie Quellcode in einem Git-Repository committen:Now that you've tested your inner loop with a quick task, configure a build task to trigger container images builds when you commit source code to a Git repository: