デプロイ完了後にAWS CLIで以下のコマンドを実行してCFのInvalidationを作成するようにします。
aws cloudfront create-invalidation --distribution-id XXXXXXXXXXX --paths '/'
ポリシー
上記のコマンドを実行するサーバーには以下のポリシーをアタッチしたロールを設定しておきます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CFInvalidation",
"Effect": "Allow",
"Action": "cloudfront:CreateInvalidation",
"Resource": [
"arn:aws:cloudfront::<accountID>:distribution/XXXXXXXXXXXX"
]
}
]
}
configファイル
# config/deploy.rb
namespace :cf do
task :invalidation do
execute :aws, :cloudfront, 'create-invalidation', '--distribution-id', fetch(:cf_distribution_id), '--paths', "'/'"
end
end
after 'deploy:finished', 'cf:invalidation'
config/deploy/production.rb
やconfig/deploy/staging.rb
などに以下のようにDISTRIBUTION IDの設定を追記しておきます。
set :cf_distribution_id, 'XXXXXXXXXXXX'