本文为您介绍如何安装并使用Hologres SDK for Python。
在线调试和生成SDK示例
OpenAPI门户提供在线调用云产品API、动态生成SDK示例代码和快速检索接口等功能,可以显著降低使用API的难度。
前提条件
已创建AccessKey,详情请参见创建AccessKey。
已安装Python环境。
授予账号相应权限,详情请参见授予RAM用户权限。
安装Alibaba Cloud SDK for Python
您可以通过pip安装Python SDK,详细说明请参见其他方式和开始使用。
pip install alibabacloud_hologram20220601==1.0.5
请求步骤
导入相关产品的SDK。
from alibabacloud_hologram20220601.client import Client as Hologram20220601Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_hologram20220601 import models as hologram_20220601_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_util.client import Client as UtilClient
设置AccessKey和域名,域名详情请参见Hologres服务区域列表。
说明建议使用环境变量的方式调用用户名和密码,降低密码泄露风险。
config = open_api_models.Config( # 您的AccessKey ID, access_key_id=os.environ['ALIBABA_CLOUD_USER'], # 您的AccessKey Secret, access_key_secret=os.environ['ALIBABA_CLOUD_PASSWORD'] ) # 访问的域名 config.endpoint = 'hologram.cn-hangzhou.aliyuncs.com' client = Client(config)
新建AcsClient。
client = Client(config)
创建Request对象(以查询实例详情GetInstance为例,1.0.3及以上版本无GetInstanceRequest),并设置请求参数。
get_instance_request = GetInstanceRequest()
调用返回结果。
# 1.0.3之前版本 response = client.get_instance('your_instanceId', get_instance_request) print(response) # 1.0.3及以上版本 response = client.get_instance('your_instanceId') print(response)
参考示例
查询实例详情请求示例(适用于1.0.3及以上版本):
# -*- coding: utf-8 -*-
import sys
import os
from typing import List
from alibabacloud_hologram20220601.client import Client as Hologram20220601Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client(
access_key_id: str,
access_key_secret: str,
) -> Hologram20220601Client:
"""
使用AK&SK初始化账号Client
@param access_key_id:
@param access_key_secret:
@return: Client
@throws Exception
"""
config = open_api_models.Config(
# 必填,您的 AccessKey ID,
access_key_id=access_key_id,
# 必填,您的 AccessKey Secret,
access_key_secret=access_key_secret
)
# 访问的域名
config.endpoint = f'hologram.cn-hangzhou.aliyuncs.com'
return Hologram20220601Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
# 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_USER 和 ALIBABA_CLOUD_PASSWORD。
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式。
client = Sample.create_client(os.environ['ALIBABA_CLOUD_USER'],
os.environ['ALIBABA_CLOUD_PASSWORD'])
try:
# 复制代码运行请自行打印 API 的返回值
client.get_instance('instanceId')
except Exception as error:
# 如有需要,请打印 error
print("error: ", error)
@staticmethod
async def main_async(
args: List[str],
) -> None:
# 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_USER 和 ALIBABA_CLOUD_PASSWORD。
# 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例使用环境变量获取 AccessKey 的方式进行调用,仅供参考,建议使用更安全的 STS 方式。
client = Sample.create_client(os.environ['ALIBABA_CLOUD_USER'],
os.environ['ALIBABA_CLOUD_PASSWORD'])
try:
# 复制代码运行请自行打印 API 的返回值
await client.get_instance('instanceId')
except Exception as error:
# 如有需要,请打印 error
print("error: ", error)
if __name__ == '__main__':
Sample.main(sys.argv[1:])
返回结果示例:
{
"RequestId": "1E8EFA1E-xxxx-xxxx-xxxx-xxxx",
"Instance": {
"SuspendReason": "",
"ZoneId": "cn-hangzhou-h",
"InstanceId": "hgpostcn-cn-xxxxxxxxxxxx",
"InstanceChargeType": "PostPaid",
"Memory": 64,
"InstanceOwner": "1239xxxxxxxxxxxx",
"ColdStorage": 0,
"Cpu": 16,
"EnableHiveAccess": false,
"InstanceName": "xxxx",
"ComputeNodeCount": 1,
"Endpoints": [
{
"Type": "Intranet",
"Endpoint": "hgpostcn-cn-xxxxxxxxxxxx-cn-hangzhou-internal.hologres.aliyuncs.com:80",
"Enabled": true
},
{
"Type": "VPCSingleTunnel",
"Endpoint": "hgpostcn-cn-xxxxxxxxxxxx-cn-hangzhou-vpc-st.hologres.aliyuncs.com:80",
"VpcId": "vpc-xxxxxxxxxxxxxxxx",
"VSwitchId": "vsw-xxxxxxxxxxxxxxxx",
"Enabled": true,
"VpcInstanceId": "hgpostcn-cn-xxxxxxxxxxxx-frontend-st"
}
],
"AutoRenewal": false,
"Version": "r1.3.43",
"InstanceStatus": "Running",
"CommodityCode": "hologram_postpay_public_cn",
"CreationTime": "2023-04-12T03:41:59.036Z",
"InstanceType": "Standard",
"Disk": 0,
"Tags": [
{
"Value": "rg-xxxxxxxxxxxx",
"Key": "acs:rm:rgId"
}
]
},
"HttpStatusCode": 200,
"Success": true
}
文档内容是否对您有帮助?