Моя цель - запустить экземпляр так, чтобы при загрузке запускался сценарий запуска для загрузки некоторых файлов конфигурации, хранящихся в AWS S3.Поэтому в скрипте запуска я устанавливаю детали корзины S3, а затем запускаю config.sh
, где aws s3 sync
выполняет фактическую загрузку.Однако команда aws
не работает - она не найдена для выполнения.
Данные пользователя
У меня есть следующие данные пользователя при запуске экземпляра EC2:
#!/bin/bash
# Set command from https://stackoverflow.com/a/34206311/919480
set -e -x
export S3_PREFIX='bucket-name/folder-name'
/home/ubuntu/app/sh/config.sh
CLI AWS был установлен с pip
, как описано в документации .
Наблюдение
Я думаю, сценарий пользовательских данных запускается с root
Идентификатор пользователя.Вот почему в пользовательских данных у меня есть /home/ubuntu/
, потому что $HOME
не перешел в /home/ubuntu/
.Фактически, первая команда в config.sh
- это mkdir /home/ubuntu/csv
, которая создает каталог с владельцем как root
!
Итак, было бы правильно сделать вывод, что пользовательские данные работают под root
userID?
Разрешение
Стоит ли использовать REST API для загрузки?