### Configuration Usage: Get the Client Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.EN.MD Example of obtaining an SDK client instance with specific credentials and region. ```python 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 ``` -------------------------------- ### Run Instances Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.EN.MD Example of how to run ECS instances using the Volcengine Python SDK. ```python 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 volcenginesdkcore.Configuration.set_default(configuration) api_instance = volcenginesdkecs.ECSApi() 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) ``` -------------------------------- ### Run Instances Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.md This example demonstrates how to use the Volcengine Python SDK to run ECS instances. ```python 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) ``` -------------------------------- ### Endpoint Configuration: Custom Endpoint Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.EN.MD Example demonstrating how to customize the SDK's endpoint. ```python configuration = volcenginesdkcore.Configuration() configuration.host = 'ecs.cn-beijing-autodriving.volcengineapi.com' ``` -------------------------------- ### STS AssumeRoleWithSaml Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Demonstrates how to obtain temporary credentials using a SAML assertion with the StsSamlCredentialProvider. It shows how to configure role and SAML provider TRN resolution, and includes an example of creating a VPC after obtaining credentials. ```python from __future__ import print_function import volcenginesdkcore import volcenginesdkvpc from volcenginesdkcore.rest import ApiException from volcenginesdkcore.auth.providers.sts_saml_provider import StsSamlCredentialProvider if __name__ == '__main__': configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = StsSamlCredentialProvider( role_name="Your role name", account_id="Your account id", # Alternatively, pass the full role_trn directly (overrides role_name + account_id): # role_trn="trn:iam::2110400000:role/role123", provider_name="your provider name", # Alternatively, pass the full saml_provider_trn directly (overrides account_id + provider_name): # saml_provider_trn="trn:iam::2110400000:saml-provider/provider123", saml_resp="your saml resp", duration_seconds=3600, scheme="https", host="sts.volcengineapi.com", region="cn-beijing", timeout=30, expired_buffer_seconds=60, policy='{"Statement":[{"Effect":"Allow","Action":["vpc:CreateVpc"],"Resource":["*"],"Condition":{"StringEquals":{"volc:RequestedRegion":["cn-beijing"]}}}]}', max_retries=3, # optional, HTTP retry attempts (min 1), defaults to 3 retry_interval=1, # optional, seconds between retries, defaults to 1 ) volcenginesdkcore.Configuration.set_default(configuration) api_instance = volcenginesdkvpc.VPCApi() create_vpc_request = volcenginesdkvpc.CreateVpcRequest( cidr_block="192.168.0.0/16", dns_servers=["10.0.0.1", "10.1.1.2"], ) try: api_instance.create_vpc(create_vpc_request) except ApiException: pass ``` -------------------------------- ### Breaking Change Example: TransitRouter Service Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.EN.MD Example demonstrating how to use the shortened model name for TransitRouter service APIs after version 3.0.1. ```python from volcenginesdktransitrouter import TransitRouterBandwidthPackageForDescribeTransitRouterBandwidthPackagesOutput var = TransitRouterBandwidthPackageForDescribeTransitRouterBandwidthPackagesOutput() ``` -------------------------------- ### Configuration Usage: Initialize and Configure Global Defaults Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.EN.MD Example of initializing and configuring global default settings for the SDK. ```python configuration = volcenginesdkcore.Configuration() configuration.client_side_validation = True # enable client-side validation configuration.schema = "http" # https or http configuration.debug = False configuration.logger_file = "sdk.log" volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### AK/SK Credentials Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Example demonstrating how to configure and use AK/SK credentials globally and per-request using RuntimeOption. ```python import volcenginesdkcore, volcenginesdkecs from volcenginesdkcore.rest import ApiException from volcenginesdkcore.interceptor import RuntimeOption # Global configuration configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.debug = True volcenginesdkcore.Configuration.set_default(configuration) # Per-request runtime options (override global configuration) runtime_options = RuntimeOption( ak="Your ak", sk="Your sk", client_side_validation=True, ) api_instance = volcenginesdkecs.ECSApi() create_command_request = volcenginesdkecs.CreateCommandRequest( command_content="ls -l", description="Your command description", name="Your command name", type="command", _configuration=runtime_options, ) try: api_instance.create_command(create_command_request) except ApiException: pass ``` -------------------------------- ### Breaking Change Example: HTTP to HTTPS Default Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/README.EN.MD Example showing how to explicitly set the scheme to 'http' if needed, as the default changed from HTTP to HTTPS in version 2.0.1. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.scheme = 'http' ``` -------------------------------- ### Get RunInstances Method Signature Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.EN.md Illustrates how to retrieve the request and response types for a specific SDK method, `ecs.run_instances`. ```python def run_instances(self, body, **kwargs): # noqa: E501 """run_instances :param RunInstancesRequest body: (required) :return: RunInstancesResponse """ ``` -------------------------------- ### Configure HTTP(S) Proxy Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/3-Transport.md Example of configuring HTTP and HTTPS proxy settings for the SDK. ```python import volcenginesdkcore, volcenginesdkecs configuration = volcenginesdkcore.Configuration() configuration.ak = "Your AK" configuration.sk = "Your SK" configuration.http_proxy = "http://your_proxy:8080" configuration.https_proxy = "http://your_proxy:8080" volcenginesdkcore.Configuration.set_default(configuration) api_instance = volcenginesdkecs.ECSApi() ``` -------------------------------- ### CLI Config Credential Provider Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Demonstrates how to use the CLIConfigCredentialProvider to read credentials from the `~/.volcengine/config.json` file, with options to specify a custom config path and profile name. ```python import os import volcenginesdkcore from volcenginesdkcore.auth.providers.cli_config_provider import CLIConfigCredentialProvider configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = CLIConfigCredentialProvider( profile_name="prod", config_path=os.path.expanduser("~/.volcengine/config.json"), ) volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### STS Token Credentials Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Example demonstrating how to configure and use STS token credentials globally and per-request using RuntimeOption. ```python import volcenginesdkcore, volcenginesdkecs from volcenginesdkcore.rest import ApiException from volcenginesdkcore.interceptor import RuntimeOption # Global configuration configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.session_token = "Your session token" configuration.debug = True volcenginesdkcore.Configuration.set_default(configuration) # Per-request runtime options runtime_options = RuntimeOption( ak="Your ak", sk="Your sk", session_token="Your session token", client_side_validation=True, ) api_instance = volcenginesdkecs.ECSApi() create_command_request = volcenginesdkecs.CreateCommandRequest( command_content="ls -l", description="Your command description", name="Your command name", type="command", _configuration=runtime_options, ) try: api_instance.create_command(create_command_request) except ApiException: pass ``` -------------------------------- ### Environment Variable Credential Provider Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Shows how to use the EnvironmentVariableCredentialProvider to read credentials (Access Key, Secret Key, and optional Session Token) from environment variables. ```python import os import volcenginesdkcore from volcenginesdkcore.auth.providers.env_provider import EnvironmentVariableCredentialProvider os.environ["VOLCENGINE_ACCESS_KEY"] = "YourAK" os.environ["VOLCENGINE_SECRET_KEY"] = "YourSK" configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = EnvironmentVariableCredentialProvider() volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### HTTPS Request Configuration - Specify Scheme Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/3-Transport.md Example demonstrating how to specify the scheme (http or https) for requests, with support for both global configuration and API-level runtime options. ```python import volcenginesdkcore, volcenginesdkecs from volcenginesdkcore.rest import ApiException from volcenginesdkcore.interceptor import RuntimeOption # Global configuration configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.scheme = "http" # Specify scheme volcenginesdkcore.Configuration.set_default(configuration) # API-level runtime parameter settings, overrides global configuration untime_options = RuntimeOption( scheme="http", client_side_validation=True, # Enable client-side validation, enabled by default ) api_instance = volcenginesdkecs.ECSApi() create_command_request = volcenginesdkecs.CreateCommandRequest( command_content="ls -l", description="Your command description", name="Your command name", type="command", _configuration=runtime_options, # Set runtime parameters ) try: api_instance.create_command(create_command_request) except ApiException as e: pass ``` -------------------------------- ### STS AssumeRoleWithOidc - Backward-compatible example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Obtains temporary credentials via an OIDC token using backward-compatible mode. ```python from __future__ import print_function import volcenginesdkcore import volcenginesdkvpc from volcenginesdkcore.rest import ApiException from volcenginesdkcore.auth.providers.sts_oidc_provider import StsOidcCredentialProvider if __name__ == '__main__': configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = StsOidcCredentialProvider( role_name="Your role name", account_id="Your account id", # Alternatively, pass the full role_trn directly (overrides role_name + account_id): # role_trn="trn:iam::2110400000:role/role123", oidc_token="your oidc token", duration_seconds=3600, scheme="https", host="sts.volcengineapi.com", region="cn-beijing", timeout=30, expired_buffer_seconds=60, policy='{"Statement":[{"Effect":"Allow","Action":["vpc:CreateVpc"],"Resource":["*"],"Condition":{"StringEquals":{"volc:RequestedRegion":["cn-beijing"]}}}]}', max_retries=3, # optional, HTTP retry attempts (min 1), defaults to 3 retry_interval=1, # optional, seconds between retries, defaults to 1 ) volcenginesdkcore.Configuration.set_default(configuration) api_instance = volcenginesdkvpc.VPCApi() create_vpc_request = volcenginesdkvpc.CreateVpcRequest( cidr_block="192.168.0.0/16", dns_servers=["10.0.0.1", "10.1.1.2"], ) try: api_instance.create_vpc(create_vpc_request) except ApiException: pass ``` -------------------------------- ### STS AssumeRoleWithOidc - Env-aware example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Obtains temporary credentials via an OIDC token using environment variables. ```python import os import volcenginesdkcore from volcenginesdkcore.auth.providers.sts_oidc_provider import StsOidcCredentialProvider os.environ["VOLCENGINE_OIDC_ROLE_TRN"] = "trn:iam::1234567890:role/oidc-role" os.environ["VOLCENGINE_OIDC_TOKEN_FILE"] = "/var/run/secrets/oidc/token" configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = StsOidcCredentialProvider() volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### HTTP Connection Pool Configuration Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/3-Transport.md Example of configuring the HTTP connection pool settings, including the maximum number of hosts and maximum connections per host. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.num_pools = 10 # Maximum number of hosts configuration.connection_pool_maxsize = 10 # Maximum connections per host volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Default Credential Provider Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md This code snippet shows how to explicitly configure the DefaultCredentialProvider. This provider is used automatically when no other credential configurations are set and follows a specific chain order for finding credentials. ```python import volcenginesdkcore from volcenginesdkcore.auth.providers.default_provider import DefaultCredentialProvider configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = DefaultCredentialProvider() volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### HTTPS Request Configuration - Ignore SSL Verification Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/3-Transport.md Example of how to disable SSL certificate verification for HTTPS requests. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.verify_ssl = False # Ignore SSL verification volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### ECS Role Credential Provider Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md This code snippet demonstrates how to configure the EcsRoleCredentialProvider to read temporary credentials from ECS IMDS. It shows setting the region and explicitly providing the role name. ```python import volcenginesdkcore from volcenginesdkcore.auth.providers.ecs_role_provider import EcsRoleCredentialProvider configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = EcsRoleCredentialProvider(role_name="your-ecs-role-name") volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Error Handling Example Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/6-ErrorHandling.md This Python code demonstrates how to catch and handle various types of exceptions that may occur during API calls, including network errors, client-side validation errors, server-side business logic errors, and other general exceptions. It uses specific exception types from `urllib3`, `socket`, `volcenginesdkcore.rest.ApiException`, `ValueError`, and a general `Exception` catch-all. ```python import json import socket import urllib3 import volcenginesdkcore, volcenginesdkecs from volcenginesdkcore.rest import ApiException configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" volcenginesdkcore.Configuration.set_default(configuration) api_instance = volcenginesdkecs.ECSApi() create_command_request = volcenginesdkecs.CreateCommandRequest( command_content="ls -l", description="Your command description", name="Your command name", type="command", ) network_error_exceptions = ( urllib3.exceptions.NewConnectionError, urllib3.exceptions.ConnectTimeoutError, urllib3.exceptions.ReadTimeoutError, urllib3.exceptions.ProtocolError, socket.timeout, socket.gaierror, ) try: api_instance.create_command(create_command_request) except network_error_exceptions as e: print("1. Network/timeout error:{}".format(e)) except ValueError as e: print("2. Client error (parameter validation error):{}".format(e)) except ApiException as e: if e.status == 0: print("2. Client error (SSL authentication error):{}".format(e.reason)) else: print("3. Server error:") if e.body is not None: response_meta_data = json.loads(e.body).get("ResponseMetadata") print("RequestId:{}".format(response_meta_data.get("RequestId"))) print("Error Code: {}".format(response_meta_data.get("Error").get("Code"))) print("Error Message: {}".format(response_meta_data.get("Error").get("Message"))) except Exception as e: print("4. Other error:%s" % e) ``` -------------------------------- ### Set Default SDK Configuration Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.EN.md Initializes and sets a default configuration for the Volcengine SDK. This is recommended to avoid memory leaks caused by repeated logger handler creation. ```python configuration = volcenginesdkcore.Configuration() configuration.client_side_validation = False configuration.schema = "http" # https or http configuration.debug = False # Whether to enable debugging volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Initialize and Set Default Configuration Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.md To prevent memory leaks caused by repeatedly creating logger handlers, initialize `Configuration._default` once. Use `Configuration.set_default` to assign a configuration instance. ```python configuration = volcenginesdkcore.Configuration() configuration.client_side_validation = False configuration.schema = "http" # https or http configuration.debug = False # 是否开启调试 volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Setting Timeouts Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/4-Timeout.md Demonstrates how to set custom connect and read timeouts for the Volcengine Python SDK, both globally using `volcenginesdkcore.Configuration.set_default` and per-request using `RuntimeOption`. ```python import volcenginesdkcore from volcenginesdkcore.interceptor import RuntimeOption configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.connect_timeout = 10 configuration.read_timeout = 10 volcenginesdkcore.Configuration.set_default(configuration) runtime_options = RuntimeOption( connect_timeout=10, read_timeout=20, client_side_validation=True, ) ``` -------------------------------- ### Log Output Configuration Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/7-Debugging.md This code shows how to configure the log file path and format for SDK logs. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.ak = "Your AK" configuration.sk = "Your SK" configuration.logger_file = "app.log" # specify log file path configuration.logger_format = "% (asctime)s %(levelname)s %(message)s" # specify log format volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Configure Endpoint Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/2-Endpoint.md This code snippet demonstrates how to configure the endpoint for the Volcengine Python SDK, including setting AK, SK, endpoint provider, dual-stack, and region. ```python import volcenginesdkcore from volcenginesdkcore.endpoint.providers.standard_provider import StandardEndpointResolver configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.endpoint_provider = StandardEndpointResolver() # Configure standard resolution configuration.use_dual_stack = True # Configure dual-stack configuration.region = "cn-beijing" # Configure region volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Define RunInstancesRequest Body Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.EN.md Constructs a request body for the `run_instances` method, specifying instance details like image ID, network interfaces, and volumes. ```python volcenginesdkecs.RunInstancesRequest( instance_name="insname", 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" ) ``` -------------------------------- ### Windows Setx Commands Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/EnvironmentVariables.md Setting system-level environment variables on Windows using the command line. ```cmd setx VOLCENGINE_ACCESS_KEY your-ak /M setx VOLCENGINE_SECRET_KEY your-sk /M setx VOLCENGINE_SESSION_TOKEN your-session-token /M ``` -------------------------------- ### Enable Debug Mode Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/7-Debugging.md This code snippet shows how to enable debug mode by setting `configuration.debug` to `True`. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.ak = "Your AK" configuration.sk = "Your SK" configuration.debug = True # enable debug mode volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Retry Code Configuration Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/5-Retry.md This code snippet demonstrates how to configure retry settings for the Volcengine Python SDK, including enabling auto-retry, setting the maximum number of retries, defining minimum and maximum retry delays, and specifying custom retry error codes. ```python import volcenginesdkcore from volcenginesdkcore.retryer.backoff_strategy import ExponentialWithRandomJitterBackoffStrategy from volcenginesdkcore.retryer.retry_condition import DefaultRetryCondition configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.auto_retry = True configuration.num_max_retries = 4 configuration.min_retry_delay_ms = 200 configuration.max_retry_delay_ms = 6000 configuration.backoff_strategy = ExponentialWithRandomJitterBackoffStrategy() configuration.retry_condition = DefaultRetryCondition() configuration.retry_error_codes = {"AccessDenied"} volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Custom Backoff Strategies - Implementing a new strategy Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/5-Retry.md This code snippet illustrates how to implement a custom backoff strategy by inheriting from `BackoffStrategy` and overriding the `compute_delay` method. ```python from volcenginesdkcore.retryer.backoff_strategy import BackoffStrategy class CustomBackoffStrategy(BackoffStrategy): def compute_delay(self, retry_count): min_retry_delay = self.min_retry_delay max_retry_delay = self.max_retry_delay return 0.0 ``` -------------------------------- ### Custom Endpoint Initialization Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/2-Endpoint.md Specifies a custom endpoint when initializing the client by setting the 'host' attribute in the Configuration object. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.host = "..volcengineapi.com" # Custom Endpoint volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Automatic Endpoint Resolution with DualStack and Custom Regions Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/2-Endpoint.md Enables dual-stack network (IPv4 + IPv6) access and configures custom auto-resolution regions. ```python import volcenginesdkcore configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.use_dual_stack = True # Enable dual-stack network (IPv4 + IPv6) access, default is False configuration.custom_bootstrap_region = { "custom_example_region1": {}, "custom_example_region2": {}, } # Custom auto-resolution region list volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Custom RegionId and RuntimeOption Settings Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/2-Endpoint.md Demonstrates setting a custom RegionId globally via the Configuration object and overriding it at the API level using RuntimeOption for specific API calls. It also shows enabling client-side validation. ```python import volcenginesdkcore, volcenginesdkecs from volcenginesdkcore.rest import ApiException from volcenginesdkcore.interceptor import RuntimeOption configuration = volcenginesdkcore.Configuration() configuration.ak = "Your ak" configuration.sk = "Your sk" configuration.region = "cn-beijing" # Custom RegionId volcenginesdkcore.Configuration.set_default(configuration) # API-level runtime parameter settings, overrides global configuration runtime_options = RuntimeOption( region="cn-beijing", client_side_validation=True, # Enable client-side validation, enabled by default ) api_instance = volcenginesdkecs.ECSApi() create_command_request = volcenginesdkecs.CreateCommandRequest( command_content="ls -l", description="Your command description", name="Your command name", type="command", _configuration=runtime_options, # Set runtime parameters ) try: api_instance.create_command(create_command_request) except ApiException as e: pass ``` -------------------------------- ### Custom Backoff Strategies - Reusing built-in strategy Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/5-Retry.md This code snippet shows how to create a custom backoff strategy that reuses a built-in strategy like `ExponentialBackoffStrategy` by inheriting from it and overriding the `compute_delay` method. ```python from volcenginesdkcore.retryer.backoff_strategy import ExponentialBackoffStrategy class CustomBackoffStrategy(ExponentialBackoffStrategy): def compute_delay(self, retry_count): delay = super(CustomBackoffStrategy, self).compute_delay(retry_count) return 0.0 ``` -------------------------------- ### Inspect RunInstancesRequest Parameter Types Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.EN.md Shows how to access the `swagger_types` attribute of a request object, like `volcenginesdkecs.RunInstancesRequest`, to view its parameters and their data types. ```python swagger_types = { 'auto_renew': 'bool', 'auto_renew_period': 'int', 'client_token': 'str', 'count': 'int', 'network_interfaces': 'list[NetworkInterfaceForRunInstancesInput]', 'security_enhancement_strategy': 'str', 'volumes': 'list[VolumeForRunInstancesInput]', '......' } ``` -------------------------------- ### Convert Response Object to Camel Case Dictionary Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.md This snippet shows how to convert a response object (with underscore-cased fields) to a camel-cased dictionary, matching API documentation field names. Note: Direct use of underscore-cased parameters is recommended over this conversion. ```python import json import pprint from volcenginesdkcore.model import canonical_str try: resp = api_instance.list_users(req) pprint(resp) # 字段为下划线的响应对象 dict_resp = json.loads(json.dumps(canonical_str(resp))) pprint(dict_resp) # 字段为驼峰的响应字典 except ApiException as e: print("Exception when calling IAMApi->ListUsers: %s\n" % e) ``` -------------------------------- ### Custom Retry Conditions - Implementing a new condition Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/5-Retry.md This code snippet shows how to implement a custom retry condition by inheriting from `RetryCondition` and overriding the `should_retry` method. ```python from volcenginesdkcore.retryer.retry_condition import RetryCondition class CustomRetryCondition(RetryCondition): def should_retry(self, response, err): retry_error_codes = self.retry_error_codes return False ``` -------------------------------- ### Set Debug Level Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/7-Debugging.md This snippet demonstrates how to set a specific debug level using bitwise OR operations on `LogLevel` constants to filter log output. ```python import volcenginesdkcore from volcenginesdkcore.observability.debugger import LogLevel configuration = volcenginesdkcore.Configuration() configuration.ak = "Your AK" configuration.sk = "Your SK" configuration.debug = True # enable debug mode configuration.log_level = LogLevel.LOG_DEBUG_WITH_CONFIG.mask | LogLevel.LOG_DEBUG_WITH_REQUEST.mask | LogLevel.LOG_DEBUG_WITH_RESPONSE.mask volcenginesdkcore.Configuration.set_default(configuration) ``` -------------------------------- ### Custom Retry Conditions - Reusing default logic Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/5-Retry.md This code snippet demonstrates how to create a custom retry condition that reuses the default retry logic by inheriting from `DefaultRetryCondition` and overriding the `should_retry` method. ```python from volcenginesdkcore.retryer.retry_condition import DefaultRetryCondition class CustomRetryCondition(DefaultRetryCondition): def should_retry(self, response, err): should_retry = super(CustomRetryCondition, self).should_retry(response, err) return False ``` -------------------------------- ### Linux / macOS Export Commands Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/EnvironmentVariables.md Temporary setting of environment variables for the current shell session on Linux/macOS. ```shell export VOLCENGINE_ACCESS_KEY=your-ak export VOLCENGINE_SECRET_KEY=your-sk export VOLCENGINE_SESSION_TOKEN=your-session-token ``` -------------------------------- ### Convert Response Object to CamelCase Dict Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/FAQ.EN.md Converts a snake_case response object from the SDK into a CamelCase dictionary for easier comparison with API documentation. Note: Direct use of snake_case parameters is generally recommended. ```python import json import pprint from volcenginesdkcore.model import canonical_str try: resp = api_instance.list_users(req) pprint(resp) # Response object with snake_case fields dict_resp = json.loads(json.dumps(canonical_str(resp))) pprint(dict_resp) # Response dict with CamelCase fields except ApiException as e: print("Exception when calling IAMApi->ListUsers: %s\n" % e) ``` -------------------------------- ### STS AssumeRole Source: https://github.com/volcengine/volcengine-python-sdk/blob/master/docs/1-Credentials.md Obtains temporary credentials by assuming an IAM role. Use the role credentials to perform actual API calls. ```python from __future__ import print_function import volcenginesdkcore import volcenginesdkvpc from volcenginesdkcore.rest import ApiException from volcenginesdkcore.auth.providers.sts_provider import StsCredentialProvider if __name__ == '__main__': # Do NOT leak credentials in example code. configuration = volcenginesdkcore.Configuration() configuration.region = "cn-beijing" configuration.credential_provider = StsCredentialProvider( ak="Your ak", sk="Your sk", role_name="Your role name", account_id="Your account id", duration_seconds=3600, scheme="https", host="sts.volcengineapi.com", region="cn-beijing", timeout=30, expired_buffer_seconds=60, policy='{"Statement":[{"Effect":"Allow","Action":["vpc:CreateVpc"],"Resource":["*"],"Condition":{"StringEquals":{"volc:RequestedRegion":["cn-beijing"]}}}]}' ) volcenginesdkcore.Configuration.set_default(configuration) api_instance = volcenginesdkvpc.VPCApi() create_vpc_request = volcenginesdkvpc.CreateVpcRequest( cidr_block="192.168.0.0/16", dns_servers=["10.0.0.1", "10.1.1.2"], ) try: api_instance.create_vpc(create_vpc_request) except ApiException: pass ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.