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 for 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:
-
Cree una invalidación de distribución mediante. CreateInvalidation
-
Obtenga una invalidación de distribución utilizando. GetInvalidation
-
Enumere las distribuciones utilizando. ListInvalidations
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credenciales. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
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();