Gestión de las CloudFront invalidaciones de Amazon mediante la CloudFront API y la versión 3 AWS SDK para PHP - AWS SDK para PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Gestión de las CloudFront invalidaciones de Amazon mediante la CloudFront API y la versión 3 AWS SDK para PHP

Amazon almacena en CloudFront caché copias de archivos estáticos y dinámicos en ubicaciones periféricas de todo el mundo. Para eliminar o actualizar un archivo en todas las ubicaciones de borde, cree una invalidación para cada archivo o para un grupo de archivos.

Cada mes, sus primeras 1000 invalidaciones son gratuitas. Para obtener más información sobre cómo eliminar contenido de una ubicación CloudFront perimetral, consulte Invalidar archivos.

Los siguientes ejemplos muestran cómo:

Todo el código de ejemplo para el AWS SDK para PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus AWS credenciales, tal y como se describe enAutenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe las AWS SDK para PHP, tal y como se describe enInstalación de la AWS SDK para PHP versión 3.

Para obtener más información sobre el uso de Amazon CloudFront, consulta la Guía para CloudFront desarrolladores de Amazon.

Creación de una invalidación de una distribución

Crea una invalidación de CloudFront distribución especificando la ubicación de la ruta de los archivos que necesitas eliminar. Este ejemplo invalida todos los archivos de la distribución, pero puede identificar archivos específicos en Items.

Para crear una invalidación CloudFront de distribución, utilice la CreateInvalidationoperación.

Importaciones

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

Código de muestra

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 = '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();

Obtención de una invalidación de una distribución

Para recuperar el estado y los detalles de una invalidación CloudFront de distribución, utilice la GetInvalidationoperación.

Importaciones

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

Código de muestra

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();

Listado de las invalidaciones de una distribución

Para enumerar todas las invalidaciones CloudFront de distribución actuales, utilice la operación. ListInvalidations

Importaciones

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

Código de muestra

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();