Я развертываю приложение Windows / .NET MVC на Elastic Beanstalk, и мне удалось справиться с большинством проблем, кроме одной.
Рассматриваемое веб-приложение создает локальный кеш для двоичных активов в подпапке своего текущего местоположения развертывания, и для этого мне нужно добавить разрешения для группы IIS_IUSRS на чтение / запись в эту папку.
После долгих проб и ошибок у меня теперь есть решение, которое, кажется, работает, но я не уверен на 100% в его «законности» ...
В решении MVC я создал папку с именем «.ebextensions» и в ней файл yaml с именем «eb.config».
В этом файле я в основном создаю 2 пакетных файла, которые развертываю в c: \ temp - первый пакетный файл проверяет, есть ли уже копия второго файла в C: \ Program Files \ Amazon \ ElasticBeanstalk \ hooks \ appdeploy \ post, а если нет, копирует его туда.
Второй пакетный файл устанавливает необходимый ACL для этой папки «BinaryData». Elastic Beanstalk выполняет любой командный файл, который находит в папке, упомянутой выше, и, похоже, на данный момент это помогает.
Мне не удалось найти никакой документации о том, как добиться этого «официально», и я узнал об этом трюке из этого Сообщение блога.
Мы будем очень благодарны за любые предложения о том, как добиться этого «более чистым» способом.
На дворе 2019 год, и я до сих пор не смог найти документацию по крючкам платформы Beanstalk, касающуюся приложений .NET. В итоге я сделал что-то похожее на ваше решение.
.ebextensions
папка.container_commands
раздел, запустите команду для копирования сценария из шага 2 в C:\Program Files\Amazon\ElasticBeanstalk\hooks\appdeploy\post\
(или какой угодно крючок). Больше информации ВотКогда Beanstalk развертывает приложение, команда под container_commands
будет запущен после настройки сервера, но до того, как код будет развернут 1. После этого ваш скрипт перехвата должен быть на месте и сработает в соответствии с папкой, в которой он находится.
К сожалению, я не знаю, является ли это официальным способом сделать это для приложений .NET.