Есть ли способ получить доступ к частному объекту .zip S3 с помощью конфигурационного файла .ebextension приложения django, развернутого на elastic beanstalk?

У нас есть приложение django, развернутое на elastic beanstalk, и мы добавили функцию, которая обращается к БД oracle. cx-Oracle требует клиентскую библиотеку Oracle (instant client), и мы хотели бы иметь .zip для библиотеки, доступный как частный объект в нашем ведре S3, публичный объект - не вариант. Мы хотим избежать зависимости от ссылки Oracle с помощью wget. Я пытаюсь разработать .config-файл в каталоге .ebextensions, который будет устанавливать .zip S3 при каждом развертывании. Как можно настроить конфигурацию, чтобы она устанавливалась при развертывании?

os: Amazon Linux AMI 1

Конечно, это обычная практика получения личных файлов из s3. Вам нужно иметь разрешение IAM (на кластере EB) для доступа к вашему ведру s3 и загрузки файлов. Конфиг в .ebextensions может выглядеть примерно так:

 container_commands:
  install:
    command: |
      #!/bin/bash -xe
        aws s3 cp s3:/bucket-name/your-file local-filename

Просто как дружеское предложение, EB - это хорошо для начала, но если ваше приложение пойдет в производство, вы столкнетесь с некоторыми проблемами (например, не сможете заставить некоторые порты не быть открытыми и т.д.) и, возможно, есть лучшие варианты для размещения вашего приложения (ECS, EKS и т.д.)

Вернуться на верх