def ali_init_request(): request = CommonRequest() request.set_accept_format('json') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_domain('nlp.cn-shanghai.aliyuncs.com') request.set_version('2018-04-08') request.add_query_param('RegionId', "cn-shanghai") request.add_header('Content-Type', 'application/json') return request
def test_roa_stream(self): request = CommonRequest(domain='ft.aliyuncs.com', version='2016-01-02', action_name='TestRoaApi', uri_pattern='/web/cloudapi') request.set_method('POST') request.add_header('HeaderParam', 'headerValue') request.add_query_param('QueryParam', 'queryValue') request.set_content("test_content") body = self.acs_client.do_action_with_exception(request) assert body response = json.loads(body) assert response assert response.get("Params").get("QueryParam") == 'queryValue' assert response.get("Headers").get("HeaderParam") == 'headerValue' assert response.get("Body") == 'test_content'
def test_roa_json(self): request = CommonRequest(domain='ft.aliyuncs.com', version='2016-01-02', action_name='TestRoaApi', uri_pattern='/web/cloudapi') request.set_method('POST') request.add_header('HeaderParam', 'headerValue') request.add_query_param('QueryParam', 'queryValue') dict_data = {'data': 1} request.set_content(json.dumps(dict_data)) request.set_content_type(format_type.APPLICATION_JSON) body = self.acs_client.do_action_with_exception(request) assert body response = json.loads(body) assert response assert response.get("Params").get("QueryParam") == 'queryValue' assert response.get("Headers").get("HeaderParam") == 'headerValue' assert response.get("Headers").get("Content-Type") == 'application/json' assert response.get("Body") == '{"data": 1}'
def test_roa_form_with_setup(self): request = CommonRequest() request.set_domain('ft.aliyuncs.com') request.set_version('2016-01-02') request.set_action_name('TestRoaApi') request.set_uri_pattern('/web/cloudapi') request.set_method('POST') request.add_header('HeaderParam', 'headerValue') request.add_query_param('QueryParam', 'queryValue') request.add_body_params('BodyParam', 'bodyValue') body = self.acs_client.do_action_with_exception(request) assert body response = json.loads(body) assert response assert response.get("Params").get("QueryParam") == 'queryValue' assert response.get("Headers").get("HeaderParam") == 'headerValue' assert response.get("Params").get("BodyParam") == 'bodyValue'
def test_resolve_endpoint(self): region_provider.modify_point('Ft', 'cn-hangzhou', 'ft.aliyuncs.com') request = CommonRequest() request.set_product('Ft') request.set_version('2016-01-02') request.set_action_name('TestRoaApi') request.set_uri_pattern('/web/cloudapi') request.set_method('POST') request.add_header('HeaderParam', 'headerValue') request.add_query_param('QueryParam', 'queryValue') request.add_body_params('BodyParam', 'bodyValue') body = self.acs_client.do_action_with_exception(request) assert body response = json.loads(body) assert response assert response.get("Params").get("QueryParam") == 'queryValue' assert response.get("Headers").get("HeaderParam") == 'headerValue' assert response.get("Params").get("BodyParam") == 'bodyValue'
def test_bug_with_17661113(self): request = CommonRequest() request.set_domain("nlp.cn-shanghai.aliyuncs.com") request.set_uri_pattern("/nlp/api/reviewanalysis/ecommerce") request.set_method(method_type.POST) request.add_header("x-acs-signature-method", "HMAC-SHA1") request.add_header("x-acs-signature-nonce", uuid.uuid4().hex) request.add_header("x-acs-signature-version", "1.0") content = '{"text":"裙子穿着很美哦,上身效果也不错,是纯棉的料子,穿着也很舒服。", ' \ '"cate":"clothing"}' request.set_content_type("application/json;chrset=utf-8") request.set_accept_format("application/json;chrset=utf-8") if sys.version_info[0] == 2: request.set_content(content) else: request.set_content(content.encode('utf-8')) request.set_version('2018-04-08') request.set_action_name("None") # We have 2 possible situations here: NLP purchased or NLP purchased # The test case should be passed in both situations. try: response = self.client.do_action_with_exception(request) self.assertTrue(response) except ServerException as e: self.assertEqual("InvalidApi.NotPurchase", e.error_code) self.assertEqual("Specified api is not purchase", e.get_error_msg())
def list_container_registry_regions(self): """ list the available regions in the alibaba :return: """ try: conn = client.AcsClient( ak=self.access_key, secret=self.secret_key ) request = CommonRequest() request.set_accept_format('json') request.set_domain('cr.cn-hangzhou.aliyuncs.com') request.set_method('GET') request.set_protocol_type('https') request.set_version('2016-06-07') request.set_action_name('DescribeRegions') request.add_header('Content-Type', 'application/json') request.set_uri_pattern('/regions') body = '''{}''' request.set_content(body.encode('utf-8')) regions = conn.do_action_with_exception(request) regions = json.loads(regions) result = regions.get('data').get('regions') region_list = [] # skip regions {'cn-qingdao', 'cn-huhehaote', 'cn-chengdu'} because container service not supported in # these regions for region in result: # if 'wulanchabu' in str(region.get('regionId')) or 'cn-heyuan' in str( # region.get('regionId')) or 'cn-chengdu' in str(region.get('regionId')): # continue region_list.append(str(region.get('regionId'))) return True, region_list except Exception as e: return False, e.message
def create(self): request = CommonRequest() request.set_accept_format('json') request.set_method('POST') request.set_protocol_type('https') # https | http request.set_domain('cs.cn-beijing.aliyuncs.com') request.set_version('2015-12-15') request.add_query_param('RegionId', "cn-beijing") request.add_header('Content-Type', 'application/json') request.set_uri_pattern( '/api/v2/clusters/c970e25147efc4f9e98b4b1b73c9822a7') body = { "count": self.count, "worker_data_disk": self.worker_data_disk, "key_pair": self.key_pair, "worker_instance_types": ["ecs.g5.6xlarge"], "worker_instance_charge_type": "PostPaid", "vswitch_ids": ["vsw-2ze7mbfg62o3dqfv6rbkz"], "tags": [{ "key": self.tag_key, "value": self.tag_value }] } request.set_content(json.dumps(body)) client = AcsClient(self.access_id, self.access_secret, 'cn-beijing') try: response = client.do_action_with_exception(request) print(str(response, encoding='utf-8')) except ServerException as e: print(e) except ClientException as e: print(e)
def test_common_request(self): r = CommonRequest() # accept format self.assertIsNone(r.get_accept_format()) r.set_accept_format('json') self.assertEqual(r.get_accept_format(), "json") # action name self.assertEqual(r.get_action_name(), None) r.set_action_name('new action name') self.assertEqual(r.get_action_name(), "new action name") # body params self.assertDictEqual(r.get_body_params(), {}) r.set_body_params({'key': 'value'}) self.assertDictEqual(r.get_body_params(), {'key': 'value'}) r.add_body_params("key2", "value2") self.assertDictEqual(r.get_body_params(), { 'key': 'value', 'key2': 'value2' }) # content self.assertIsNone(r.get_content()) r.set_content("content") self.assertEqual(r.get_content(), "content") # headers self.assertDictEqual(r.get_headers(), {'x-sdk-invoke-type': 'common'}) r.set_headers({}) self.assertDictEqual(r.get_headers(), {}) r.add_header("key", "value") self.assertDictEqual(r.get_headers(), {"key": "value"}) # location endpoint type self.assertEqual(r.get_location_endpoint_type(), 'openAPI') # no set_location_endpoint_type ?? # location_service_code self.assertEqual(r.get_location_service_code(), None) r.set_location_service_code('new service code') self.assertEqual(r.get_location_service_code(), 'new service code') # method self.assertEqual(r.get_method(), 'GET') r.set_method('POST') self.assertEqual(r.get_method(), 'POST') # product self.assertEqual(r.get_product(), None) r.set_product('new-product') self.assertEqual(r.get_product(), 'new-product') # protocol_type self.assertEqual(r.get_protocol_type(), "http") r.set_protocol_type('https') self.assertEqual(r.get_protocol_type(), "https") # query params self.assertDictEqual(r.get_query_params(), {}) r.set_query_params({'key': 'value'}) self.assertDictEqual(r.get_query_params(), {'key': 'value'}) r.add_query_param("key2", "value2") self.assertDictEqual(r.get_query_params(), { 'key': 'value', "key2": "value2" }) # uri params self.assertEqual(r.get_uri_params(), None) r.set_uri_params({'user': "******"}) self.assertDictEqual(r.get_uri_params(), {'user': '******'}) # uri pattern self.assertEqual(r.get_uri_pattern(), None) r.set_uri_pattern('/users/:userid') self.assertEqual(r.get_uri_pattern(), '/users/:userid') # url # version self.assertEqual(r.get_version(), None) r.set_version('2014-10-18') self.assertEqual(r.get_version(), "2014-10-18") # user-agent self.assertEqual(r.get_headers().get('User-Agent'), None) r.set_user_agent("user-agent") self.assertEqual(r.get_headers().get('User-Agent'), "user-agent") # content-type self.assertEqual(r.get_headers().get('Content-Type'), None) r.set_content_type("application/json") self.assertEqual(r.get_headers().get('Content-Type'), "application/json") # domain self.assertEqual(r.get_domain(), None) r.set_domain("new-domain") self.assertEqual(r.get_domain(), "new-domain") # path_params self.assertEqual(r.get_path_params(), None) r.add_path_param("userid", "jacksontian") r.add_path_param("repo", "snow") self.assertEqual(r.get_path_params(), { "userid": "jacksontian", "repo": "snow" }) r.set_path_params({"userid": "linatian"}) self.assertEqual(r.get_path_params(), {"userid": "linatian"})
# @Author : 李志伟 # @Email : [email protected] import uuid from urllib.parse import urlencode from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest client = AcsClient('LTAI4FcqpUcSu5Ytbt9FTvPg', 'AX38rHYJgtWVwjAxyZjx0oIGXm11nW', 'cn-hangzhou') request = CommonRequest() request.set_domain("automl.cn-hangzhou.aliyuncs.com") request.set_uri_pattern("/api/automl/predict") request.set_version('2019-05-29') request.set_method('POST') request.add_header("x-acs-signature-method", "HMAC-SHA1") request.add_header("x-acs-signature-nonce", uuid.uuid4().hex) request.add_header("x-acs-signature-version", "1.0") request.set_content_type("application/x-www-form-urlencoded") request.set_accept_format("application/json;chrset=utf-8") new_content = { 'ModelId': 1408, 'Content': 'Delegates Urge Cleric to Pull Out of Najaf', 'Version': 'V1' } request.set_content(urlencode(new_content)) response = client.do_action_with_exception(request) print(str(response, encoding='utf-8'))
scale_nodes_list = [] client = AcsClient(setting.ACCESS_ID, setting.ACCESS_SECRET, 'cn-beijing') request = CommonRequest() request.set_accept_format('json') request.set_method('GET') request.set_protocol_type('https') # https | http request.set_domain('cs.cn-beijing.aliyuncs.com') request.set_version('2015-12-15') request.add_query_param('RegionId', "cn-beijing") request.add_query_param('pageSize', "100") request.add_query_param('pageNumber', "1") request.add_header('Content-Type', 'application/json') request.set_uri_pattern('/clusters/c970e25147efc4f9e98b4b1b73c9822a7/nodes') body = '''{}''' request.set_content(json.dumps(body)) try: response = client.do_action_with_exception(request) str_instace_dict = (str(response, encoding='utf-8')) json_instance_dict = json.loads(str_instace_dict) for instance in json_instance_dict['nodes']: # print(instance) if instance['instance_charge_type'] == "PostPaid" and instance[ 'instance_type_family'] == "ecs.g5": if str(datetime.date.today()) in instance['creation_time']:
# -*- coding: utf8 -*- import uuid from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest from aliyunsdkcore.http import method_type import json # 创建AcsClient实例 client = AcsClient('LTAIby5D2cxpu0zG', 'EGjFkYGV1o2Q2gRYwBM7DiryBSB96T', 'cn-shanghai') request = CommonRequest() request.set_domain("nlp.cn-shanghai.aliyuncs.com") # 必须设置domain request.set_uri_pattern("/nlp/api/textstructure/ecommerce") #设置所要请求的API路径 request.set_method(method_type.POST) # 设置请求方式,目前只支持POST request.add_header("x-acs-signature-method", "HMAC-SHA1") # 设置签名方法 request.add_header("x-acs-signature-nonce", uuid.uuid4().hex) # 设置请求唯一码,防止网络重放攻击, 每个请求必须不同 request.add_header("x-acs-signature-version", "1.0") # 设置签名版本 def tag(text): content = json.dumps({"text": text, "tag_flag": "true"}) request.set_content_type("application/json;chrset=utf-8") # 设置请求格式 request.set_accept_format("application/json;chrset=utf-8") # 设置响应格式 request.set_content(content.encode('utf-8')) # 设置请求内容 request.set_version('2018-04-08') # 设置版本 request.set_action_name("None") response = client.do_action_with_exception(request) return json.loads(response)