Próbuję pobrać niektóre pliki z S3 do instancji EC2 przy użyciu interfejsu AWS CLI (1.8.7) podczas uruchamiania przy użyciu skryptu danych użytkownika. To wystąpienie ma profil roli i wystąpienia IAM z odpowiednimi uprawnieniami. Czasami CLI kończy się niepowodzeniem z błędem „Nie można zlokalizować poświadczeń”. Zdarza się to często (nie za każdym razem), ale zawsze po osobnym poleceniu S3, które działało. Oto wynik skryptu:
++ date +%r
03:24:10 AM
++ aws s3 cp s3://non-public-bucket-1/15mb-zip-file.zip ./15mb-zip-file.zip
Completed 1 of 1 part(s) with 1 file(s) remaining^Mdownload: s3://non-public-bucket-1/15mb-zip-file.zip to 15mb-zip-file.zip
++ date +%r
03:24:14 AM
++ unzip 15mb-zip-file.zip
# Snip
++ date +%r
03:26:01 AM
++ curl http://169.254.169.254/latest/meta-data/instance-id
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10 100 10 0 0 13831 0 --:--:-- --:--:-- --:--:-- 10000
i-12345678++ date +%r
03:26:01 AM
++ aws s3 cp s3://non-public-bucket-2/my-small-text-file.json ./output.json
download failed: s3://non-public-bucket-2/my-small-text-file.json to output.json Unable to locate credentials
++ date +%r
03:26:34 AM
Masz pojęcie, co może to spowodować?
Edycja: To jest serwer Amazon Linux.
amazon-ec2
amazon-web-services
amazon-s3
aws-cli
cloud-init
Simon Paris
źródło
źródło
Odpowiedzi:
Miałem ten sam problem, nawet skontaktowałem się z pomocą techniczną i nie mogli udzielić odpowiedzi. Eksportowanie referencji do zmiennych środowiskowych nie działa w przypadku
aws s3 ...
poleceń. Musisz albo użyćaws configure
util, albo utworzyć taki~/.aws/config
plik:Proszę odnieść się do dokumentacji AWS pod adresem http://docs.aws.amazon.com/cli/latest/topic/config-vars.html
Nie tylko okazało się, że w ogóle nie działa z eksportami środowiska podczas uruchamiania EC2 za pośrednictwem Danych użytkownika, ale także po uruchomieniu z wiersza polecenia w pełni wdrożonej działającej instancji.
źródło