3

DocsИспользуя AWS ebextensions, каков правильный способ передачи массива команд на их документы?

Я пытаюсь передать несколько команд в записи conainter_commands и продолжать получать ошибки. Тем не менее, когда я передаю те же команды, что и отдельные записи, он отлично работает.

работы:

container_commands: 
    01_remove_old_dump: 
    command: 'rm -f /tmp/db.dump' 
    02_get_new_dump: 
    command: 'aws s3 cp s3://bucket/db.dump' 

терпит неудачу с /bin/sh: rm -f /tmp/db.dump: No such file or directory.

container_commands: 
    01_remove_old_dump: 
    command: ('rm -f /tmp/db.dump' 'aws s3 cp s3://bucket/db.dump') 

ответ

5

Ничего, я просто сломал выстраивается с YAML блока и работает:

01_command: 
    command: | 
     if [[ ! $ENVIRONMENT = "PROD" ]] && [[ $RDS_HOSTNAME ]] 
      rm -f /tmp/db.dump 
      aws s3 cp s3://bucket/db.dump 
      pg_restore -H $RDS_HOSTNAME dbname /tmp/db.dump 
      echo "Refreshing database..." 
     else 
      Echo "Environment is ${ENVIRONMENT}. Skipping database refresh..." 
     fi 

ПРИМЕЧАНИЕ: Убрано это, похоже, оно не работает (всегда возвращает t rue):

test: | 
     [[ ! $ENVIRONMENT = "PRODUCTION" ]] && \ 
     [[ $RDS_HOSTNAME ]] && \ 
     echo "Refreshing database..." 
+2

Спасибо! Я настойчиво стучал вперед по стене. Их документы ошибочны. – vcardillo

+1

Обратите внимание, что тестовый синтаксис здесь не работает. Я думал, что это работает, но узнал, что он каждый раз возвращал «правду». Я закончил тем, что завернул мою команду в выражении if, которое проводит один и тот же тест. –

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