Получение стоимости снимка на основе тегов - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь использовать API проводника затрат с помощью boto3. Я пытаюсь получить стоимость снимков EC2. Эти снимки имеют собственные теги, связанные с ними. Я пытаюсь найти стоимость снимков с определенным тегом.

Я написал следующий скрипт:

import boto3
client = boto3.client('ce')
response = client.get_cost_and_usage(
    TimePeriod={
        'Start': '2019-01-20',
        'End': '2019-01-24'
    },
    Metrics=['BLENDED_COST','USAGE_QUANTITY','UNBLENDED_COST'],
    Granularity='MONTHLY',
    Filter={
        'Dimensions': {
                       'Key':'USAGE_TYPE_GROUP',
                       'Values': ['EC2: EBS - Snapshots']
     }
)

Это дает мне стоимость. Но это общая стоимость использования снимка, т. Е. Для всех томов. Есть ли способ фильтрации по тегам на снимке?

Я пытаюсь добавить следующий фильтр:

Filter={
        'And': [{
        'Dimensions': {
                       'Key':'USAGE_TYPE_GROUP',
                       'Values': ['EC2: EBS - Snapshots']
                      }}, #Dimensions end
        {'Tags':{
             'Key': 'test',
             'Values': ['aj']
         } # Tags ed
     } ] }# Filter ends

В одном снимке я добавил этот тег. Я проверил диапазон дат, и снимок был создан в этом диапазоне и все еще доступен. Я также пытался изменить гранулярность на DAILY.

Но это всегда показывает стоимость 0.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Чтобы запросить моментальные снимки или даже другие сервисы, используя теги, вам нужно активировать их в меню биллинга.Перейдите по ссылке, чтобы активировать теги, которые необходимо запросить:

https://console.aws.amazon.com/billing/home?region=us-east-1#/preferences/tags

ПРИМЕЧАНИЕ. Доступ к затратам имеют только основные учетные записи в организации и отдельные учетные записи, которые не являются членами организации.Теги размещения.

Надеюсь, это поможет!

0 голосов
/ 25 января 2019

'Tags' можно добавить в ваш фильтр следующим образом:

response = client.get_cost_and_usage(
    TimePeriod={
        'Start': '2019-01-10',
        'End': '2019-01-15'
    },
    Metrics=['BLENDED_COST','USAGE_QUANTITY','UNBLENDED_COST'],
    Granularity='MONTHLY',
    Filter={
        'Dimensions': {
            'Key':'USAGE_TYPE',
            'Values': ['APN1-EBS:SnapshotUsage']
         },
         'Tags': {
             'Key': 'keyName',
             'Values': [
                 'keyValue',
              ]
         }
     }
)

Точное использование вы можете найти в справочнике API проводника стоимости boto3 .

Вы также можете группировать по тэгам:

Filter={
    'Dimensions': {
        'Key':'USAGE_TYPE',
        'Values': ['APN1-EBS:SnapshotUsage']
     }
 },
 GroupBy=[
    {
        'Type': 'DIMENSION'|'TAG',
        'Key': 'string'
    },
],

Он не будет фильтровать теги, но сгруппирует возвращаемые данные по ключу тега. Это вернет ВСЕ значения тегов, соответствующие ключу тега, поэтому он может быть слишком широким, но вы можете использовать его для устранения любых дополнительных проблем.

Я бы подтвердил, что все значения тегов и ключи совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...