Dela via


Det går inte att hämta avbildningar från Azure Container Registry med hjälp av hanterad identitetsautentisering

I den här artikeln beskrivs hur du felsöker pull-fel för avbildningar när du distribuerar till Azure Container Instances (ACI) från Azure Container Registry (ACR) med hjälp av en hanterad identitet.

Symptom

När du försöker distribuera en containergrupp och hämta avbildningar från ett Azure-containerregister som körs bakom en privat slutpunkt med hjälp av en hanterad identitet misslyckas avbildningshämtningen.

Orsak

Här är några orsaker till fel vid avbildningshämtning:

  • Från ACI-sidan:

    • Baserat på den ACI API-version som används när du distribuerar containergruppen kan autentiseringsformatet som anges i ARM-mallen för containergruppen vara ogiltigt.
    • Användning av en hanterad identitet i containergruppen kan bryta mot ACI-begränsningar.
    • Containergruppens definition i ARM-mallen kan vara felaktigt formaterad.
  • Från ACR-sidan:

    • Du kanske använder en tidigare API-version.
    • Du kanske använder en privat DNS-zon för containerregistret.

Felsökning från ACI-sidan

  1. Kontrollera om du använder en tidigare version av ACI API än 2021-07-01.

    I så fall kan felet "InvalidImageRegistryCredentialType" visas:

    $ az deployment group create -g <resourcegroupname> --template-file containergroup_trusted.json 
    Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
        "code": "InvalidImageRegistryCredentialType", 
        "message": "Identity in 'imageRegistryCredentials' of container group 'acrtestcontainergroup' is not supported." 
      } 
    } 
    

    Lös problemet genom att använda ACI API version 2021-07-01 eller senare.

  2. Kontrollera om du bryter mot ACI-begränsningar.

    Begränsningarna omfattar:

    • Virtuella nätverk har matat in containergrupper.
    • Windows Server 2016-containergrupper.
    • Försöker lösa ACR:s privata DNS-zon.

    Lös problemet genom att se till att du inte bryter mot dessa begränsningar.

  3. Kontrollera om containergruppens definition är korrekt utformad.

    Annars kan följande fel visas:

    • Felkod "AmbiguousImageResitryCredentialType":

      Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
          "code": "AmbiguousImageResitryCredentialType", 
          "message": "The registry credential type in the 'imageRegistryCredentials' of container group 'acrtestcontainergroup' cannot be detected. Please set exactly one of username or identity" 
      } 
      } 
      
    • Felkod "InvalidImageRegistryIdentity":

      Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
          "code": "InvalidImageRegistryIdentity", 
          "message": "The identity in the 'imageRegistryCredentials' of container group 'acrtestcontainergroup' not found in container group identity list." 
      } 
      } 
      
    • Felkod "InvalidRequestContent":

      Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
          "code": "InvalidRequestContent", 
          "message": "The request content was invalid and could not be deserialized: 'Required property 'server' not found in JSON. Path 'properties.imageRegistryCredentials[0]', line 1, position 586.'." 
      } 
      }
      

    För att lösa det här problemet måste du ange följande egenskaper i ARM-mallen:

Felsökning från ACR-sidan

  1. Kontrollera om den hanterade identiteten har tilldelats AcrPull rollen.

    Annars kan felet "InaccessibleImage" visas:

    Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
        "code": "InaccessibleImage", 
        "message": "The image 'myacr.azurecr.io/pythonworker:v1' in container group 'acrtestcontainergroup' is not accessible. Please check the image and registry credential." 
      } 
    } 
    

    Lös problemet genom att bevilja AcrPull rollen till den hanterade identiteten. Mer information finns i Bevilja identitetsbehörigheter för åtkomst till andra Azure-resurser.

  2. Kontrollera om ACR har aktiverat betrodda tjänster . Om inte aktiverar du betrodda tjänster.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.