Это инструмент развертывания для загрузки статических веб -сайтов в 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, немного разные.
Грань