Ibm cloud 尝试在IBM云函数中运行代码

Ibm cloud 尝试在IBM云函数中运行代码,ibm-cloud,openwhisk,ibm-cloud-functions,Ibm Cloud,Openwhisk,Ibm Cloud Functions,我尝试在IBM函数中运行以下代码以获取计费数据: iam_token = 'Bearer eyJraWQiOiIyMDE3MTAzMC0wM****' def processResourceInstanceUsage(account_id, billMonth): METERING_HOST = "https://metering-reporting.ng.bluemix.net" USAGE_URL = "/v4/accounts/"+account_id + \

我尝试在IBM函数中运行以下代码以获取计费数据:

iam_token = 'Bearer eyJraWQiOiIyMDE3MTAzMC0wM****'
def processResourceInstanceUsage(account_id, billMonth):
    METERING_HOST = "https://metering-reporting.ng.bluemix.net"
    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 response.json()

processResourceInstanceUsage('*****', '11')

由于某种原因,我不断地犯错误。我多次尝试创建iam_令牌。它仍然会给出相同的错误。

在您提供的代码中,应该注意的事情很少

  • 你所过的月份是错误的。它应该是YYYY-MM格式

  • 帐户\u id应该是运行
    ibmcloud target时您的帐户名称旁边的id

  • 对于IAM令牌,运行此命令
    ibmcloud IAM oauth\u令牌
    。如果要使用平台API密钥生成访问令牌,请参阅此。不需要单词承载者,因为这不是授权令牌

完成所有这些之后,创建一个IBMCloud函数(Python3),添加下面的代码,传递account_id和token,并调用操作以查看结果。IBMCloud函数需要一个字典作为输入/参数,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() }
导入系统 导入请求 def主(dict): 计量_主机=”https://metering-reporting.ng.bluemix.net" 帐户\u id=“3D40D89730XXXXXX” billMonth=“2018-10”
iam_token=“or

在您提供的代码中,有几件事需要注意

  • 您传递的月份错误。它应该是YYYY-MM格式

  • 帐户\u id应该是运行
    ibmcloud target时您的帐户名称旁边的id

  • 对于IAM令牌,请运行此命令
    ibmcloud IAM oauth_令牌
    。如果要使用平台API密钥生成访问令牌,请参阅此命令。不需要单词承载,因为这不是授权令牌

完成所有这些之后,创建一个IBMCloud函数(Python3),添加下面的代码,传递account_id和token并调用操作以查看结果

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() }
导入系统 导入请求 def主(dict): 计量_主机=”https://metering-reporting.ng.bluemix.net" 帐户\u id=“3D40D89730XXXXXX” billMonth=“2018-10”
iam_token=“或

代码在独立运行时是否工作?如何创建操作,如何调用它?请添加详细信息您收到的是201响应还是未经授权的错误?该状态代码通常不会与该错误一起出现。您的代码在独立运行时有效吗?如何创建操作,如何调用它?请添加详细信息您收到的是201响应还是未经授权的错误?该状态代码通常不会与该错误一起获取。