Запустить сервисный скрипт с помощью AWS CLI? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь настроить экземпляр EC2 с автоматической связью с определенным AWS SQS во время загрузки экземпляра.Для этого я написал сценарий запуска systemd, который будет выполнять сценарий оболочки.

[Unit]
Description=NewUnit

[Service]
ExecStart=/usr/local/bin/startup_script.sh

[Install]
WantedBy=default.target

Этот сценарий оболочки в основном измеряет загрузку процессора экземпляром и отправляет эту информацию в очередь.Критическая часть, которая делает мой план неудачным, - это строка, где я пытаюсь вызвать функцию aws cli 'send-message':

while true; do
CONTENT='{"vmid":{"DataType":"String","StringValue":"'$(getEC2ID)'"},"vmcpu":{"DataType":"Number","StringValue":"'$(getCPU)'"},"vmmemory":{"DataType":"Number","StringValue":"'$(getMemory)'"},"vmdisk":{"DataType":"Number","StringValue":"12345"}}'

aws sqs send-message \
    --queue-url "$QUEUE_URL" \
    --message-body "$CONTENT" \
    --message-group-id "$GROUP_ID" \
    --message-deduplication-id "$(getID)" \
#    --message-attributes "$CONTENT" \ || echo "not yet" >>/usr/local/bin/startup_report.txt
done

Я думаю, проблема в том, что awscli еще не готов, когдаСценарий выполнен.Итак, мой вопрос на данный момент: как я могу использовать systemd для ожидания awscli для выполнения этого сценария оболочки впоследствии?

...