Saiba mais sobre as etapas de solução de problemas que podem ser úteis se você tiver problemas ao gerenciar pacotes do SO no Artifact Registry.
Para informações sobre como resolver problemas com repositórios remotos do Artifact Registry para pacotes do SO, consulte Resolver problemas com repositórios remotos.Problemas de autenticação e permissões
Não é possível se conectar a um repositório para ações como instalar um pacote.
A saída do gerenciador de pacotes inclui um erro 401 ou 403, que indica problemas com autenticação ou permissões.
Exemplos de erros de agendamento de horário:
Err:1 ar+https://us-west1-apt.pkg.dev/projects/my-project my-package Release Error downloading: code 401
E: Failed to fetch https://us-west1-apt.pkg.dev/projects/my-project/dists/quickstart-apt-repo/main/binary-amd64/Packages 403 Forbidden [IP: 74.125.20.82 443] E: Some index files failed to download. They have been ignored, or old ones used instead.
Exemplo de erro do Yum:
/repodata/repomd.xml: [Errno 14] HTTPS Error 403 - Forbidden
Há várias causas possíveis para esses erros. Verifique se a VM atende aos seguintes requisitos:
Verifique se a VM tem uma conta de serviço associada.
VM do Compute Engine
- Acesse a página Instâncias de VM.
Na lista de VMs, clique no nome da sua VM.
Na guia Detalhes, a conta de serviço e os escopos de acesso aparecem em Gerenciamento de APIs e identidades.
Por padrão, as VMs do Compute Engine usam a conta de serviço padrão do Compute Engine e têm um conjunto limitado de escopos de acesso. O endereço de e-mail da conta de serviço padrão está no formato
PROJECT_NUMBER-compute@developer.gserviceaccount.com.Dependendo da configuração da política da organização, a conta de serviço padrão pode receber automaticamente o papel de Editor no projeto. É altamente recomendável desativar a concessão automática de papéis aplicando a restrição da política da organização
iam.automaticIamGrantsForDefaultServiceAccounts. Se você criou a organização após 3 de maio de 2024, essa restrição será aplicada por padrão.Se você desativar a concessão automática de papéis, precisará decidir quais papéis conceder às contas de serviço padrão e, em seguida, conceder esses papéis por conta própria.
Se a conta de serviço padrão já tiver o papel de Editor, recomendamos que você o substitua por papéis menos permissivos.Para modificar com segurança os papéis da conta de serviço, use o Simulador de política para ver o impacto da alteração e, em seguida, conceda e revogue os papéis apropriados.
Para mudar a conta de serviço ou anexar uma conta de serviço a uma VM, consulte Como mudar a conta de serviço e os escopos de acesso de uma instância.
Outra VM
Para outras VMs, é necessário ter uma conta de serviço para agir em nome da VM.
Se você não tiver uma conta de serviço, crie uma.
Conceda o papel de Leitor do Artifact Registry (
roles.artifactregistry.reader) ao criar a conta de serviço para não precisar configurar permissões em uma etapa separada.
Verifique se a conta de serviço da VM tem permissões de leitura para o repositório e o escopo de acesso à API
cloud-platform.VM do Compute Engine
O Artifact Registry recupera automaticamente as credenciais da conta de serviço da VM. Se o repositório estiver em um projeto diferente da VM, conceda o papel de leitor do Artifact Registry à conta de serviço da VM. Verifique também se a VM tem o escopo de acesso
cloud-platform.Para definir o escopo de acesso
cloud-platform,Pare a instância de VM, substituindo
INSTANCEpelo nome da instância.gcloud compute instances stop INSTANCEDefina o escopo de acesso:
gcloud compute instances set-service-account INSTANCE \ --scopes=cloud-platformReinicie a instância de VM.
gcloud compute instances start INSTANCE
Outra VM
Conceda o papel de leitor do Artifact Registry à conta de serviço da VM. Por padrão, as contas de serviço gerenciado pelo usuário têm o escopo de acesso
cloud-platform.Verifique se você seguiu as etapas para preparar a VM e acessar o repositório. Consulte as instruções de preparação do Apt ou do Yum.
Verifique se você configurou corretamente o Apt ou o Yum para acessar o repositório.
Se você estiver se conectando a um repositório do Apt de uma VM do Compute Engine, verifique se o URL do repositório inclui o prefixo
ar+.
Problemas com o auxiliar de credenciais
A seguinte mensagem de erro aparece quando a VM não consegue localizar o auxiliar de credenciais do Apt:
E: Unable to locate package apt-transport-artifact-registry
O erro ocorre quando você tenta instalar o pacote apt-transport-artifact-registry
em uma VM criada com uma imagem que não inclui a chave de assinatura do repositório
Apt.
Para resolver esse problema, faça o seguinte:
Instale a chave de assinatura na VM:
VM do Debian
Instale as chaves de assinatura do repositório Apt usando o seguinte comando:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add -Substitua
LOCATIONpelo local regional ou multirregional do repositório.VM do Ubuntu
Instale as chaves de assinatura do repositório Apt usando o seguinte comando:
curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -Substitua
LOCATIONpelo local regional ou multirregional do repositório.Tente novamente as etapas de preparação da VM.
Problemas com o plug-in de autenticação
A seguinte mensagem de erro aparece quando há um problema com o plug-in de autenticação do Yum ou DNF:
Plugin "artifact-registry" can't be imported
Esse erro pode acontecer por vários motivos. Para resolver o erro, tente executar o plug-in diretamente para confirmar dependências, verificar problemas do Python ou revelar outros possíveis problemas subjacentes.
Para executar o plug-in diretamente, use um dos seguintes comandos:
Para o plug-in Yum:
python /usr/lib/yum-plugins/artifact-registry.pyPara o plug-in DNF:
python3 /usr/lib/pythonVERSION-NUMBER/site-packages/dnf-plugins/artifact-registry.pySubstitua
VERSION-NUMBERpela versão padrão do Python para a distribuição do Linux. Por exemplo, o Enterprise Linux 8 inclui o Python 3.6.Você pode listar os arquivos no pacote de plug-in instalado para verificar o nome do diretório da biblioteca Python.
rpm -ql dnf-plugin-artifact-registry|grep artifact-registry.py
Artefatos enviados recentemente não aparecem
Se o cliente Apt ou Yum não encontrar um pacote que foi enviado ou importado recentemente para o repositório, talvez seja porque o processo de regeneração do índice de pacotes Apt ou Yum ainda não foi concluído.
Para repositórios pequenos, a regeneração do arquivo de índice do Apt ou Yum pode levar vários segundos. Para repositórios maiores, a reindexação pode levar vários minutos ou mais.
Para verificar se um pacote foi adicionado ao repositório, use a Google Cloud CLI para listar os arquivos no pacote. Execute o comando:
gcloud artifacts files list \
--package=PACKAGE \
--project=PROJECT-ID \
--repository=REPOSITORY \
--location=LOCATION
Por exemplo, você pode verificar se o pacote python-gflags chamado
python3-gflags_1.5.1-5_all.deb foi enviado corretamente para o repositório
us-west1-apt.pkg.dev\apt-project\apt-repo com o comando:
gcloud artifacts files list \
--package=python-gflags \
--project=apt-project \
--repository=apt-repo \
--location=us-west1
Se o pacote for enviado com sucesso, o arquivo vai aparecer na saída com um identificador exclusivo no nome, semelhante ao exemplo a seguir:
FILE CREATE_TIME UPDATE_TIME SIZE (MB) OWNER
pool/python3-gflags_1.5.1-5_all_2414c7af6a64c99a5f488aad366d637a.deb 2023-01-12T20:39:53 2023-01-12T20:39:53 0.035 projects/apt-project/locations/us-west1/repositories/apt-repo/packages/python3-gflags/versions/1.5.1-5
Erro de autenticação para alguns pacotes enviados ou importados
Se o tempo para importar ou fazer upload de arquivos exceder o período de validade do token de autenticação, os uploads após esse período vão falhar. Os tokens expiram 60 minutos depois de serem obtidos. Um erro semelhante ao exemplo a seguir aparece na saída do comando de importação se o token expirou.
errors:
- error:
code: 16
message: The request does not have valid authentication credentials.
gcsSource:
uris:
- gs://my-bucket/debs/python/python3-gflags_1.5.1-5_all.deb
Para resolver esse problema:
- Tente fazer upload ou importar apenas o pacote específico para verificar se é possível adicionar o pacote individualmente em vez de em uma importação em lote.
- Se vários pacotes falharem, importe ou faça upload em lotes menores para que a operação não exceda o período de expiração do token.