#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 и получил быстрый и полезный ответ от одного из сопровождающих. Похоже, что этот модуль устарел и его следует заменить на другой, разместив этот ответ здесь на случай, если кому-нибудь в будущем понадобится эта информация.