Exemplo 3: Criação de uma função por carregamento de código em um bucket do OBS
Cenário
Este exemplo orienta você pelo procedimento para fazer upload de código local em um bucket dõ Object Storage Service (OBS) e criar uma função do Python 2.7 usando o URL do link do bucket do OBS.
Para obter detalhes sobre como chamar as API, consulte Chamada das API.
Pré-requisitos
Um bucket do OBS foi criado.
Procedimento geral
Depois de escrever o código da função no ambiente local, carregue o arquivo de código em um bucket de OBS e use o URL do link do bucket do OBS para criar uma função. O procedimento é o seguinte:
- Escreva código em seu ambiente local para criar um projeto de função.
- Compacte o arquivo de código em um pacote ZIP, carregue o pacote no bucket do OBS e registre o URL do link desse bucket.
- Chame a API em Criação de uma função para criar uma função usando o URL do link do bucket do OBS.
Passo 1: Criar um projeto de função
- Escreva código para imprimir texto helloworld.
Abra um editor de texto, compile uma função HelloWorld e salve o arquivo de código como helloworld.py. O código é o seguinte:
def printhello(): print 'Hello world!'
- Defina uma função FunctionGraph.
Abra um editor de texto, defina uma função e salve o arquivo de função como index.py no mesmo diretório do arquivo helloworld.py. O código da função é o seguinte:
import json import helloworld def handler (event, context): output =json.dumps(event) helloworld.printhello() return output
Passo 2: Carregue o projeto em um bucket do OBS
Passo 3: Chame a API de criação de função para criar uma função usando o URL do link do bucket do OBS
URI: POST /v2/{project_id}/fgs/functions
Para obter detalhes, consulte Criação de uma função.
- Exemplo de solicitação
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 o URL do link do bucket do OBS registrado em 2.
- Exemplo de resposta
{ "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" }