Не удалось загрузить учетные данные от любых провайдеров в NodeJS - PullRequest
1 голос
/ 14 мая 2019

Я использую AWSservices, поэтому я использую пакет 'aws-sdk' для nodeJS.Согласно их инструкциям на официальном сайте, они просят создать папку .aws в вашем текущем профиле пользователя и создать там файл учетных данных с секретным ключом и ключом доступа.

Ссылка на документ AWS -

https://aws.amazon.com/developers/getting-started/nodejs/

Я выполняю ту же процедуру в Windows и Ubuntu.В Windows службы AWS работают нормально, но когда я загружаю настройки кода в экземпляр AWS ubuntu, он начинает выдавать следующую ошибку.

{
  "message": "Missing credentials in config",
  "retryable": false,
  "time": "2019-05-13T12:34:45.834Z",
  "code": "CredentialsError",
  "originalError": {
    "message": "Could not load credentials from any providers",
    "retryable": false,
    "time": "2019-05-13T12:34:45.834Z",
    "code": "CredentialsError"
  }
}

Вот код, в который я включаю «aws-sdk» в файл JS.

const AWS = require('aws-sdk');

const {
  saveUserTokens,
  updateMigratedUser
} = require('./databaseOperations');

const AWS_REGION = "us-west-2";
const CLIENT_ID = "5f70t79un9ep945645k5rooqocr4mfg";
const USER_POOL_ID = "us-west-2_xxxxx";

AWS.config.update({ region: AWS_REGION });
const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();

консольный журнал объекта AWS.config -

Config {
  credentials:
   SharedIniFileCredentials {
     expired: false,
     expireTime: null,
     refreshCallbacks: [],
     accessKeyId: 'XXXXXXXXXXXXXXX',
     sessionToken: undefined,
     filename: undefined,
     profile: 'default',
     disableAssumeRole: true,
     preferStaticCredentials: false,
     tokenCodeFn: null,
     httpOptions: null },
  credentialProvider:
   CredentialProviderChain {
     providers:
      [ [Function],
        [Function],
        [Function],
        [Function],
        [Function],
        [Function] ],
     resolveCallbacks: [] },
  region: 'us-west-2',
  logger: null,
  apiVersions: {},
  apiVersion: null,
  endpoint: undefined,
  httpOptions: { timeout: 120000 },
  maxRetries: undefined,
  maxRedirects: 10,
  paramValidation: true,
  sslEnabled: true,
  s3ForcePathStyle: false,
  s3BucketEndpoint: false,
  s3DisableBodySigning: true,
  computeChecksums: true,
  convertResponseTypes: true,
  correctClockSkew: false,
  customUserAgent: null,
  dynamoDbCrc32: true,
  systemClockOffset: 0,
  signatureVersion: null,
  signatureCache: true,
  retryDelayOptions: {},
  useAccelerateEndpoint: false,
  clientSideMonitoring: false,
  endpointDiscoveryEnabled: false,
  endpointCacheSize: 1000,
  hostPrefixEnabled: true }

1 Ответ

0 голосов
/ 15 мая 2019

Проблема решена.Я удалил .aws / учетные данные.Снова создайте их с AWS CLI от имени пользователя root.В этом есть два препятствия.

Первый - я использую pm2 для запуска моего сервера узлов.Он запускает несколько экземпляров сервера как пользователь root, а также с другим профилем пользователя.

Второй может быть связан с доступом пользователя.Все еще не уверен, почему это не чтение учетных данных из файла, который уже присутствует там.Я создал переменные среды также.У меня уже есть два провайдера, но все же он не выбирает ключи от них ....

Ниже приведена ссылка на документацию для всех, кто сталкивается с этой проблемой, связанной с провайдерами.

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration

...