2015-12-31 7 views
2

Я пытаюсь настроить некоторые пользовательские показатели CloudWatch с помощью mon-put-data из моего экземпляра AWS EC2. Согласно документации, я правильно ее использую.Использование AWS CLI - неправильная ошибка учетных данных

mon-put-data --namespace Layer --metric-name ResponseTime --dimensions "app=AppName" --value 2 

Однако, когда я запускаю его я получаю следующее сообщение об ошибке:

mon-put-data: Malformed input-Bad credentials in file: /user/.aws/credentials [keyId: null | secretKey null]

Формат файла мандатных ниже и автогенерируемого использование aws configure

[default] 
aws_access_key_id = KJHJKHJKHJKHJKHJKHJK 
aws_secret_access_key = KHKJJKHJKHJKHJH123123kjhjkhjk12312 

I также подтверждаем, что путь AWS_CREDENTIAL_FILE существует и является правильным. Кроме того, я подтвердил, что пользователь IAM имеет полный доступ к CloudWatch и EC2.

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

+0

Несколько вещей, чтобы проверить: правильные ли учетные данные? Пробовали ли вы устанавливать переменные окружения 'AWS_ACCESS_KEY_ID' и' AWS_SECRET_ACCESS_KEY' и снова пытались запустить CLI? Он будет читать из среды, прежде чем он попытается прочитать из файлов учетных данных. – birryree

+0

@birryree Спасибо за предложение. Я просто попробовал это. Тот же вопрос. – Yonkee

+0

@Yonkee вы можете проверить, активен ли ключ доступа в IAM? –

ответ

1

Мне удалось заставить его работать с добавлением опций -I и -S. Не совсем идеальны, чтобы учетные данные были встроены, но сейчас это работает.

mon-put-data -I <Key ID> -S <Secret Key> --namespace Layer --metric-name ResponseTime --dimensions "app=AppName" --value 2 

команда Очевидно пн-пут-данные использует верительный файл, который имеет формат, отличный от того, созданного AWS CLI. К сожалению, нет ничего в документации, чтобы определить это, и я не могу найти код для отладки его ,

1

я изначально неправильно ваш вопрос и думал, что вы использовали actual AWS CLI tool, который использует формат INI-стиль, как вы размещены:

[default] 
aws_access_key_id = KJHJKHJKHJKHJKHJKHJK 
aws_secret_access_key = KHKJJKHJKHJKHJH123123kjhjkhjk12312 

Однако при использовании mon-put-data, это не следует какой-либо из конфигурации или опций из CLI.

Для специальных CLI-сервисов (таких как инструменты Cloudwatch) вам необходимо настроить инструмент как подробно on this page.

Вы должны создать файл этого формата:

AWSAccessKeyId=<Write your AWS access ID> 
AWSSecretKey=<Write your AWS secret key> 

Тогда вы должны пройти --aws-credential-file в качестве аргумента, или установить переменные окружения AWS_CREDENTIAL_FILE.

Если вы использовали стандартный универсальный AWS CLI, вы можете сделать то же самое, что и mon-put-data, используя aws.cloudwatch.put-metric-data.

Смежные вопросы