使用python SDK连接到阿里云EDAS时出现错误响应

时间:2018-12-07 14:59:35

标签: python alibaba-cloud

尝试使用SDK访问在阿里云中配置的EDAS应用程序。下面的代码返回错误代码401(“无效用户”)。我已经检查了EDAS设置,它仅是我自己的主要帐户的设置。 感谢是否有人可以分享一些指导。

------代码----------

# -*- coding: utf-8 -*- 
import sys from aliyunsdkcore.client
import AcsClient from aliyunsdkedas.request.v20170801
import QueryApplicationStatusRequest
import uuid from aliyunsdkcore.profile
import region_provider from aliyunsdkcore.http
import method_type as MT from aliyunsdkcore.http
import format_type as FT

try:
  reload(sys)
  sys.setdefaultencoding('utf8')
except NameError:
  pass except Exception as err:
    raise err

REGION = "ap-southeast-1"
PRODUCT_NAME = "Edas"
ENDPOINT = "edas.ap-southeast-1.aliyuncs.com"
ACCESS_KEY_ID = "Primary account key ID"
ACCESS_KEY_SECRET = "Primary account security key"
region_provider.add_endpoint(PRODUCT_NAME, REGION, ENDPOINT)
acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)

def query_application():
  qappreq = QueryApplicationStatusRequest.QueryApplicationStatusRequest()
  qappreq.set_AppId('457290d6-9426-49c8-835c-4133f6a4d268')
  qappresponse = acs_client.do_action_with_exception(qappreq)
  return qappresponse

if __name__ == '__main__':
  print(query_application())

在运行上面的代码时,我得到了这个输出,

{"Code":401}

2 个答案:

答案 0 :(得分:0)

错误响应401表示访问未经授权,因此似乎只是您对应用程序服务器的访问而已。根据EDAS文档:

  

与子帐户使用的访问密钥ID相对应的子帐户   请求没有调用API的权限。要修复它,请使用   主帐户授权子帐户。

在这种情况下,您确定已使用主帐户授权了子帐户吗?

主帐户可以通过创建不同的角色来为其子帐户定义不同的操作权限。

  1. 在EDAS控制台中,在左侧导航窗格中选择“角色”。
  2. 点击右上角的创建角色。
  3. 输入角色名称,从左侧字段中选择权限 并添加到右侧,然后单击“确定”。

错误消息没有太多,只是表明您没有授权,因此请在EDAS控制台中检查帐户和角色,然后再次检查值。

答案 1 :(得分:0)

错误代码Open iOS module in XCode明确表示您无权调用API。

如果您正在使用子帐户来调用API,则请求所使用的访问密钥ID无权调用API。

  

要解决此问题,请使用主帐户授权子帐户。或使用主帐户访问密钥访问EDAS(这不是最佳做法)。