Partager via


Envoyer (push) et extraire (pull) des images et d’autres artefacts dans/depuis un magasin d’artefacts soutenu par Azure Container Registry (ACR)

La ressource de magasin d’artefacts Azure Operator Service Manager (AOSM) gère les artefacts requis pour déployer des fonctions réseau (NFs). Ces artefacts incluent des images de fonction réseau conteneurisée (CNF), des images de fonction réseau virtualisée (VNF), des modèles Azure Resource Manager (ARM) et des packages Helm. Il existe deux saveurs de magasin d’artefacts :

  • Azure Container Registry (ACR) : utilisé pour fournir un stockage pour les CNFs sur toutes les plateformes et les VNFs sur Azure Operator Nexus
  • Compte de stockage - Utilisé pour fournir un stockage pour les machines virtuelles sur Azure Core

L’extension Azure CLI AOSM fournit une commande pour envoyer tous les artefacts nécessaires à une CNF ou VNF sur Azure Operator Nexus. Il existe certains cas d’usage où vous devrez peut-être pousser des artifacts vers un magasin d’artefacts ou les en retirer individuellement.

  • Vous avez peut-être fourni l’image conteneur incorrecte et vous devez envoyer (push) une seule image de remplacement
  • Vous devrez peut-être envoyer une nouvelle version d’un seul conteneur pour corriger un problème.
  • Vous devrez peut-être modifier le modèle ARM NF dans le cadre d’un cycle de débogage
  • Vous devrez peut-être modifier des packages Helm ou un modèle ARM de machine virtuelle dans le cadre d’un cycle de débogage

Cet article How-To explique comment envoyer des artefacts vers et depuis un réservoir d’artefacts soutenu par ACR en utilisant la ressource de manifeste d’artefact AOSM et l’outil en ligne de commande ORAS. Consultez ce guide pour l'article équivalent pour les magasins d’artefacts soutenus par le compte de stockage.

Conditions préalables

  • Activer AOSM sur votre abonnement Azure
  • Installer Azure CLI
  • Déployer une ressource Artifact Store de type Azure Container Registry
  • Déployez une ressource de manifeste Artifact qui contient une entrée pour l’artefact que vous souhaitez installer. Cet exemple montre la définition du manifeste d’artefact Bicep pour une image fictive de conteneur CNF de Contoso
resource acrArtifactManifest 'Microsoft.Hybridnetwork/publishers/artifactStores/artifactManifests@2023-09-01' = {
  parent: 'contoso-cnf-store'
  name: 'contoso-cnf-manifest'
  location: 'eastus'
  properties: {
    artifacts: [
      {
        artifactName: 'contoso-cnf-container'
        artifactType: 'OCIArtifact'
        artifactVersion: '0.1.0'
      }
    ]
  }
}
  • (Si vous téléchargez un artefact) L’artefact est déjà disponible dans la ressource de magasin d’artefacts AOSM
  • (Si vous chargez un artefact) L’artefact est disponible dans l’environnement à partir duquel vous exécutez les commandes de cet article
  • Installer ORAS CLI
  • Vous avez besoin du rôle Contributeur sur le groupe de ressources qui contient votre magasin d’artefacts

Se connecter à un magasin d’artefacts pris en charge par ACR

  1. Obtenir des autorisations délimitées au référentiel à partir de la ressource de manifeste d’artefact

    az rest --method POST --url 'https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HybridNetwork/publishers/<publisher>/artifactStores/<artifact-store-name>/artifactManifests/<artifact-manifest-name>/listCredential?api-version=2023-09-01'
    

    Cette commande retourne le nom d’utilisateur et le mot de passe que vous utiliserez pour vous connecter à l’ACR qui sauvegarde le magasin d’artefacts. Le mot de passe se trouve dans le token champ.

    {
      "acrServerUrl": "https://<acr-name>.azurecr.io",
      "acrToken": "<token>",
      "credentialType": "AzureContainerRegistryScopedToken",
      "expiry": "2024-03-27T10:25:03.9217887+00:00",
      "repositories": [
        "<artifact-name>"
      ],
      "username": "<artifact-manifest-name>"
    }
    

    Important

    La ressource de manifeste d’artefact accorde des autorisations étroitement étendues pour les opérations d’envoi (push) et de tirage (pull). Vous devez utiliser un manifeste d’artefact qui contient une entrée pour l’artefact que vous souhaitez envoyer (push) ou extraire ( pull). Doit artifactName correspondre au nom de l’artefact dans le référentiel. Doit artifactVersion correspondre à la balise d’artefact

  2. Recherchez le nom de l’ACR qui sauvegarde la ressource de magasin d’artefacts en ouvrant la navigation vers le magasin d’artefacts et en copiant le champ Backing storage

    Diagramme montrant le champ de ressource de support du Magasin d’artefacts du portail Azure.

  3. Connectez-vous à l’ACR à l’aide de l’interface CLI ORAS

oras login <acr-name>.azurecr.io --username <artifact-manifest-name> --password <token>

Envoyer (push) un artefact vers un magasin d’artefacts soutenu par l’ACR

  1. Utilisez ORAS pour charger l’artefact dans l’ACR. Le <artifact-name> doit correspondre à la propriété artifactName dans le manifeste d’artefact. Le <artifact-tag> doit correspondre à la propriété artifactVersion dans le manifeste d’artefact. Le <artifact-tag> doit être dans le 1.0.0 format
oras push <acr-name>.azurecr.io/<artifact-name>:<artifact-tag> </path/to/artifact>

Tirer (pull) un artefact d’un magasin d’artefacts soutenu par l’ACR

  1. Utilisez ORAS pour extraire l’artefact de l’ACR.
oras pull <acr-name>.azurecr.io/<artifact-name>:<artifact-tag>

Étapes suivantes

  • Pour obtenir des instructions d’utilisation plus détaillées sur l’utilisation de la commandeoras push
  • Consultez Tirer (pull) ORAS pour obtenir des instructions d’utilisation plus détaillées pour la commande oras pull