Skip to main content

Volcengine SDK for Python

Project description

中文 | English

Volcengine SDK for Python

⚠️ 已知缺陷说明(历史版本)

volcengine-python-sdk 的部分历史版本(4.0.1 ~ 4.0.42,含)中,发现 SDK 内置的重试机制存在缺陷。

当请求过程中出现异常(如网络抖动、接口返回错误等)时,SDK 虽会触发重试逻辑,但由于该缺陷,重试未能实际生效,客户端仍可能直接感知到首次请求异常,导致重试机制无法有效提升请求成功率。

影响范围

  • SDK:volcengine-python-sdk
  • 受影响版本:4.0.1 ~ 4.0.42(含)

影响说明

对于依赖 SDK 内置重试机制来应对瞬时异常或网络不稳定场景的业务:

  • 实际请求可用性可能低于预期
  • 重试相关配置无法发挥应有的保障作用

解决方案与建议

该问题已在 4.0.43 及以上版本中修复。
强烈建议所有用户升级至 volcengine-python-sdk ≥ 4.0.43,以确保请求重试机制在异常场景下能够正常生效。

非兼容升级通知

Volcengine SDK for Python 非兼容升级通知

影响版本:3.0.1 以及后续版本

变更描述:

为了优化SDK包文件目录多长,导致在 Window 系统安装失败的问题。

3.0.1 版本开始,我们对 transitrouter 服务下的部分超长的 API model 文件名称进行了缩减,如果您之前依赖并使用了这些 API model 的完整文件名称,将会导致不兼容,建议您按照如下方式使用 API model:

from volcenginesdktransitrouter import TransitRouterBandwidthPackageForDescribeTransitRouterBandwidthPackagesOutput

var = TransitRouterBandwidthPackageForDescribeTransitRouterBandwidthPackagesOutput()

本次升级影响的云服务和接口:

Service: transitrouter

Version: 2020-04-01

API:

  • DescribeTransitRouterBandwidthPackages
  • DescribeTransitRouterRoutePolicyTables
  • DescribeTransitRouterRoutePolicyEntries
  • DescribeTransitRouterForwardPolicyTables
  • DescribeTransitRouterBandwidthPackagesBilling
  • DescribeTransitRouterDirectConnectGatewayAttachments
  • DescribeTransitRouterRouteTableAssociations
  • DescribeTransitRouterRouteTablePropagations
  • DescribeTransitRouterTrafficQosQueueEntries
  • DescribeTransitRouterTrafficQosQueuePolicies
  • DescribeTransitRouterTrafficQosMarkingEntries
  • DescribeTransitRouterTrafficQosMarkingPolicies

影响版本:2.0.1 以及后续版本

变更描述:

2.0.1 版本开始,发起请求将默认从使用 HTTP 协议变成使用 HTTPS 协议,请升级到新版本的用户注意是否会产生兼容性风险,做好充分测试。如需继续使用 HTTP 协议,请在发起请求时指定 scheme 参数为 http(不推荐):

import volcenginesdkcore

configuration = volcenginesdkcore.Configuration()
configuration.scheme = 'http'

Table of Contents

  • Requirements
  • Install
  • Usage
  • FAQ

Requirements

  • Python版本需要不低于2.7。
  • 由于 Windows 系统有最长路径限制,可能会导致安装失败,请按照以下方式设置:
1. 按下 Win+R ,输入 regedit 打开注册表编辑器。
2. 设置 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 路径下的变量 LongPathsEnabled 为 1 即可。

Install

Install via pip

pip install volcengine-python-sdk

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Configuration Usage

步骤一:启动时初始化,配置 Configuration 全局默认参数

configuration = volcenginesdkcore.Configuration()
configuration.client_side_validation = True  # 客户端是否进行参数校验
configuration.schema = "http"  # https or http
configuration.debug = False  # 是否开启调试
configuration.logger_file = "sdk.log"

volcenginesdkcore.Configuration.set_default(configuration)

步骤二:获取 Client

def get_client(ak, sk, region):
    # 包含默认属性
    configuration = volcenginesdkcore.Configuration()
    configuration.ak = ak
    configuration.sk = sk
    configuration.region = region
    client = volcenginesdkautoscaling.AUTOSCALINGApi(volcenginesdkcore.ApiClient(configuration))
    return client

Endpoint 设置

如果您要自定义SDK的Endpoint,可以按照以下示例代码设置:

configuration = volcenginesdkcore.Configuration()
configuration.host = 'ecs.cn-beijing-autodriving.volcengineapi.com'

火山引擎标准的Endpoint规则说明:

Regional 服务 Global 服务
{service}.{region}.volcengineapi.com
例如:云服务ecs在cn-beijing-autodriving Region域名为: ecs.cn-beijing-autodriving.volcengineapi.com
{service}.volcengineapi.com
例如:访问控制iam为Global服务,域名为:iam.volcengineapi.com

注:

  • Service中存在_符号时,Endpoint时需转为-符号。存在大写字母时需转成小写。

SDK 示例

from __future__ import print_function
import volcenginesdkecs
import volcenginesdkcore
from pprint import pprint
from volcenginesdkcore.rest import ApiException

if __name__ == '__main__':
    configuration = volcenginesdkcore.Configuration()
    configuration.ak = "Your AK"
    configuration.sk = "Your SK"
    configuration.region = "cn-beijing"
    configuration.client_side_validation = True
    # set default configuration
    volcenginesdkcore.Configuration.set_default(configuration)

    # use global default configuration
    api_instance = volcenginesdkecs.ECSApi()
    # use custom configuration
    # api_instance = volcenginesdkecs.ECSApi(volcenginesdkcore.ApiClient(configuration))

    try:
        resp = api_instance.run_instances(
            volcenginesdkecs.RunInstancesRequest(
                instance_name="insname",
                instance_type="ecs.g1.large",
                zone_id="cn-beijing-a",
                network_interfaces=[volcenginesdkecs.NetworkInterfaceForRunInstancesInput(
                    subnet_id="subnet-2d68bh73d858ozfekrm8fj",
                    security_group_ids=["sg-2b3dq7v0ha0w2dx0eg0nhljv"],
                )],
                image_id="image-ybvz29l3da4ox5h0m9",
                volumes=[volcenginesdkecs.VolumeForRunInstancesInput(
                    volume_type="ESSD",
                    size=40,
                )],
                key_pair_name="vtable",
                instance_charge_type="PostPaid"
            ))
        pprint(resp)
    except ApiException as e:
        print("Exception when calling ECSApi->run_instances: %s\n" % e)

更多代码示例请参考:SDK接入文档

FAQ

关于 SDK 使用时碰到的常见问题,请查看 FAQ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ykf_python_sdk-5.0.9.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ykf_python_sdk-5.0.9-py2.py3-none-any.whl (30.2 MB view details)

Uploaded Python 2Python 3

File details

Details for the file ykf_python_sdk-5.0.9.tar.gz.

File metadata

  • Download URL: ykf_python_sdk-5.0.9.tar.gz
  • Upload date:
  • Size: 7.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for ykf_python_sdk-5.0.9.tar.gz
Algorithm Hash digest
SHA256 d0b0203bd8e4071a2228b87a88dd5634620502da8dd3e47ec256543a6cda4285
MD5 e608d3d5f4092149acb1065a955fe57f
BLAKE2b-256 6bbd352398e0989bfdffa5d390f4453f8dc41ad9c0fece80c0546c055368f341

See more details on using hashes here.

File details

Details for the file ykf_python_sdk-5.0.9-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ykf_python_sdk-5.0.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9ced27eb73bd1d992e6e5613bf5cbd6b26e24c715f868d4671f9a5b121b33520
MD5 fe2590623aeddd7b5c28be2895aaff41
BLAKE2b-256 b5edb1fdf9d57543cc66e4e047c255c82fce35fff9a5d1f0b3b481fbccca41c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page