AWS SDK для JavaScript позволяет использовать обещания вместо обратных вызовов при вызове методов классов обслуживания AWS. Ниже приведен пример для S3. (Я использую TypeScript вместе с Serverless Framework для разработки)
const s3 = new S3({ apiVersion: '2006-03-01' });
async function putFiles () {
await s3.putObject({
Bucket: 'my-bucket',
Key: `test.js`,
Body: Buffer.from(file, 'binary') // assume that the file variable was defined above.
}).promise();
}
Вышеприведенная функция прекрасно работает, когда мы передаем параметры сегмента в качестве единственного аргумента метода.
Но когда я пытаюсь выполнить аналогичную операцию, вызывая метод createInvalidation () класса AWS CloudFront, я получаю сообщение об ошибке, указывающее, что аргументы не совпадают.
Ниже приведен мой код и полученная ошибка.
const cloudfront = new aws.CloudFront();
async function invalidateFiles() {
await this.cloudfront.createInvalidation({
DistributionId: 'xxxxxxxxxxx',
InvalidationBatch: {
Paths: {
Quantity: 1,
Items: [`test.js`],
},
},
}).promise();
}
Может кто-нибудь помочь с этим вопросом, пожалуйста?