PHPでキャッシュクリア(Invalidation)をしたい場合、下記のプログラムにて、CDN(Distribution)のIDを探します。
——–【PHP】——–
require_once("./sdk.class.php"); $cf = new AmazonCloudFront(); $response = $cf->list_distributions(); var_dump($response);
次に、Distribution ID(XXXXXXXXXXXXXX)に対して、指定したパス(“/index1.txt”, “/index2.txt”)のキャッシュクリア(Invalidation)を下記のプログラムで行います。
——–【PHP】——–
require_once("./sdk.class.php"); $cf = new AmazonCloudFront(); $response = $cf->create_invalidation("XXXXXXXXXXXXXX", time(), array( "/index1.txt", "/index2.txt" )); var_dump($response);
最後にDistribution ID(XXXXXXXXXXXXXX)と上記の実行結果のInvalidation ID(YYYYYYYYYYYYYY)を指定して、キャッシュクリア(Invalidation)の状況を下記のプログラムで確認します。
——–【PHP】——–
require_once("./sdk.class.php"); $cf = new AmazonCloudFront(); $response = $cf->get_invalidation("XXXXXXXXXXXXXX", "YYYYYYYYYYYYYY"); var_dump($response);
そしてIAMユーザーの場合に、これらのプログラムを実行するには、下記アクションを許可するポリシーを与える必要があります。
cloudfront:ListDistributions
cloudfront:CreateInvalidation
cloudfront:GetInvalidation
ポリシーの付与は、以下のようなコマンド(IAM Command Line Toolkit)で実現できます。
# ./iam-groupaddpolicy --aws-credential-file credentials.txt > -a cloudfront:ListDistributions > -e Allow > -g suz-lab > -p policy1 > -r "*" # ./iam-groupaddpolicy --aws-credential-file credentials.txt > -a cloudfront:CreateInvalidation > -e Allow > -g suz-lab > -p policy2 > -r "*" # ./iam-groupaddpolicy --aws-credential-file credentials.txt > -a cloudfront:GetInvalidation > -e Allow > -g suz-lab > -p policy3 > -r "*"