Amazon CloudFront onCloudFront API およびAWSSDK for PHP バージョン 3 - AWSSDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon CloudFront onCloudFront API およびAWSSDK for PHP バージョン 3

Amazon CloudFront は、世界各地にあるエッジロケーションの静的ファイルおよび動的ファイルのコピーをキャッシュします。すべてのエッジロケーションでファイルを削除または更新するには、各ファイルまたはファイルのグループに対して無効化を作成します。

毎月最初の 1,000 件の無効化は無料です。CloudFront エッジロケーションからのコンテンツの削除の詳細については、「」を参照してください。ファイルの無効化

以下の例では、次の方法を示しています。

  • CreateInvalidation を使用してディストリビューションの無効化を作成します。

  • GetInvalidation を使用してディストリビューションの無効化を取得します。

  • ListInvalidations を使用してディストリビューションをリストします。

すべてのサンプルコードはAWSSDK for PHP バージョン 3GitHub で

Credentials

サンプルコードを実行する前に、AWSの認証情報については、」の認証情報AWSSDK for PHP バージョン 3。次にAWSSDK for PHP(の基本的な使用パターンAWSSDK for PHP バージョン 3

Amazon CloudFront の使用の詳細については、「」を参照してください。Amazon CloudFront 開発者ガイド

ディストリビューションの無効化の作成

削除する必要があるファイルのパス位置を指定して CloudFront ディストリビューションの無効化を作成します。この例では、ディストリビューション内のすべてのファイルが無効になりますが、Items で特定のファイルを識別できます。

CloudFront ディストリビューションの無効化を作成するには、CreateInvalidationオペレーション.

インポート

require 'vendor/autoload.php'; use Aws\CloudFront\CloudFrontClient; use Aws\Exception\AwsException;

サンプルコード

function createInvalidation($cloudFrontClient, $distributionId, $callerReference, $paths, $quantity) { try { $result = $cloudFrontClient->createInvalidation([ 'DistributionId' => $distributionId, 'InvalidationBatch' => [ 'CallerReference' => $callerReference, 'Paths' => [ 'Items' => $paths, 'Quantity' => $quantity, ], ] ]); $message = ''; if (isset($result['Location'])) { $message = 'The invalidation location is: ' . $result['Location']; } $message .= ' and the effective URI is ' . $result['@metadata']['effectiveUri'] . '.'; return $message; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function createTheInvalidation() { $distributionId = 'E1WICG14DUW2AP'; // 'E17G7YNEXAMPLE'; $callerReference = 'my-unique-value'; $paths = ['/*']; $quantity = 1; $cloudFrontClient = new Aws\CloudFront\CloudFrontClient([ 'profile' => 'default', 'version' => '2018-06-18', 'region' => 'us-east-1' ]); echo createInvalidation($cloudFrontClient, $distributionId, $callerReference, $paths, $quantity); } // Uncomment the following line to run this code in an AWS account. // createTheInvalidation();

ディストリビューションの無効化の取得

CloudFront ディストリビューションのステータスと詳細を取得するには、GetInvalidationオペレーション.

インポート

require 'vendor/autoload.php'; use Aws\CloudFront\CloudFrontClient; use Aws\Exception\AwsException;

サンプルコード

function getInvalidation($cloudFrontClient, $distributionId, $invalidationId) { try { $result = $cloudFrontClient->getInvalidation([ 'DistributionId' => $distributionId, 'Id' => $invalidationId, ]); $message = ''; if (isset($result['Invalidation']['Status'])) { $message = 'The status for the invalidation with the ID of ' . $result['Invalidation']['Id'] . ' is ' . $result['Invalidation']['Status']; } if (isset($result['@metadata']['effectiveUri'])) { $message .= ', and the effective URI is ' . $result['@metadata']['effectiveUri'] . '.'; } else { $message = 'Error: Could not get information about ' . 'the invalidation. The invalidation\'s status ' . 'was not available.'; } return $message; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function getsAnInvalidation() { $distributionId = 'E1BTGP2EXAMPLE'; $invalidationId = 'I1CDEZZEXAMPLE'; $cloudFrontClient = new Aws\CloudFront\CloudFrontClient([ 'profile' => 'default', 'version' => '2018-06-18', 'region' => 'us-east-1' ]); echo getInvalidation($cloudFrontClient, $distributionId, $invalidationId); } // Uncomment the following line to run this code in an AWS account. // getsAnInvalidation();

ディストリビューションの無効化のリスト表示

現在の CloudFront ディストリビューションのすべての無効化をリストするには、ListInvalidationsオペレーション.

インポート

require 'vendor/autoload.php'; use Aws\CloudFront\CloudFrontClient; use Aws\Exception\AwsException;

サンプルコード

function listInvalidations($cloudFrontClient, $distributionId) { try { $result = $cloudFrontClient->listInvalidations([ 'DistributionId' => $distributionId ]); return $result; } catch (AwsException $e) { exit('Error: ' . $e->getAwsErrorMessage()); } } function listTheInvalidations() { $distributionId = 'E1WICG1EXAMPLE'; $cloudFrontClient = new Aws\CloudFront\CloudFrontClient([ 'profile' => 'default', 'version' => '2018-06-18', 'region' => 'us-east-1' ]); $invalidations = listInvalidations($cloudFrontClient, $distributionId); if (isset($invalidations['InvalidationList'])) { if ($invalidations['InvalidationList']['Quantity'] > 0) { foreach ($invalidations['InvalidationList']['Items'] as $invalidation) { echo 'The invalidation with the ID of ' . $invalidation['Id'] . ' has the status of ' . $invalidation['Status'] . '.' . "\n"; } } else { echo 'Could not find any invalidations for the specified distribution.'; } } else { echo 'Error: Could not get invalidation information. Could not get ' . 'information about the specified distribution.'; } } // Uncomment the following line to run this code in an AWS account. // listTheInvalidations();