Delen via


Problemen met azure CLI Azure Operator Service Manager -extensie (AOSM)

Dit document bevat een lijst met veelvoorkomende problemen bij het gebruik van de Azure CLI AOSM-extensie voor het onboarden van Netwerkfuncties en hun oplossingen.

Algemene problemen

Publisher bestaat al in de regio

Uitgeversnamen moeten uniek zijn binnen een Azure-regio. Als de volgende fout wordt weergegeven, wordt de naam van de uitgever die u hebt gekozen, al gebruikt:

Message: A private publisher resource with the name 'nginx-publisher' already exists in the provided region.

Los deze fout als volgt op:

Als u eigenaar bent van de uitgever, bevindt deze zich in uw tenant en wilt u deze opnieuw gebruiken:

De uitgever is gedefinieerd in het configuratiebestand voor de AOSM CLI-extensie. De publisher_name velden en publisher_resource_group_name velden moeten overeenkomen met die van de bestaande uitgever en moeten zich in de tenant bevinden die u voor deze implementatie gebruikt.

Wijzig het publisher_resource_group_name configuratiebestand zodat het verwijst naar de bestaande uitgever, voer de bijbehorende build opdracht opnieuw uit en voer de publish opdracht opnieuw uit.

U bent niet de eigenaar van de bestaande uitgever:

Gebruik een nieuwe uitgevernaam.

Fout bij uploaden van NSD-artefacten (Network Service Design)

Uploads van artefacten met behulp van az aosm nsd publish de opdracht kunnen soms mislukken. De foutuitvoer in dit geval is

ValueError: Issue retrieving session url: {'errors': [{'code': 'UNAUTHORIZED', 'message': 'authentication required, visit https://aka.ms/acr/authorization for more information.', 'detail': [{'Type': 'repository', 'Name': 'contoso-nsd', 'Action': 'pull'}, {'Type': 'repository', 'Name': 'contoso-nsd', 'Action': 'push'}]}]}

Los deze fout als volgt op:

Optie 1. Controleer of u de Contributor roltoewijzingen hebt AcrPush voor het abonnement dat u wilt gebruiken. Wijs ze toe als u dat niet doet. Als het instellen van deze roltoewijzing niet mogelijk is, voert u de az aosm nsd publish opdracht uit met de --no-subscription-permissions parameter.

Optie 2. Als deze machtigingen het probleem niet oplossen, voert u de volgende opdrachten uit vanuit de nsd-cli-output/artifacts map die door de az aosm nsd build opdracht is gemaakt:

  • Bouw de ARM-sjabloon voor de netwerkfunctie op basis van het BICEP-bestand dat is gegenereerd door de CLI
bicep build <nf-name>.bicep
  • Genereer tokenreferenties van het artefactmanifest dat in de az aosm nsd publish opdracht is gemaakt.

Belangrijk

U moet het artefactmanifest gebruiken dat in de az aosm nsd publish opdracht is gemaakt. De NF ARM-sjabloon wordt alleen gedeclareerd in dat manifest, dus alleen het bereiktoewijzingstoken dat door dit manifest wordt gegenereerd, kunt u de NF ARM-sjabloon pushen (of ophalen) naar de Artifact Store.

az rest --method POST --url 'https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HybridNetwork/publishers/<publisher>/artifactStores/<artifact-store>/artifactManifests/<artifactManifest>/listCredential?api-version=2023-09-01'
oras login <aosm-managed-acr-name>.azurecr.io --username <username> --password <scope map token>
  • Gebruik ORAS om de ARM-sjabloon voor netwerkfuncties te uploaden naar de AOSM managed Azure Container Registry (ACR). De <arm-template-version> artefacttag moet een 1.0.0 indeling hebben.
oras push <aosm-managed-acr-name>.azurecr.io/Contoso-nsd:<arm-template-version> ./nsd-cli-output/artifacts/<nf-name>.json

Kopieerfouten tussen tenants

De Azure CLI AOSM-extensie biedt geen systeemeigen ondersteuning voor kopieën van installatiekopieën voor meerdere tenants. Het is echter mogelijk om uw CLI-omgeving te configureren op een manier die deze functionaliteit toestaat. Het proces is het instellen van het standaard Azure-abonnement op het abonnement dat de bron-ACR bevat, meld u aan bij de bron-ACR en voer vervolgens alle az aosm opdrachten uit met de --subscription parameter, waarbij u de waarde instelt op het doelabonnement. De bron- en doelabonnementen kunnen zich in verschillende tenants bevinden.

az account set --subscription <source-acr-subscription>
az acr login --name <source-acr-name> -u <source-acr-username> -p <source-acr-password> --subscription <source-acr-subscription>
az aosm nfd publish --definition-type cnf --subscription <target-subscription>

Veelvoorkomende onjuiste configuraties

Implementatie van sitenetwerkservice (SNS) mislukt wanneer de configuratie van de site- en netwerkserviceontwerpversie (NSDV) niet overeenkomt

Pogingen voor het maken van SNS mislukken als de eigenschap nfvi van de siteresource niet overeenkomt met de eigenschap nfvisFromSite van de NSDV. De fout is

{
"statusMessage": "{\"status\":\"Failed\",\"error\":{\"code\":\"ResourceOperationFailure\",\"message\":\"The resource operation completed with terminal provisioning state 'Failed'.\",\"details\":[{\"code\":\"InvalidRequestContent\",\"message\":\"For NfviAlias = nfvi1, either NfviName = nsd-contoso_NFVI and NfviType = AzureCore does not match with site resource.\"}]}}",
}

In dit voorbeeld bevat de eigenschap NSDV nfvisFromSite:

    nfvisFromSite: {
      nfvi1: {
        name: 'nsd-contoso_NFVI1'
        type: 'AzureArcKubernetes'
      }

De eigenschap Siteresource nfvi moet overeenkomen met de naam en typ de NSDV.

resource site 'Microsoft.HybridNetwork/sites@2023-09-01' = {
  name: 'contoso-site'
  location: 'eastus'
  properties: {
    nfvis : [
      {
        name: 'nsd-contoso_NFVI1'
        nfviType: 'AzureArcKubernetes'
        customLocationReference: {
          id: '<custom-location-arm-id>'
        }
      }
    ]
  }
}

De nfdvName in de waarde van de configuratiegroep (CGV) komt niet overeen met de gepubliceerde NFDV (Network Function Definition Version)

Schema's voor configuratiegroepen die zijn gegenereerd door de Azure CLI AOSM-extensie hebben een verplichte parameter met de naam nfdvName. nfdvname is de naam van de NFDV, een tekenreeks in 1.0.0 indeling. Het is niet de naam van de netwerkfunctie (NF) of netwerkfunctiedefinitiegroep (NFDG). In het volgende voorbeeld ziet u het juiste gebruik.

{
    "nsd-contoso": {
        "nfdvName": "1.0.0",
        "deployParameters": [
            {}
        ],
        "customLocationId": "<custom-location-arm-id>",
        "managedIdentityId": "<managed-id-arm-id>"
    }
}

Onjuiste eigenschap CGV-waarden bij het weergeven van geen parameters in een configuratiegroepschema (CGS)

Schema's voor configuratiegroepen die zijn gegenereerd door de Azure CLI AOSM-extensie maken een deployParameters veld beschikbaar dat standaard een matrix van JSON-objecten is. Er zijn verschillende redenen waarom u een CGV wilt maken met een leeg deployParameters veld:

  • U hebt geen configuratie weergegeven in het schema van de configuratiegroep en alle waarden worden ingesteld in de standaardwaarden.yaml in de Helm-grafiek.
  • U hebt een configuratiegroepschema gemaakt dat standaardwaarden bevat en u deze niet wilt overschrijven.

Als u een CGV met een leeg deployParameters veld maakt, moet de veldwaarde een matrix zijn die een leeg JSON-object bevat.

{
    "nsd-contoso": {
        "nfdv": "1.0.0",
        "deployParameters": [
            {}
        ],
        "customLocationId": "<custom-location-arm-id>",
        "managedIdentityId": "<managed-id-arm-id>"
    }
}

AOSM retourneert het volgende foutbericht als de CGV een lege matrix (dat wil []gezegd) bevat in plaats van een matrix met een leeg object ([{}]).

{"code":"BadRequest","message":"NSDV ResourceElementTemplate (name: 'mco-nsdg', type: 'NetworkFunctionDefinition') expects at least one 'networkfunctions' resource in the associated template. Please use the type: 'ArmResourceDefinition' to install generic ARM resources."}

Komt niet overeen tussen afbeeldingseigenschap in Helm-grafieken en -locatie in bron-ACR

De AOSM CLI vereist dat de installatiekopieën in uw bronregister zich in dezelfde opslagplaatsstructuur bevinden als in uw Helm-grafiek. Een installatiekopieën die zijn opgenomen in een Helm-grafiek core/contoso-a:1.0.0 , moeten bijvoorbeeld beschikbaar zijn in het bronregister in een pad dat eindigt op core/contoso-a:1.0.0. Het uploaden van de installatiekopie naar het juiste pad in het bronregister mislukt az aosm nfd publish met de volgende fout.

Code: InvalidParameters
Message: Operation registries-cd9ad97d-f3a3-11ee-a728-6b163569f55a failed. Resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerRegistry/registries/contoso Invalid message NotFound Not Found {"errors":[{"code":"MANIFEST_UNKNOWN","message":"manifest tagged by \"0.0.0-9\" is not found","detail":{"Tag":"0.0.0-9"}}]}

Er zijn meerdere oplossingen beschikbaar.

  • Bewerk uw Helm-grafiek of geef de afbeeldingspaden door in values.yaml en stel de afbeeldingspaden in zodat deze overeenkomen met de opslagplaatsstructuur in het bronregister.
  • Upload de installatiekopieën naar uw bronregister, zodat de samenvoeging van 'image_sources' in het cnf-input.jsonc bestand en het installatiekopiepad uit de Helm-grafiek overeenkomt met de geüploade locatie in het bronregister.
  • De AOSM CLI slaat metagegevens op voor de afbeeldingen die worden gedetecteerd in cnf-cli-output/artifacts/artifacts.json. Het pad dat de AOSM CLI doorzoekt in het bronregister is <registry_name>/<registry_namespace>/<artifact_name>/<artifact_version>. U kunt dit bestand handmatig bewerken, zodat de waarden overeenkomen met de locatie van de afbeelding in uw bron-ACR.

CGV's komen niet overeen met CGS wanneer de parameter een null-type heeft

Op dit moment wordt AOSM niet ondersteund null als een standaardwaarde in het deployParameters-schema, wat betekent dat de standaardwaarde null ook niet is toegestaan in schema's voor configuratiegroepen. Om dit probleem te omzeilen, stelt de AOSM CLI de standaardwaarde in voor parameters van het type null als tekenreeks "null", waardoor een NFDV kan worden gepubliceerd.

Wanneer u de portal gebruikt om CSV's te maken, wordt de parameter automatisch ingevuld als "null" waarde. Als u deze waarde niet wijzigt, wordt in de portal een foutbericht weergegeven met de mededeling: 'Nieuwe configuratiegroepwaarde komt niet overeen met het schema. Bewerk de waarden.'

Schermopname van de portal waarin een foutbericht wordt weergegeven omdat de waarden van de configuratiegroep niet overeenkomen met het schema van de configuratiegroep.

Als u deze fout wilt oplossen, wijzigt "null" u in null de CSV's.

Oorspronkelijk hebben we bijvoorbeeld de waarde "null":

"serviceAccount_name": "null",

Deze moet worden gewijzigd in de waarde null.

"serviceAccount_name": null,