В настоящее время я разворачиваю статические активы приложения PHP, используя s3cmd.
Если ресурс для Amazon S3 изменился (например, скрипт JavaScript), я переименую его вручную, чтобы новая версия синхронизировалась и обслуживалась Amazon Cloudfront.
Существуют ли документированные способы развертывания статических ресурсов приложения PHP в Amazon S3? Я видел, что сайты используют хэш для ссылки на определенную версию своих ресурсов. Мне интересно, как веб-приложение ссылается на этот хеш (например, на git commit SHA?).
Подход, который я видел в работе, — это запись в автономный файл конфигурации, который содержит текущий SHA, и чтение из него для развертывания.
Обновление 1 с текущим процессом
Я хочу сделать развертывание активов более автоматизированным:
app.23.js
в app.24.js
app.24.js
develop
разветвляться в master
master
ветка.Я хотел бы думать, что нет конкретного ответа на этот вопрос, но вот несколько вещей.
Если вы хотите автоматизировать только ручную работу, которую вы выполняете, возможно, стоит взглянуть на несколько инструментов развертывания. Capistrano и Magallanes — это два имени, которые мне приходят в голову, но вы можете зайти в Google, и я уверен, что вы найдете много вариантов.
Платформа Rails была основана на философии, что есть лучший способ сделать что-то. Он также использует хэши для создания версий статических ресурсов и делает все это из коробки на лету. Вы можете посмотреть на реализацию хеширования в вашем случае.
Grunt — еще один инструмент автоматизации, на который вы можете посмотреть. Я нашел этот модуль, который может пригодиться https://github.com/theasta/grunt-assets-versioning
Я бы сказал, что 2,3,4 являются проблемными областями в вашем рабочем процессе. Переименование вручную и обновление кода каждый раз не слишком приятно. Как вы указали, GIT-хэши уникальны, поэтому, возможно, добавьте GIT-хэш к вашим ресурсам во время развертывания и синхронизируйте их с S3 / Cloudfront?
Других решений пока нет …