Come posso risolvere l'errore “errore nel tirare la configurazione dell'immagine: toomanyrequests” quando utilizzo immagini Docker in AWS CodeBuild?

4 minuti di lettura
0

Voglio risolvere l'errore “errore nel tirare la configurazione dell'immagine: toomanyrequests” che ricevo quando utilizzo immagini Docker in AWS CodeBuild.

Breve descrizione

Se utilizzi immagini Docker in CodeBuild, puoi provare la limitazione quando estrai i layer dal repository pubblico DockerHub.

Per risolvere l'errore che ricevi quando si verifica la limitazione, devi configurare CodeBuild per autenticare i layer pull utilizzando le credenziali del tuo account DockerHub.

Importante: Per completare i seguenti passaggi, devi disporre di un account DockerHub e del nome utente e della password del tuo account.

Risoluzione

Archivia le tue credenziali DockerHub con AWS Secrets Manager

  1. Apri la console di AWS Secrets Manager.

  2. Scegli Memorizza un nuovo segreto.

  3. Nella sezione Seleziona il tipo di segreto, scegli Altro tipo di segreto.

  4. Nella sezione Specificare le coppie chiave/valore da memorizzare in questa sezione segreta, scegli la scheda Chiave/valore segreto.

  5. Nella prima casella di testo, inserisci il nome utente. Nella seconda casella di testo, inserisci il tuo nome utente DockerHub. Quindi, scegli Aggiungi riga.

  6. Nella prima casella di testo della nuova riga, inserisci la password. Nella seconda casella di testo, inserisci la tua password DockerHub. Quindi, scegli Aggiungi riga.

  7. Scegli Avanti.

  8. In Nome segreto, inserisci un nome per il tuo segreto. Ad esempio: dockerhub

  9. Scegli Avanti.

  10. Verificare che sia selezionata l'impostazione predefinita per ** Disabilita rotazione automatica**.

  11. Scegli Avanti.

  12. Scegli Store.

  13. Nella colonna Nome segreto, scegli il tuo segreto.

  14. Nella sezione Dettagli segreti, annota l'Amazon Resource Name (ARN) per Secret ARN.

Nota: Se hai creato un segreto configurato con una chiave di crittografia gestita dal cliente, devi aggiungere le autorizzazioni per l'azione KMS:Decrypt utilizzando la chiave configurata.

Risolvi le limitazioni che si verificano nella fase di PROVISIONING

  1. Apri la console CodeBuild.

  2. Nel riquadro di navigazione, scegli Costruisci, quindi scegli** Costruisci progetti**.

  3. Scegli il tuo progetto di costruzione.

  4. Scegli Modifica, quindi scegli Ambiente.

  5. Scegli Sostituisci immagine.

  6. Per Nuova immagine di ambiente, scegli Immagine personalizzata.

  7. Per Tipo di ambiente, seleziona la tua immagine personalizzata.

  8. Per Registro immagini, scegli Altro registro.

  9. Per l'URL del registro esterno, inserisci il nome della tua immagine Docker.

  10. Per ** Credenziali del registro**, inserisci l'ARN segreto che hai annotato in precedenza.

  11. Scegli Aggiorna ambiente.

Risolvi le limitazioni che si verificano in altre fasi

Importante: Devi concedere ad AWS Identity and Access Management (IAM) le autorizzazioni per il ruolo del servizio CodeBuild per accedere al segreto.

  1. Apri la console CodeBuild.

  2. Nel riquadro di navigazione, scegli Costruisci, quindi scegli Costruisci progetti.

  3. Scegli il tuo progetto di costruzione.

  4. Scegli la scheda Dettagli della costruzione.

  5. Nella sezione ** Ambiente**, per Ruolo servizio, scegli il ruolo di servizio ARN. Si apre la console IAM.

  6. Nella scheda ** Autorizzazioni**, scegli ** Aggiungi politica in linea**.

  7. Scegli la scheda ** JSON**.

  8. Sostituisci il codice dell'editor di testo con la seguente politica IAM:

**Nota:**Sostituisci **YOUR\ _SECRET\ _ARN ** con l'ARN segreto che hai notato in precedenza.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue"
      ],
      "Resource": [
        "YOUR_SECRET_ARN*"
      ]
    }
  ]
}
  1. Scegli Politica di revisione.

  2. In Nome, inserisci un nome per la politica. Ad esempio: ** dockerhub\ _secret\ _access** Nota: Puoi scegliere qualsiasi nome per la polizza. Il nome è solo per riferimento futuro.

  3. Scegli Crea politica.

Configura CodeBuild per recuperare il segreto

  1. Apri la console CodeBuild.

  2. Nel riquadro di navigazione, scegli Costruisci, quindi scegli Costruisci progetti.

  3. Scegli il tuo progetto di costruzione.

  4. Scegli Modifica, quindi scegli Ambiente.

  5. Espandi la sezione Configurazione aggiuntiva.

  6. Per aggiungere variabili di ambiente, nella sezione Variabili di ambiente, per Nome, inserisci DOCKERHUB\ _USERNAME.

  7. In Valore, inserisci il nome del tuo segreto, seguito da**:usename**. Ad esempio: dockerhub:username

  8. Per Tipo, scegli Secrets Manager.

  9. Per aggiungere la variabile di ambiente successiva, scegli Aggiungi variabile di ambiente.

  10. Per Nome, inserisci DOCKERHUB\ _PASSWORD.

  11. In Valore, inserisci il nome del tuo segreto, seguito da :password. Ad esempio: dockerhub:password

  12. Per Tipo, scegli Secrets Manager.

  13. Scegli Aggiorna ambiente.

  14. Modifica il tuo buildspec e aggiungi il seguente comando prima di eseguire qualsiasi altra azione Docker:

echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin

Avvertenza: Questo comando può registrare i dettagli del nome utente e della password di accesso docker nei log di compilazione. Dopo aver risolto l'errore dell'acceleratore, reimposta la password docker.

Ad esempio:

version: 0.2

phases:
  install:
    commands:
      - echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin
  build:
    commands:
      - docker pull docker:dind
AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa