Ejemplo 3: Creación de una función mediante la carga de código en un bucket de OBS
Caso
Este ejemplo le guía a través del procedimiento para cargar código local en un bucket de Object Storage Service (OBS) y crear una función de Python 2.7 mediante la URL de enlace del bucket de OBS.
Para obtener más información sobre cómo llamar a las API, consulte Llamar a APIs.
Prerrequisitos
Se ha creado un bucket de OBS.
Procedimiento general
Después de escribir el código de función en su entorno local, cargue el archivo de código a un bucket de OBS y use la URL de enlace del bucket de OBS para crear una función. Siga el siguiente procedimiento:
- Escriba código en su entorno local para crear un proyecto de función.
- Comprima el archivo de código en un paquete ZIP, suba el paquete al bucket OBS y registre la URL de enlace de este bucket.
- Llama a la API en Creación de una función para crear una función usando la URL de enlace del bucket de OBS.
Paso 1: Crear un proyecto de función
- Escribir código para imprimir texto helloworld.
Abre un editor de texto, compila una función HelloWorld y guarda el archivo de código como helloworld.py. El código es el siguiente:
def printhello(): print 'Hello world!'
- Defina una función de FunctionGraph.
Abra un editor de texto, defina una función y guarde el archivo de función como index.py bajo el mismo directorio que el archivo helloworld.py. El código de función es el siguiente:
import json import helloworld def handler (event, context): output =json.dumps(event) helloworld.printhello() return output
Paso 2: Subir el proyecto a un bucket de OBS
Paso 3: Llamar a la API de creación de funciones para crear una función usando la URL de enlace del bucket de OBS
URI: POST /v2/{project_id}/fgs/functions
Para obtener más información, consulte Creación de una función.
- Ejemplo de la solicitud
POST https://{Endpoint}/v2/{project_id}/fgs/functions { "code_type": "obs", "code_url": "https://test.obs.xxx.xxx.com/fss_examples_python2.7.zip", "func_name": "create_function_from_obs", "handler": "index.handler", "memory_size": 256, "package": "default", "runtime": "Python2.7", "timeout": 30 }
code_url indica la URL de enlace del bucket OBS registrado en 2.
- Ejemplo de la respuesta
{ "func_urn": "urn:fss:{project_name}:{project_id}:function:default:create_function_from_obs:latest", "func_name": "create_function_from_obs", "domain_id": "0503xxxa960", "namespace": "{project_id}", "project_name": "xxx", "package": "default", "runtime": "Python2.7", "timeout": 30, "handler": "index.handler", "memory_size": 256, "cpu": 400, "code_type": "obs", "code_url": "https://test.obs.xxx.xxx.com/fss_examples_python2.7.zip", "code_filename": "fss_examples_python2.7.zip", "code_size": 436, "digest": "3af770ada27514564b1a20d964cba4b35f432fa40f9fc4f4f7c1f0d2f42eac6cb4db1358c195235966b05f66b4664e7bf31c3f384a9066b3d1fcc3e96b4c3f65", "version": "latest", "image_name": "latest-200619100734@gjf4p", "last_modified": "2020-06-19T10:07:34+08:00", "strategy_config": { "concurrency": -1 }, "StrategyConfig": {}, "enterprise_project_id": "0" }