2017-07-20 3 views
1

Je cherche à effectuer CloudFront en utilisant le infirmation code suivant:AWS CloudFront createInvalidation

var cloudfront = new AWS.CloudFront({s3BucketEndpoint: <String Bucketname>}); 
     var params = { 
      DistributionId: <String ID>, 
      InvalidationBatch: { 
       CallerReference: 'Cloudfront Invalidation', 
       Paths: { 
        Quantity: 1, 
        Items: [ 
         '/*' 
        ] 
       } 
      } 
     }; 
     cloudfront.createInvalidation(params, function(err, data){ 
      if (err) console.log(err, err.stack); // an error occurred 
      else  console.log(data);   // successful response 
     }); 

Cependant, je reçois pas de réponse dans ma fonction createInvalidation de err ou de données. La documentation pour aws sdk indique que vous devriez obtenir une réponse positive/négative, mais rien n'est retourné et aucune invalidation n'est effectuée.

Répondre

2

Il peut être votre CallerReference, dans le JavaScript aws-sdk docs (docs.aws.amazon.com) il est indiqué qu'il doit identifier de manière unique la demande d'invalidation.

je suis tombé sur cette question en essayant de faire la même chose que vous faites et j'ai pu obtenir le createInvalidation travailler avec le code suivant:

var cloudfront = new AWS.CloudFront(); 

var params = { 
    DistributionId: <String ID>, 
    InvalidationBatch: { 
    CallerReference: Date.now().toString(), 
    Paths: { 
     Quantity: 1, 
     Items: [ 
     '/*' 
     ] 
    } 
    } 
}; 

cloudfront.createInvalidation(params, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log('Data: ' + JSON.stringify(data)); 
}); 

L'utilisation du Date.now().toString() donne une chaîne d'horodatage ce sera unique à quand ce code est exécuté.

Avec le code ci-dessus, je suis une sortie (après à peu le formatage du JSON):

Data: { 
    "Location": "https://cloudfront.amazonaws.com/2017-03-25/distribution/<String ID>/invalidation/<String ID>", 
    "Invalidation": { 
    "Id": "<String ID>", 
    "Status": "InProgress", 
    "CreateTime": "<Timestamp>", 
    "InvalidationBatch": { 
     "Paths": { 
     "Quantity": 1, 
     "Items": [ 
      "/*" 
     ] 
     }, 
     "CallerReference": "<Timestamp>" 
    } 
    } 
}