Я пытаюсь установить переменные среды, необходимые для отправки запросов к AWS через интерфейс командной строки AWS в терминале Ubuntu 18.04, запустив скрипт bash, вместо того, чтобы вручную устанавливать переменные среды с помощью экспорта в оболочке.
Я подтвердил, что используемые мной учетные данные AWS по-прежнему активны, так как они работают, когда я задаю переменные среды из оболочки, а также через файл учетных данных AWS.Поэтому я полагаю, что с передачей значения в переменную окружения должно быть что-то не так.
Я пробовал окружать кавычками, но, поскольку я новичок в этом, не знаю, куда идти дальше.
#!/bin/bash
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
file="/path/to/accessKeys.csv"
cnt=0
export AWS_DEFAULT_REGION=us-east-1
export AWS_DEFAULT_OUTPUT=text
while IFS=, read var1 var2
do
if [ $cnt = 1 ]
then
echo $cnt
export AWS_ACCESS_KEY_ID=$var1
export AWS_SECRET_ACCESS_KEY=$var2
fi
cnt=$(($cnt + 1))
done < $file
, когда я запускаю AWS configure list, я получаюследующий вывод
:~$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************C4JA env
env **********6YS
region us-east-1 env AWS_DEFAULT_REGION
Когда я запускаю env для просмотра переменных среды, AWS_SECRET_ACCESS_KEY кажется правильным, хотя вывод, который я ожидаю из списка конфигурации AWS (вывод, который я получаю, когда я вручную устанавливаю переменную с помощью экспорта в оболочке)
~$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************C4JA env
secret_key ****************j6YS env
region us-east-1 env AWS_DEFAULT_REGION
Вывод из AWS configure list | tr -d '\r'
:~$ aws configure list | tr -d '\r'
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************C4JA env
secret_key ****************6YS env
region us-east-1 env AWS_DEFAULT_REGION
, но это приводит к ошибке SignatureDoesNotMatch.
Буду признателен за любую помощь или указатели по этому вопросу.