Diagnosticando e Solucionando Problemas da CLI

Este tópico descreve como resolver problemas que você pode encontrar ao instalar o Python ou a CLI, ou ao usar a CLI.

Erros de Instalação

Se você vir um erro semelhante a este ao instalar com o pip:

Could not fetch URL https://pypi.org/simple/oci-cli/: There was a problem confirming the ssl certificate:
            HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/oci-cli/ (Caused by
          SSLError(SSLError(1, '[SSL:
          CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:877)'),)) - skipping

Sua máquina pode não estar conectada à internet externa ou suas definições de rede estão bloqueando o acesso ao pypi. Consulte o administrador de rede para corrigir as definições de rede ou tente executar uma Instalação Off-line ou usar a Imagem de Contêiner.

Erros de Upgrade

Se você estiver vendo um número de versão desatualizado após executar um upgrade da CLI, tente desinstalar a versão anterior da CLI.

Você pode localizar os locais do pacote usando o comando:
oci setup find-installations
Observação

Observe que esse comando não está disponível nas versões 3.4.0 e anteriores da CLI.
Remova os pacotes listados pelo comando acima usando as instruções em Desinstalando a CLI e, em seguida, instale a versão mais recente da CLI do OCI seguindo as instruções para o seu ambiente encontradas no Início Rápido.

Erros de Serviço

Qualquer operação que resulte em um erro de serviço faz com que um erro do tipo "ServiceError" seja retornado pela CLI. Para obter informações sobre erros comuns de serviço retornados pelo Oracle Cloud Infrastructure, consulte Erros de API.

Erro 401 - Não Autenticado

Um erro de serviço com o status 401 e o código NotAuthenticated pode indicar um arquivo de configuração inválido.

Siga as instruções em Preparando o Arquivo de Configuração para preparar e verificar seu arquivo de configuração.

Erros de SSL

Solicitação de Exceção

Uma exceção de solicitação, como a seguinte, pode indicar um arquivo de configuração inválido:
RequestException: HTTPSConnectionPool(host='<some_service_endpoint>', port=443): Max retries exceeded with url: <some_url> (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

Siga as instruções em Preparando o Arquivo de Configuração para preparar e verificar seu arquivo de configuração.

Falha na Verificação da Certificação Usando uma Certificação Local

Uma exceção CERTIFICATE_VERIFY_FAILED pode indicar que a CLI não pode localizar a certificação adicional necessária à sua operação.

Para resolver isso, localize seu arquivo de certificação local:
export CERT_PATH=$(python3 -m certifi)
Isso retornará uma saída semelhante à seguinte:
/usr/local/lib/python3/site-packages/certifi/cacert.pem
Defina uma variável de ambiente para que a CLI possa encontrar sua certificação local. Por exemplo:
export REQUESTS_CA_BUNDLE=${CERT_PATH}

Falha ao Usar uma Certificação em uma Instância de Verificação de Certificação

Uma exceção CERTIFICATE_VERIFY_FAILED pode indicar que a CLI não pode localizar a certificação adicional necessária à sua operação. Em alguns casos, o arquivo de certificação pode já estar provisionado no host.

Para resolver isso, defina o local da sua certificação em uma variável de ambiente a ser usada pela CLI:
export REQUESTS_CA_BUNDLE=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Se o arquivo de certificação não tiver sido provisionado no host, localize seu arquivo de certificação na instância e defina a variável com o caminho correto. Por exemplo:
export REQUESTS_CA_BUNDLE=path_to_cert_bundle_file

Falha ao Verificar a Certificação: Erro do URL

Se a sua máquina estiver executando uma variante do macOS do python 3.6 ou 3.7, e você vir a seguinte mensagem, apesar de definir o caminho de certificação corretamente:
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1051)>
ERROR: Failed to download virtualenv package. Please check that your trusted certificates are up to date and include the certificates necessary to verify github.com
Para resolver isso, localize e execute o arquivo Certificates.command. Seu comando pode ser semelhante ao seguinte:
/Applications/Python 3.7/Install Certificates.command

Execute o instalador da CLI depois que o comando Certificates for executado com sucesso.

Problemas de Permissões do Oracle Linux

No Oracle Linux 7.3, se você encontrar problemas de permissão ao executar o comando pip install, talvez precise usar o comando sudo.

Comando oci Não Encontrado

Se o comando oci não for encontrado, isso poderá ter sido causado por um dos seguintes motivos:

  • O pip instalou o pacote em um ambiente virtual diferente do ativo.
  • Você alternou para outro ambiente virtual ativo após instalar a CLI.

Para determinar onde a CLI está instalada, execute os comandos which pip e which oci.

ERRO: não foi possível localizar o arquivo de configuração em /root/.oci/config

Esse erro pode ocorrer ao executar um comando da CLI, como o seguinte:

oci iam authentication-policy get --compartment-id <tenancy_OCID>
                

Se o arquivo config não for encontrado, use uma das seguintes opções:

Arquivo Wheel Não Consegue Ser Instalado

Se o arquivo wheel não for instalado, verifique se o pip está atualizado. Para atualizar o pip, execute o comando pip install -U pip. Tente instalar o arquivo wheel novamente.

Problemas no Windows

Se o comando oci não for encontrado, verifique se a localização de oci.exe está no seu caminho (por exemplo, o diretório Scripts na sua instalação do Python).

Nenhuma Distribuição Correspondente Foi Encontrada

Erro: No matching distribution found for oci-cli==3.x.x

Esse erro ocorrerá se você estiver tentando instalar a CLI em um ambiente Python 2. O suporte para Python 2 foi descontinuado desde 1 de agosto de 2021.

Para resolver esse problema, atualize o Python para a versão 3.6.5 ou mais recente. Se você precisar do Python 2, qualquer versão da CLI que começar com 2.x.x ainda suportará o Python 2.

Corrupção de Dados Silenciosa Usando o Comando put

Problema: Os usuários que utilizam o comando oci os object put com dados de STDIN podem ter corrupção de dados silenciosa no modo FIPS ou em um ambiente que usa uma versão OpenSSL compatível com FIPS. A CLI informa que a operação de upload foi bem-sucedida, mas não foi feito upload de qualquer dado.

Para minimizar esse problema, atualize a versão da CLI do OCI para 3.4.1 ou mais recente.

Dica

Os usuários que inicialmente configuram o FIPS para a CLI devem seguir as instruções em Usando Bibliotecas Validadas pelo FIPS

Informações de Contato

Se você quiser procurar um problema não listado aqui, contribuir com ideias, relatar um bug, ser notificado sobre atualizações, ou ter perguntas ou feedback, use um dos links a seguir.

Contribuições

Tem uma correção de bug ou uma funcionalidade que gostaria de divulgar? A CLI tem código-fonte aberto e aceita solicitações de extração no GitHub.

Notificações

Para ser notificado quando uma nova versão da CLI for liberada, inscreva-se no feed Atom.

Perguntas ou Feedback

Formas de entrar em contato: