Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Erro de credenciais

Error: connect EHOSTUNREACH 169.254.169.254:80
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1607:16) {
  message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1',
  errno: -113,
  code: 'CredentialsError',
  syscall: 'connect',
  address: '169.254.169.254',
  port: 80,
  time: 2024-10-08T13:41:39.997Z,
  originalError: {
    message: 'Could not load credentials from any providers',
    errno: -113,
    code: 'CredentialsError',
    syscall: 'connect',
    address: '169.254.169.254',
    port: 80,
    time: 2024-10-08T13:41:39.997Z,
    originalError: {
      message: 'EC2 Metadata roleName request returned error',
      errno: -113,
      code: 'EHOSTUNREACH',
      syscall: 'connect',
      address: '169.254.169.254',
      port: 80,
      time: 2024-10-08T13:41:39.997Z,
      originalError: {
        errno: -113,
        code: 'EHOSTUNREACH',
        syscall: 'connect',
        address: '169.254.169.254',
        port: 80,
        message: 'connect EHOSTUNREACH 169.254.169.254:80'
      }
    }
  }
}

Node.js v20.18.0

Estou com este erro de credenciais, porém o curso não aborda este assunto. Eu teria que ter um arquivo .env?

1 resposta
solução!

Olá, Carlos. Tudo bem?

Pelo erro que você está enfrentando, parece que o Node.js não está conseguindo acessar as credenciais da AWS. Isso pode acontecer por alguns motivos, mas vamos tentar resolver isso juntos.

  1. Sobre o arquivo .env: Sim, ter um arquivo .env pode ajudar a gerenciar suas credenciais de forma segura. Nele, você pode definir suas variáveis de ambiente, como AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY. Um exemplo de como seu arquivo .env poderia ser configurado:

    AWS_ACCESS_KEY_ID=your_access_key_id
    AWS_SECRET_ACCESS_KEY=your_secret_access_key
    AWS_REGION=your_region
    

    Certifique-se de que você está carregando essas variáveis no seu código com a biblioteca dotenv. No início do seu script, adicione:

    require('dotenv').config();
    
  2. Configuração do AWS SDK: Se você não está usando um arquivo .env, outra forma é configurar as credenciais diretamente no código, embora isso não seja recomendado para produção. Exemplo:

    const AWS = require('aws-sdk');
    
    AWS.config.update({
      accessKeyId: 'your_access_key_id',
      secretAccessKey: 'your_secret_access_key',
      region: 'your_region'
    });
    
    const sqs = new AWS.SQS();
    
  3. Variáveis de Ambiente: Verifique se as variáveis de ambiente estão definidas corretamente no seu sistema. Você pode fazer isso no terminal:

    export AWS_ACCESS_KEY_ID=your_access_key_id
    export AWS_SECRET_ACCESS_KEY=your_secret_access_key
    export AWS_REGION=your_region
    
  4. IAM Role: Se você está executando isso em uma instância EC2, certifique-se de que a instância tem uma IAM Role associada com as permissões necessárias para acessar o SQS.

  5. AWS CLI: Verifique se o AWS CLI está configurado corretamente no seu sistema, pois o AWS SDK pode tentar usar essas configurações.

Espero ter ajudado.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!