Не удается указать оператор `Not` в фильтре cost Explorer

#aws-sdk-js

#aws-sdk-js

Вопрос:

Я пытаюсь использовать aws-sdk-js для запроса данных из Cost Explorer. Все работало нормально, пока я не попытался добавить a Not в свой фильтр и не столкнулся с этой ошибкой —

 TypeError: Cannot redefine property: Not
    at Function.defineProperty (<anonymous>)
    at Object.get Not [as Not] (/Users/yaron/code/cloud-cost-fetcher/node_modules/@aws-sdk/client-cost-explorer-node/model/shapes/_Expression.ts:18:14)
    at JsonBuilder.format (/Users/yaron/code/cloud-cost-fetcher/node_modules/@aws-sdk/json-builder/src/index.ts:62:57)
    at JsonBuilder.format (/Users/yaron/code/cloud-cost-fetcher/node_modules/@aws-sdk/json-builder/src/index.ts:62:37)
    at JsonBuilder.build (/Users/yaron/code/cloud-cost-fetcher/node_modules/@aws-sdk/json-builder/src/index.ts:36:32)
    at JsonRpcSerializer.serialize (/Users/yaron/code/cloud-cost-fetcher/node_modules/@aws-sdk/protocol-json-rpc/src/JsonRpcSerializer.ts:29:33)
    at Object.<anonymous> (/Users/yaron/code/cloud-cost-fetcher/node_modules/@aws-sdk/middleware-serializer/src/index.ts:24:39)
    at step (/Users/yaron/code/cloud-cost-fetcher/node_modules/tslib/tslib.js:141:27)
    at Object.next (/Users/yaron/code/cloud-cost-fetcher/node_modules/tslib/tslib.js:122:57)
    at fulfilled (/Users/yaron/code/cloud-cost-fetcher/node_modules/tslib/tslib.js:112:62)
  

Тот же фильтр отлично работает, когда я использую AWS CLI, поэтому я подозреваю, что это как-то связано с реализацией клиента cost Explorer.

Вот соответствующий из моего кода, который выдает эту ошибку —

 import { GetCostAndUsageCommand } from '@aws-sdk/client-cost-explorer-node/commands/GetCostAndUsageCommand'
import { CostExplorerClient } from '@aws-sdk/client-cost-explorer-node/CostExplorerClient'
import AWS from 'aws-sdk'


  const costExplorer = new CostExplorerClient({
    region: 'us-east-1',
    credentials: new AWS.SharedIniFileCredentials({ profile: billingProfile }),
  })
  const getCostAndUsageCommand = new GetCostAndUsageCommand({
    TimePeriod,
    Granularity: 'MONTHLY',
    GroupBy: [
      {
        Type: 'TAG',
        Key: '<TAG_NAME>',
      },
    ],
    Filter: {
      Not: {
        Dimensions: {
          Key: 'LINKED_ACCOUNT',
          Values: ['<ACCOUNT_NUMBER'],
        },
      },
    },
    Metrics: [metricsType],
  })

  

Я использую следующие модули aws npm —

 "@aws-sdk/client-cost-explorer-node": "^0.1.0-preview.2",
"aws-sdk": "^2.747.0",    
  

Любая помощь будет с благодарностью принята.

Ответ №1:

Я опубликовал ту же проблему в репозитории aws-sdk-js и получил быстрый и полезный ответ от одного из сопровождающих. Похоже, что этот модуль устарел и его следует заменить на другой, разместив этот ответ здесь на случай, если кому-нибудь в будущем понадобится эта информация.