В коде, который вы указали, нужно позаботиться о нескольких вещах.
Месяц, который вы проходите, неверен.Он должен быть в формате ГГГГ-ММ .
account_id должен быть идентификатором рядом с именем Account , когдавы запускаете ibmcloud target
Для токена IAM выполните эту команду ibmcloud iam oauth_tokens
.Если вы хотите сгенерировать токен доступа , используя ключ API платформы, обратитесь к этой ссылке .Слово Носитель не требуется, поскольку это не токен авторизации.
Как только все это будет на месте, создайте функцию IBM Cloud (Python 3),добавьте приведенный ниже код, передайте account_id и токен и вызовите действие, чтобы увидеть результат.Функция IBM Cloud ожидает словарь в качестве входных данных / параметр и JSON в качестве ответа
import sys
import requests
def main(dict):
METERING_HOST="https://metering-reporting.ng.bluemix.net"
account_id="3d40d89730XXXXXXX"
billMonth="2018-10"
iam_token="<IAM_TOKEN> or <ACCESS_TOKEN>"
USAGE_URL="/v4/accounts/"+account_id+"/resource_instances/usage/"+billMonth+"?_limit=100&_names=true"
url=METERING_HOST+USAGE_URL
headers = {
"Authorization": "{}".format(iam_token),
"Accept": "application/json",
"Content-Type": "application/json"
}
response=requests.get(url, headers=headers)
print ("\n\nResource instance usage for first 100 items")
return { 'message': response.json() }
Это сработало для меня и вернуло JSON с данными выставления счетов по регионам.
Ссылка: https://stackoverflow.com/a/52333233/1432067