Javascript aws-CloudFront CreateInvalization()方法参数在使用承诺时出错

Javascript aws-CloudFront CreateInvalization()方法参数在使用承诺时出错,javascript,amazon-web-services,typescript,aws-sdk,amazon-cloudfront,Javascript,Amazon Web Services,Typescript,Aws Sdk,Amazon Cloudfront,AWS SDK for JavaScript允许在调用AWS服务类的方法时使用承诺而不是回调。下面是S3的一个示例。(我正在使用TypeScript和无服务器开发框架) 上面的函数工作得非常好,我们将bucket参数作为唯一的参数传递给方法 但是,当我试图通过在AWS CloudFront类上调用createInvalization()方法来执行类似的操作时,它会给出一个错误,指出参数不匹配 下面是我的代码和我得到的错误 const cloudfront = new aws.CloudFront

AWS SDK for JavaScript允许在调用AWS服务类的方法时使用承诺而不是回调。下面是S3的一个示例。(我正在使用TypeScript和无服务器开发框架)

上面的函数工作得非常好,我们将bucket参数作为唯一的参数传递给方法

但是,当我试图通过在AWS CloudFront类上调用createInvalization()方法来执行类似的操作时,它会给出一个错误,指出参数不匹配

下面是我的代码和我得到的错误

const cloudfront = new aws.CloudFront();

async function invalidateFiles() {
      await this.cloudfront.createInvalidation({
        DistributionId: 'xxxxxxxxxxx',
        InvalidationBatch: {
          Paths: {
            Quantity: 1,
            Items: [`test.js`],
          },
        },
      }).promise();
}


有人能帮你解决这个问题吗?

你无法将调用方引用作为参数传递

const cloudfront = new aws.CloudFront();
async function invalidateFiles() {
    await cloudfront.createInvalidation({
        DistributionId: 'xxxxxxxxxxx',
        InvalidationBatch: {
            CallerReference: `SOME-UNIQUE-STRING-${new Date().getTime()}`,
            Paths: {
                Quantity: 1,
                Items: ['test.js'],
            },
        },
    }).promise();
}
const cloudfront = new aws.CloudFront();
async function invalidateFiles() {
    await cloudfront.createInvalidation({
        DistributionId: 'xxxxxxxxxxx',
        InvalidationBatch: {
            CallerReference: `SOME-UNIQUE-STRING-${new Date().getTime()}`,
            Paths: {
                Quantity: 1,
                Items: ['test.js'],
            },
        },
    }).promise();
}