aliyun / aliyun-openapi-python-sdk

Alibaba Cloud SDK for Python
Other
1k stars 588 forks source link
alibaba-cloud-python alibaba-cloud-sdk development-kit python sdk

Alibaba Cloud Python Software Development Kit

PyPI version Python test codecov

中文文档

The Alibaba Cloud Python Software Development Kit (SDK) allows you to access Alibaba Cloud services such as Elastic Compute Service (ECS), Object Storage Service (OSS), and Resource Access Management (RAM). You can access Alibaba Cloud services without the need to handle API related tasks, such as signing and constructing your requests.

This document introduces how to obtain and call Alibaba Cloud Python SDK.

Troubleshoot

Troubleshoot Provide OpenAPI diagnosis service to help developers locate quickly and provide solutions for developers through RequestID or error message.

Online Demo

API Developer Portal provides the ability to call the cloud product OpenAPI online, and dynamically generate SDK Example code and quick retrieval interface, which can significantly reduce the difficulty of using the cloud API. It is highly recommended.

Documentation

Prerequisites

Install Python SDK

Alibaba Cloud Python SDK supports Python 3.7.x and above. Run python --version to check your version of Python.

You can install the Alibaba Cloud Python SDK using the following two methods. Regardless of which method and cloud service are used, the core library aliyun-python-sdk-core must be installed.

Use Python SDK

  1. Import the required modules as follows:

    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.acs_exception.exceptions import ClientException
    from aliyunsdkcore.acs_exception.exceptions import ServerException
    from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest
    from aliyunsdkecs.request.v20140526 import StopInstanceRequest
  2. Initialize the AcsClient instance:

    client = AcsClient(
        "<access-key-id>",
        "<access-key-secret>",
        "<region-id>"
    )

    where:

    • access-key-id is the Accesskey ID for your account.
    • access-key-secret is the AccessKey secret for your account.
    • region-id is the ID of the region where the service is called. For a list of region IDs, see Regions and zones.

    Note: The sequence of these parameters cannot be changed.

  3. Initialize a request and print response.

    # Initialize a request and set parameters
    request = DescribeInstancesRequest.DescribeInstancesRequest()
    request.set_PageSize(10)
    # Print response
    response = client.do_action_with_exception(request)
    print response

Code example

The following example shows how to query a list of ECS instances in a specific region using DescribeInstances. Substitute the values for your-access-key-id, your-access-key-secret, and your-region-id.

# -*- coding: utf8 -*-

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest
from aliyunsdkecs.request.v20140526 import StopInstanceRequest

# Initialize AcsClient instance
client = AcsClient(
  "<your-access-key-id>",
  "<your-access-key-secret>",
  "<your-region-id>"
)

# Initialize a request and set parameters
request = DescribeInstancesRequest.DescribeInstancesRequest()
request.set_PageSize(10)

# Print response
response = client.do_action_with_exception(request)
print response

HTTP DEBUG

To use the function HTTP DEBUG, you must set DEBUG in your environment variable, the corresponding value may be sdk or SDK.

The following example shows what the HTTP DEBUG do, which will help you debug your codes.

> GET /databases?RegionId=cn-hangzhou HTTP/1.1
> Host : ads.cn-hangzhou.aliyuncs.com
> User-Agent : AlibabaCloud (Windows 10;AMD64) Python/3.7.1 Core/2.13.1 python-requests/2.18.1
> accept-encoding : *
> Accept : application/json
> Connection : keep-alive
> x-sdk-invoke-type : normal
> x-acs-version : 2019-01-22
> x-acs-region-id : cn-hangzhou
> Date : Thu, 21 Feb 2019 08:00:50 GMT
> x-acs-signature-method : HMAC-SHA1
> x-acs-signature-version : 1.0
> Authorization : acs ...
> x-sdk-client : python/2.0.0

< HTTP/1.1 503 SERVICE_UNAVAILABLE
< Date : Thu, 21 Feb 2019 08:00:50 GMT
< Content-Type : application/json; charset=UTF-8
< Content-Length : 297
< Connection : keep-alive
< Access-Control-Allow-Origin : *
< Access-Control-Allow-Methods : POST, GET, OPTIONS
< Access-Control-Allow-Headers : X-Requested-With, X-Sequence, _aop_secret, _aop_signature
< Access-Control-Max-Age : 172800
< x-acs-request-id : 670F3D09-F8E7-4144-83C3-B56C35DA35ED
< Server : Jetty(7.2.2.v20101205)