Skip to main content

Aliyun FunctionCompute SDK2

Project description

https://badge.fury.io/py/aliyun-fc2.svg https://travis-ci.org/aliyun/fc-python-sdk.svg?branch=master https://coveralls.io/repos/github/aliyun/fc-python-sdk/badge.svg?branch=master

Overview

The SDK of this version is dependent on the third-party HTTP library requests.

Running environment

Python 2.7, Python 3.6

Notice

fc and fc2 are not compatible, now master repo is fc2, if you still use fc, 1.x branch is what you need. We suggest using fc2, The main difference between fc and fc2 is:

1, all http request fuction can set headers

def invoke_function(self, serviceName, functionName, payload=None,
        headers = {'x-fc-invocation-type': 'Sync', 'x-fc-log-type' : 'None'}):
    ...

2, The all http response returned by the user is the following object

class FcHttpResponse(object):
    def __init__(self, headers, data):
        self._headers = headers
        self._data = data

    @property
    def headers(self):
        return self._headers

    @property
    def data(self):
        return self._data

Note: for invoke function, data is bytes, for other apis, data is dict

Installation

Install the official release version through PIP (taking Linux as an example):

$ pip install aliyun-fc2

You can also install the unzipped installer package directly:

$ sudo python setup.py install

if you still use fc, you can install the official fc1 release version through PIP (taking Linux as an example):

$ pip install aliyun-fc

Getting started

# -*- coding: utf-8 -*-

import fc2


# To know the endpoint and access key id/secret info, please refer to:
# https://help.aliyun.com/document_detail/52984.html
client = fc2.Client(
    endpoint='<Your Endpoint>',
    accessKeyID='<Your AccessKeyID>',
    accessKeySecret='<Your AccessKeySecret>')

# Create service.
client.create_service('service_name')

# Create function.
# the current directory has a main.zip file (main.py which has a function of myhandler)
client.create_function('service_name', 'function_name', 'main.my_handler', codeZipFile = 'main.zip')

# Invoke function synchronously.
client.invoke_function('service_name', 'function_name')

# Invoke a function with a input parameter.
client.invoke_function('service_name', 'function_name', payload=bytes('hello_world'))

# Read a image and invoke a function with the file data as input parameter.
src = open('src_image_file_path', 'rb') # Note: please open it as binary.
r = client.invoke_function('service_name', 'function_name', payload=src)
# save the result as the output image.
dst = open('dst_image_file_path', 'wb')
dst.write(r.data)
src.close()
dst.close()

# Invoke function asynchronously.
client.async_invoke_function('service_name', 'function_name')

# List services.
client.list_services()

# List functions with prefix and limit.
client.list_functions('service_name', prefix='the_prefix', limit=10)

# Delete service.
client.delete_service('service_name')

# Delete function.
client.delete_function('service_name', 'function_name')

Testing

To run the tests, please set the access key id/secret, endpoint as environment variables. Take the Linux system for example:

$ export ENDPOINT=<endpoint>
$ export ACCESS_KEY_ID=<AccessKeyId>
$ export ACCESS_KEY_SECRET=<AccessKeySecret>
$ export STS_TOKEN=<roleARN>

Run the test in the following method:

$ nosetests                          # First install nose

More resources

Contacting us

License

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

aliyun-fc2-2.0.3.tar.gz (10.4 kB view details)

Uploaded Source

File details

Details for the file aliyun-fc2-2.0.3.tar.gz.

File metadata

  • Download URL: aliyun-fc2-2.0.3.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aliyun-fc2-2.0.3.tar.gz
Algorithm Hash digest
SHA256 43f3d5d28745f02c4ca490476f4d0ce15d8e6f4244a7e9966c55d16bf4ba1018
MD5 5f6a7bc5df62cd351a012f5f1eb59852
BLAKE2b-256 966aab9e31b44c49e53bc2f20eb87cbc921436e9845a9b3d2227d3a39908fde1

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