Quickstart: De Azure Container Registry-clientbibliotheken gebruiken
Gebruik dit artikel om aan de slag te gaan met de clientbibliotheek voor Azure Container Registry. Volg deze stappen om voorbeeldcode uit te proberen voor gegevensvlakbewerkingen op afbeeldingen en artefacten.
Gebruik de clientbibliotheek voor Azure Container Registry om:
- Afbeeldingen of artefacten in een register weergeven
- Metagegevens ophalen voor afbeeldingen en artefacten, opslagplaatsen en tags
- Eigenschappen lezen/schrijven/verwijderen instellen voor registeritems
- Installatiekopieën en artefacten, opslagplaatsen en tags verwijderen
Azure Container Registry heeft ook een beheerbibliotheek voor besturingsvlakbewerkingen, waaronder het maken en bijwerken van het register.
Vereisten
U hebt een Azure-abonnement en een Azure-containerregister nodig om deze bibliotheek te kunnen gebruiken.
Als u een nieuw Azure-containerregister wilt maken, kunt u Azure Portal, Azure PowerShell of de Azure CLI gebruiken. Hier volgt een voorbeeld met behulp van de Azure CLI:
az acr create --name MyContainerRegistry --resource-group MyResourceGroup \ --location westus --sku Basic
Push een of meer containerinstallatiekopieën naar uw register. Zie Uw eerste installatiekopieën pushen naar uw Azure-containerregister met behulp van de Docker CLI voor stappen.
Belangrijke concepten
- In een Azure-containerregister worden containerinstallatiekopieën en OCI-artefacten opgeslagen.
- Een afbeelding of artefact bestaat uit een manifest en lagen.
- Een manifest beschrijft de lagen waaruit de afbeelding of het artefact bestaat. Het wordt uniek geïdentificeerd door de digest.
- Een afbeelding of artefact kan ook worden getagd om het een door mensen leesbare alias te geven. Aan een afbeelding of artefact kunnen nul of meer tags zijn gekoppeld en elke tag identificeert de afbeelding op unieke wijze.
- Een verzameling afbeeldingen of artefacten die dezelfde naam hebben, maar verschillende tags hebben, is een opslagplaats.
Zie Voor meer informatie over registers, opslagplaatsen en artefacten.
Aan de slag
Voorbeelden van | broncodepakketten | (NuGet)API |
Als u .NET-toepassingscode wilt ontwikkelen die verbinding kan maken met een Azure Container Registry-exemplaar, hebt u de Azure.Containers.ContainerRegistry
bibliotheek nodig.
Het pakket installeren
Installeer de Azure Container Registry-clientbibliotheek voor .NET met NuGet:
dotnet add package Azure.Containers.ContainerRegistry --prerelease
De client verifiëren
Als uw toepassing verbinding kan maken met uw register, moet u er een ContainerRegistryClient
maken die ermee kan worden geverifieerd. Gebruik de Azure Identity-bibliotheek om ondersteuning voor Microsoft Entra ID toe te voegen voor het verifiëren van Azure SDK-clients met hun bijbehorende Azure-services.
Wanneer u uw toepassing lokaal ontwikkelt en foutopsporing uitvoert, kunt u uw eigen gebruiker gebruiken om te verifiëren met uw register. U kunt dit onder andere doen door uw gebruiker te verifiëren met de Azure CLI en uw toepassing uit te voeren vanuit deze omgeving. Als uw toepassing een client gebruikt die is samengesteld om te verifiëren, DefaultAzureCredential
wordt deze correct geverifieerd met het register op het opgegeven eindpunt.
// Create a ContainerRegistryClient that will authenticate to your registry through Azure Active Directory
Uri endpoint = new Uri("https://myregistry.azurecr.io");
ContainerRegistryClient client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential(),
new ContainerRegistryClientOptions()
{
Audience = ContainerRegistryAudience.AzureResourceManagerPublicCloud
});
Zie azure Identity README voor meer benaderingen voor verificatie met DefaultAzureCredential
, zowel lokaal als in implementatieomgevingen. Als u verbinding wilt maken met registers in niet-openbare Azure-clouds, raadpleegt u de API-verwijzing.
Zie het verificatieoverzicht voor meer informatie over het gebruik van Microsoft Entra ID met Azure Container Registry.
Voorbeelden
In elk voorbeeld wordt ervan uitgegaan dat er een REGISTRY_ENDPOINT
omgevingsvariabele is ingesteld op een tekenreeks die het https://
voorvoegsel en de naam van de aanmeldingsserver bevat, bijvoorbeeld 'https://myregistry.azurecr.io".
In de volgende voorbeelden worden asynchrone API's gebruikt die een taak retourneren. Synchrone API's zijn ook beschikbaar.
Opslagplaatsen asynchroon weergeven
Doorloop de verzameling opslagplaatsen in het register.
// Get the service endpoint from the environment
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("REGISTRY_ENDPOINT"));
// Create a new ContainerRegistryClient
ContainerRegistryClient client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential(),
new ContainerRegistryClientOptions()
{
Audience = ContainerRegistryAudience.AzureResourceManagerPublicCloud
});
// Get the collection of repository names from the registry
AsyncPageable<string> repositories = client.GetRepositoryNamesAsync();
await foreach (string repository in repositories)
{
Console.WriteLine(repository);
}
Artefacteigenschappen asynchroon instellen
// Get the service endpoint from the environment
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("REGISTRY_ENDPOINT"));
// Create a new ContainerRegistryClient
ContainerRegistryClient client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential(),
new ContainerRegistryClientOptions()
{
Audience = ContainerRegistryAudience.AzureResourceManagerPublicCloud
});
// Get the collection of repository names from the registry
AsyncPageable<string> repositories = client.GetRepositoryNamesAsync();
await foreach (string repository in repositories)
{
Console.WriteLine(repository);
}
Afbeeldingen asynchroon verwijderen
using System.Linq;
using Azure.Containers.ContainerRegistry;
using Azure.Identity;
// Get the service endpoint from the environment
Uri endpoint = new Uri(Environment.GetEnvironmentVariable("REGISTRY_ENDPOINT"));
// Create a new ContainerRegistryClient
ContainerRegistryClient client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential(),
new ContainerRegistryClientOptions()
{
Audience = ContainerRegistryAudience.AzureResourceManagerPublicCloud
});
// Iterate through repositories
AsyncPageable<string> repositoryNames = client.GetRepositoryNamesAsync();
await foreach (string repositoryName in repositoryNames)
{
ContainerRepository repository = client.GetRepository(repositoryName);
// Obtain the images ordered from newest to oldest
AsyncPageable<ArtifactManifestProperties> imageManifests =
repository.GetManifestPropertiesCollectionAsync(orderBy: ArtifactManifestOrderBy.LastUpdatedOnDescending);
// Delete images older than the first three.
await foreach (ArtifactManifestProperties imageManifest in imageManifests.Skip(3))
{
RegistryArtifact image = repository.GetArtifact(imageManifest.Digest);
Console.WriteLine($"Deleting image with digest {imageManifest.Digest}.");
Console.WriteLine($" Deleting the following tags from the image: ");
foreach (var tagName in imageManifest.Tags)
{
Console.WriteLine($" {imageManifest.RepositoryName}:{tagName}");
await image.DeleteTagAsync(tagName);
}
await image.DeleteAsync();
}
}
Aan de slag
Voorbeelden van broncodepakketten (Maven)API | | |
Momenteel ondersteunde omgevingen
- Java Development Kit (JDK), versie 8 of hoger.
Het pakket opnemen
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-containers-containerregistry</artifactId>
<version>1.0.0-beta.3</version>
</dependency>
De client verifiëren
De Azure Identity-bibliotheek biedt ondersteuning voor Microsoft Entra ID voor verificatie.
In de volgende voorbeelden wordt ervan uitgegaan dat u een registereindpuntreeks hebt met het https://
voorvoegsel en de naam van de aanmeldingsserver, bijvoorbeeld 'https://myregistry.azurecr.io".
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
ContainerRegistryClient client = new ContainerRegistryClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
ContainerRegistryAsyncClient client = new ContainerRegistryClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildAsyncClient();
Zie het verificatieoverzicht voor meer informatie over het gebruik van Microsoft Entra ID met Azure Container Registry.
Voorbeelden
In elk voorbeeld wordt ervan uitgegaan dat er een registereindpunttekenreeks is met het https://
voorvoegsel en de naam van de aanmeldingsserver, bijvoorbeeld 'https://myregistry.azurecr.io".
Namen van opslagplaatsen weergeven
Doorloop de verzameling opslagplaatsen in het register.
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
ContainerRegistryClient client = new ContainerRegistryClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
client.listRepositoryNames().forEach(repository -> System.out.println(repository));
Artefacteigenschappen instellen
TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
ContainerRegistryClient client = new ContainerRegistryClientBuilder()
.endpoint(endpoint)
.credential(defaultCredential)
.buildClient();
RegistryArtifact image = client.getArtifact(repositoryName, digest);
image.updateTagProperties(
tag,
new ArtifactTagProperties()
.setWriteEnabled(false)
.setDeleteEnabled(false));
Installatiekopieën verwijderen
TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
ContainerRegistryClient client = new ContainerRegistryClientBuilder()
.endpoint(endpoint)
.credential(defaultCredential)
.buildClient();
final int imagesCountToKeep = 3;
for (String repositoryName : client.listRepositoryNames()) {
final ContainerRepository repository = client.getRepository(repositoryName);
// Obtain the images ordered from newest to oldest
PagedIterable<ArtifactManifestProperties> imageManifests =
repository.listManifestProperties(
ArtifactManifestOrderBy.LAST_UPDATED_ON_DESCENDING,
Context.NONE);
imageManifests.stream().skip(imagesCountToKeep)
.forEach(imageManifest -> {
System.out.printf(String.format("Deleting image with digest %s.%n", imageManifest.getDigest()));
System.out.printf(" This image has the following tags: ");
for (String tagName : imageManifest.getTags()) {
System.out.printf(" %s:%s", imageManifest.getRepositoryName(), tagName);
}
repository.getArtifact(imageManifest.getDigest()).delete();
});
}
Aan de slag
Referentievoorbeelden voor broncodepakket (npm) | API | |
Momenteel ondersteunde omgevingen
Zie ons ondersteuningsbeleid voor meer informatie.
Installeer het pakket @azure/container-registry
Installeer de Container Registry-clientbibliotheek voor JavaScript met npm
:
npm install @azure/container-registry
De client verifiëren
De Azure Identity-bibliotheek biedt ondersteuning voor Microsoft Entra ID voor verificatie.
const { ContainerRegistryClient } = require("@azure/container-registry");
const { DefaultAzureCredential } = require("@azure/identity");
const endpoint = process.env.CONTAINER_REGISTRY_ENDPOINT;
// Create a ContainerRegistryClient that will authenticate through Active Directory
const client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential());
Zie het verificatieoverzicht voor meer informatie over het gebruik van Microsoft Entra ID met Azure Container Registry.
Voorbeelden
In elk voorbeeld wordt ervan uitgegaan dat er een CONTAINER_REGISTRY_ENDPOINT
omgevingsvariabele is ingesteld op een tekenreeks die het https://
voorvoegsel en de naam van de aanmeldingsserver bevat, bijvoorbeeld 'https://myregistry.azurecr.io".
Opslagplaatsen asynchroon weergeven
Doorloop de verzameling opslagplaatsen in het register.
const { ContainerRegistryClient } = require("@azure/container-registry");
const { DefaultAzureCredential } = require("@azure/identity");
async function main() {
// endpoint should be in the form of "https://myregistryname.azurecr.io"
// where "myregistryname" is the actual name of your registry
const endpoint = process.env.CONTAINER_REGISTRY_ENDPOINT || "<endpoint>";
const client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential());
console.log("Listing repositories");
const iterator = client.listRepositoryNames();
for await (const repository of iterator) {
console.log(` repository: ${repository}`);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Artefacteigenschappen asynchroon instellen
const { ContainerRegistryClient } = require("@azure/container-registry");
const { DefaultAzureCredential } = require("@azure/identity");
async function main() {
// Get the service endpoint from the environment
const endpoint = process.env.CONTAINER_REGISTRY_ENDPOINT || "<endpoint>";
// Create a new ContainerRegistryClient and RegistryArtifact to access image operations
const client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential());
const image = client.getArtifact("library/hello-world", "v1");
// Set permissions on the image's "latest" tag
await image.updateTagProperties("latest", { canWrite: false, canDelete: false });
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Afbeeldingen asynchroon verwijderen
const { ContainerRegistryClient } = require("@azure/container-registry");
const { DefaultAzureCredential } = require("@azure/identity");
async function main() {
// Get the service endpoint from the environment
const endpoint = process.env.CONTAINER_REGISTRY_ENDPOINT || "<endpoint>";
// Create a new ContainerRegistryClient
const client = new ContainerRegistryClient(endpoint, new DefaultAzureCredential());
// Iterate through repositories
const repositoryNames = client.listRepositoryNames();
for await (const repositoryName of repositoryNames) {
const repository = client.getRepository(repositoryName);
// Obtain the images ordered from newest to oldest by passing the `orderBy` option
const imageManifests = repository.listManifestProperties({
orderBy: "LastUpdatedOnDescending"
});
const imagesToKeep = 3;
let imageCount = 0;
// Delete images older than the first three.
for await (const manifest of imageManifests) {
imageCount++;
if (imageCount > imagesToKeep) {
const image = repository.getArtifact(manifest.digest);
console.log(`Deleting image with digest ${manifest.digest}`);
console.log(` Deleting the following tags from the image:`);
for (const tagName of manifest.tags) {
console.log(` ${manifest.repositoryName}:${tagName}`);
image.deleteTag(tagName);
}
await image.delete();
}
}
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Aan de slag
Referentievoorbeelden van broncodepakket (Pypi) | API | |
Het pakket installeren
Installeer de Azure Container Registry-clientbibliotheek voor Python met pip:
pip install --pre azure-containerregistry
De client verifiëren
De Azure Identity-bibliotheek biedt ondersteuning voor Microsoft Entra ID voor verificatie. Hierbij DefaultAzureCredential
wordt ervan uitgegaan dat de AZURE_CLIENT_ID
, AZURE_TENANT_ID
en AZURE_CLIENT_SECRET
omgevingsvariabelen zijn ingesteld. Zie Azure Identity-omgevingsvariabelen voor meer informatie.
# Create a ContainerRegistryClient that will authenticate through Active Directory
from azure.containerregistry import ContainerRegistryClient
from azure.identity import DefaultAzureCredential
account_url = "https://mycontainerregistry.azurecr.io"
client = ContainerRegistryClient(account_url, DefaultAzureCredential())
Voorbeelden
In elk voorbeeld wordt ervan uitgegaan dat er een CONTAINERREGISTRY_ENDPOINT
omgevingsvariabele is ingesteld op een tekenreeks die het https://
voorvoegsel en de naam van de aanmeldingsserver bevat, bijvoorbeeld 'https://myregistry.azurecr.io".
Lijsttags asynchroon
In dit voorbeeld wordt ervan uitgegaan dat het register een opslagplaats hello-world
heeft.
import asyncio
from dotenv import find_dotenv, load_dotenv
import os
from azure.containerregistry.aio import ContainerRegistryClient
from azure.identity.aio import DefaultAzureCredential
class ListTagsAsync(object):
def __init__(self):
load_dotenv(find_dotenv())
async def list_tags(self):
# Create a new ContainerRegistryClient
audience = "https://management.azure.com"
account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"]
credential = DefaultAzureCredential()
client = ContainerRegistryClient(account_url, credential, audience=audience)
manifest = await client.get_manifest_properties("library/hello-world", "latest")
print(manifest.repository_name + ": ")
for tag in manifest.tags:
print(tag + "\n")
Artefacteigenschappen asynchroon instellen
In dit voorbeeld wordt ervan uitgegaan dat het register een opslagplaats heeft met een gelabelde v1
installatiekopieënhello-world
.
import asyncio
from dotenv import find_dotenv, load_dotenv
import os
from azure.containerregistry.aio import ContainerRegistryClient
from azure.identity.aio import DefaultAzureCredential
class SetImagePropertiesAsync(object):
def __init__(self):
load_dotenv(find_dotenv())
async def set_image_properties(self):
# Create a new ContainerRegistryClient
account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"]
audience = "https://management.azure.com"
credential = DefaultAzureCredential()
client = ContainerRegistryClient(account_url, credential, audience=audience)
# [START update_manifest_properties]
# Set permissions on the v1 image's "latest" tag
await client.update_manifest_properties(
"library/hello-world",
"latest",
can_write=False,
can_delete=False
)
# [END update_manifest_properties]
# After this update, if someone were to push an update to "myacr.azurecr.io\hello-world:v1", it would fail.
# It's worth noting that if this image also had another tag, such as "latest", and that tag did not have
# permissions set to prevent reads or deletes, the image could still be overwritten. For example,
# if someone were to push an update to "myacr.azurecr.io\hello-world:latest"
# (which references the same image), it would succeed.
Afbeeldingen asynchroon verwijderen
import asyncio
from dotenv import find_dotenv, load_dotenv
import os
from azure.containerregistry import ManifestOrder
from azure.containerregistry.aio import ContainerRegistryClient
from azure.identity.aio import DefaultAzureCredential
class DeleteImagesAsync(object):
def __init__(self):
load_dotenv(find_dotenv())
async def delete_images(self):
# [START list_repository_names]
audience = "https://management.azure.com"
account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"]
credential = DefaultAzureCredential()
client = ContainerRegistryClient(account_url, credential, audience=audience)
async with client:
async for repository in client.list_repository_names():
print(repository)
# [END list_repository_names]
# [START list_manifest_properties]
# Keep the three most recent images, delete everything else
manifest_count = 0
async for manifest in client.list_manifest_properties(repository, order_by=ManifestOrder.LAST_UPDATE_TIME_DESCENDING):
manifest_count += 1
if manifest_count > 3:
await client.delete_manifest(repository, manifest.digest)
# [END list_manifest_properties]
Aan de slag
Naslaginformatie over broncodepakket | (pkg.go.dev) | REST API
Het pakket installeren
Installeer de Azure Container Registry-clientbibliotheek voor Go met go get
:
go get github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry
De client verifiëren
Wanneer u uw toepassing lokaal ontwikkelt en foutopsporing uitvoert, kunt u azidentity gebruiken . NewDefaultAzureCredential voor verificatie. U wordt aangeraden een beheerde identiteit te gebruiken in een productieomgeving.
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry"
"log"
)
func main() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
client, err := azcontainerregistry.NewClient("https://myregistry.azurecr.io", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
}
Zie de azidentity-documentatie voor meer informatie over andere verificatiemethoden.
Voorbeelden
In elk voorbeeld wordt ervan uitgegaan dat de EINDPUNT-URL van het containerregister 'https://myregistry.azurecr.io"' is.
Tags weergeven
In dit voorbeeld wordt ervan uitgegaan dat het register een opslagplaats hello-world
heeft.
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry"
"log"
)
func Example_listTagsWithAnonymousAccess() {
client, err := azcontainerregistry.NewClient("https://myregistry.azurecr.io", nil, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
ctx := context.Background()
pager := client.NewListTagsPager("library/hello-world", nil)
for pager.More() {
page, err := pager.NextPage(ctx)
if err != nil {
log.Fatalf("failed to advance page: %v", err)
}
for _, v := range page.Tags {
fmt.Printf("tag: %s\n", *v.Name)
}
}
}
Artefacteigenschappen instellen
In dit voorbeeld wordt ervan uitgegaan dat het register een opslagplaats heeft met een gelabelde latest
installatiekopieënhello-world
.
package azcontainerregistry_test
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry"
"log"
)
func Example_setArtifactProperties() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
client, err := azcontainerregistry.NewClient("https://myregistry.azurecr.io", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
ctx := context.Background()
res, err := client.UpdateTagProperties(ctx, "library/hello-world", "latest", &azcontainerregistry.ClientUpdateTagPropertiesOptions{
Value: &azcontainerregistry.TagWriteableProperties{
CanWrite: to.Ptr(false),
CanDelete: to.Ptr(false),
}})
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
fmt.Printf("repository library/hello-world - tag latest: 'CanWrite' property: %t, 'CanDelete' property: %t\n", *res.Tag.ChangeableAttributes.CanWrite, *res.Tag.ChangeableAttributes.CanDelete)
}
Installatiekopieën verwijderen
package azcontainerregistry_test
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry"
"log"
)
func Example_deleteImages() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
client, err := azcontainerregistry.NewClient("https://myregistry.azurecr.io", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
ctx := context.Background()
repositoryPager := client.NewListRepositoriesPager(nil)
for repositoryPager.More() {
repositoryPage, err := repositoryPager.NextPage(ctx)
if err != nil {
log.Fatalf("failed to advance repository page: %v", err)
}
for _, r := range repositoryPage.Repositories.Names {
manifestPager := client.NewListManifestsPager(*r, &azcontainerregistry.ClientListManifestsOptions{
OrderBy: to.Ptr(azcontainerregistry.ArtifactManifestOrderByLastUpdatedOnDescending),
})
for manifestPager.More() {
manifestPage, err := manifestPager.NextPage(ctx)
if err != nil {
log.Fatalf("failed to advance manifest page: %v", err)
}
imagesToKeep := 3
for i, m := range manifestPage.Manifests.Attributes {
if i >= imagesToKeep {
for _, t := range m.Tags {
fmt.Printf("delete tag from image: %s", *t)
_, err := client.DeleteTag(ctx, *r, *t, nil)
if err != nil {
log.Fatalf("failed to delete tag: %v", err)
}
}
_, err := client.DeleteManifest(ctx, *r, *m.Digest, nil)
if err != nil {
log.Fatalf("failed to delete manifest: %v", err)
}
fmt.Printf("delete image with digest: %s", *m.Digest)
}
}
}
}
}
}
Resources opschonen
Als u een Azure-containerregister wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Volgende stappen
In deze quickstart hebt u geleerd hoe u de Azure Container Registry-clientbibliotheek kunt gebruiken om bewerkingen uit te voeren op installatiekopieën en artefacten in uw containerregister.
Zie de API-referentiedocumentatie voor meer informatie:
Meer informatie over de REST API van Azure Container Registry.