Это инструмент развертывания для загрузки статических веб -сайтов в S3. Если CloudFront используется для размещения веб -сайта, загруженные файлы могут быть автоматически невиновлены в распределении CloudFront. Дерево префикса используется для минимизации количества признаков, поскольку в месяц доступно только ограниченное количество бесплатных ангираций.
Конфигурация хранится в файле YAML, как это:
site : _site
s3_bucket : example.com
cloudfront_distribution_id : XXXXXXXXXXX
cache_rules :
- match : " /assets/* "
maxage : 30 days
- match_regexp : ' ^assets/image-d{3}-.*.png$ '
maxage : 90 days
- match : " /css/* "
maxage : 30 days
- match : " * "
maxage : 1 hour site является каталогом статического веб -сайта относительно местоположения файла конфигурации. Например, Jekyll будет генерировать статический сайт в каталоге _site , как указано выше. Если вы сохраните файл конфигурации как .s3_website.yaml вы можете просто запустить s3-deploy-website из того же каталога:
$ cd jekyll-site/
$ ls .s3_website.yaml
.s3_website.yaml
$ s3-deploy-website Учетные данные AWS могут быть предоставлены через переменные среды AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY .
$ export AWS_ACCESS_KEY_ID=XXXXXX
$ export AWS_SECRET_ACCESS_KEY=XXXXXX
$ s3-deploy-websiteОни также могут быть предоставлены через различные файлы конфигурации, которые считывает Boto.
_site , для сайтов Jekyll).s3:GetObject , s3:PutObject , s3:DeleteObject и s3:ListBucket на ведре и ключи, например, arn:aws:s3:::example.com и arn:aws:s3:::example.com/* .cloudfront:CreateInvalidation .match указывает шаблон, к которому применяется правило. Это использует сопоставление в стиле глобуса (с * и ? ). Сопоставление также может быть выполнено с регулярными выражениями с помощью match_regexp . Будет использоваться только первое правило, соответствующее данному ключу. Ключ maxage указывает время для кэширования файла. Значение должно быть либо количеством секунд, либо строкой, например, 30 days , 5 minutes, 30 seconds и т. Д. Конфигурация в .s3_website.yaml была вдохновлена S3_website, хотя параметры, поддерживаемые S3_Website, немного разные.
Грань