使用Azure Resource Manager REST API

时间:2016-02-18 11:52:42

标签: python python-2.7 rest azure azure-resource-manager

我正在尝试使用Azure ARM REST API。考虑创建资源组的示例,这是azure文档中提到的API

https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-group-name}?api-version={api-version}

我的代码:

import httplib, urllib, base64

headers = {
    # Request headers
    'Content-Type': 'application/json',
    'Ocp-Apim-Subscription-Key': 'xxxxxx',
    'Authorization': 'xxxxx',
    'Identifier' : 'xxxxx'
}

params = urllib.urlencode({
"location":"Central US"
})

try:
    conn = httplib.HTTPSConnection('xxxx.azure-api.net')
    conn.request("PUT", "/resourcegroups/resourcename?api-version=2015-01-01%s" % params, "{body}", headers)
    response = conn.getresponse()
    data = response.read()
    print(response.status)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

我收到404错误。能帮我找出错误的地方吗?谢谢。

2 个答案:

答案 0 :(得分:0)

根据我的理解,我认为您的代码中存在一些错误,如下所示。

  1. 根据the package httplib API reference,REST API网址应分为hostpath& query string(或params)作为函数httplib.HTTPSConnection&的参数conn.request,正如@miracledev的评论所说。因此,未找到404响应状态。
  2. [{3}}&的conn.request功能headers的HTTP请求也缺失了。将Authorization作为map.fitBounds的{​​{1}}标题内容来自Common parameters and headers。{/ li>

    location required header

    希望它有所帮助。最诚挚的问候。

答案 1 :(得分:0)

我认为最好使用msrest库而不是普通的http,因为它将为您完成大部分工作。例如,它将获取适当的访问令牌。 它还可以正确处理轮询。

我在这里有一些自动生成的Python REST示例:

https://github.com/zikalino/azure-python-examples