【问题标题】:Trying to run code in IBM Cloud Functions尝试在 IBM Cloud Functions 中运行代码
【发布时间】:2019-05-18 11:01:39
【问题描述】:

我尝试在 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')

由于某种原因,我不断收到 201 未经授权的错误。我多次尝试创建 iam_token。它仍然给出同样的错误。

【问题讨论】:

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

标签: ibm-cloud openwhisk ibm-cloud-functions


【解决方案1】:

在您提供的代码中应该注意的事项很少。

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

  • account_id 应该是您运行 ibmcloud target

  • 时您的Account 名称旁边的 id
  • 对于 IAM 令牌,运行此命令 ibmcloud iam oauth_tokens。如果您想使用您的平台 API 密钥生成 访问令牌,请参阅此 linkBearer 这个词不是必需的,因为这不是授权令牌。

完成所有这些后,创建一个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-03
    • 2021-04-28
    • 2017-03-24
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2020-08-29
    • 2020-07-28
    相关资源
    最近更新 更多