Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-08 GMT+08:00

Criação de uma função

Função

Esta API é usada para criar uma função.

URI

POST /v2/{project_id}/fgs/functions

Tabela 1 Parâmetros de caminho

Parâmetro

Obrigatório

Tipo

Descrição

project_id

Sim

String

ID do projeto.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Parâmetros de solicitação

Tabela 2 Parâmetros de cabeçalho de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

X-Auth-Token

Sim

String

Token do usuário.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Tabela 3 Parâmetros do corpo da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

func_name

Sim

String

Nome da função.

package

Sim

String

Grupo ao qual a função pertence. Este campo é definido para agrupar funções.

runtime

Sim

String

Ambiente para execução de uma função. Opções:

  • Python2.7
  • Python3.6
  • Python3.9
  • Go1.8
  • Go1.x
  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • Custom
  • PHP7.3

Valores de enumeração:

  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Python2.7
  • Python3.6
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • PHP7.3
  • Python3.9

timeout

Sim

Integer

Duração máxima que a função pode ser executada. Faixa de valor: 3s–900s. O valor pode ser de até 12 horas para usuários na lista de permissões. Para obter detalhes, entre em contato com o pessoal da FunctionGraph.

handler

Sim

String

Manipulador de uma função no formato "xx.xx". Deve conter um ponto (.).

Por exemplo, para a função myfunction.handler do Node.js, o nome do arquivo é myfunction.js, e a função do manipulador é handler.

memory_size

Sim

Integer

Memória consumida por uma função.

Unidade: MB.

O valor pode ser 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 ou 4096.

O valor varia de 128 a 4096.

code_type

Sim

String

Tipo de código da função. Opções:

  • inline: código em linha.
  • zip: arquivo ZIP.
  • obs: código de função armazenado em um intervalo do OBS.
  • jar: arquivo JAR, para funções Java.

Valores de enumeração:

  • inline
  • zip
  • obs
  • jar

code_url

Não

String

Se CodeType estiver definido como obs, insira a URL OBS do pacote de código de função. Se CodeType não estiver definido como obs, deixe este parâmetro em branco.

code_filename

Não

String

Nome de um arquivo de função. Este parâmetro é obrigatório somente quando CodeType é definido como jar ou zip.

user_data

Não

String

Informações de nome/valor definidas para a função.

Estes são parâmetros usados em uma função.

Por exemplo, se uma função precisa acessar um host, defina Host={host_ip}. Você pode definir um máximo de 20 desses parâmetros, e seu comprimento total não pode exceder 4 KB.

xrole

Não

String

Agência utilizada pela função. Você precisa criar uma agência no console do IAM. Este campo é obrigatório quando uma função precisa acessar outros serviços.

app_xrole

Não

String

Agência usada pelo aplicativo da função. Você precisa criar uma agência no console do IAM. Este campo é obrigatório quando uma função precisa acessar outros serviços.

description

Não

String

Descrição da função.

func_code

Não

FuncCode object

Corpo de resposta da estrutura FuncCode.

initializer_handler

Não

String

Inicializador da função. Está no formato "xx.xx" e deve conter um ponto (.).

Por exemplo, para a função myfunction.initializer do Node.js, o nome do arquivo é myfunction.js, e a função de inicialização é inicializador.

initializer_timeout

Não

Integer

Duração máxima que a função pode ser inicializada. Faixa de valor: 1s–300s.

enterprise_project_id

Não

String

ID do projeto empresarial. Este parâmetro é obrigatório se você criar uma função como um usuário de projeto empresarial.

type

Não

String

Versão da função.

Padrão: v2

Valores de enumeração:

  • v1
  • v2
Tabela 4 FuncCode

Parâmetro

Obrigatório

Tipo

Descrição

file

Não

String

Código da função, que deve ser codificado usando Base64. Se este parâmetro for deixado em branco, o código padrão será usado.

link

Não

String

URL do código da função.

Parâmetros de resposta

Código de estado: 200

Tabela 5 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

func_urn

String

o URN da função.

func_name

String

Nome da função.

domain_id

String

ID do domínio.

namespace

String

ID do projeto.

project_name

String

Nome do projeto.

package

String

Grupo ao qual a função pertence. Este campo é definido para agrupar funções.

runtime

String

Ambiente para execução de uma função. Opções:

  • Python2.7
  • Python3.6
  • Python3.9
  • Go1.8
  • Go1.x
  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • Custom
  • PHP7.3

Valores de enumeração:

  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Python2.7
  • Python3.6
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • PHP7.3
  • Python3.9

timeout

Integer

Duração máxima que a função pode ser executada. Faixa de valor: 3s–900s. O valor pode ser de até 12 horas para usuários na lista de permissões. Para obter detalhes, entre em contato com o pessoal da FunctionGraph.

handler

String

Manipulador de uma função no formato "xx.xx". Deve conter um ponto (.).

Por exemplo, para a função myfunction.handler do Node.js, o nome do arquivo é myfunction.js, e a função do manipulador é handler.

memory_size

Integer

Memória consumida por uma função.

Unidade: MB.

O valor pode ser 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 ou 4096.

O valor varia de 128 a 4096.

cpu

Integer

recursos de CPU de uma função.

Unidade: millicore (1 núcleo = 1000 millicores).

O valor deste campo é proporcional ao de MemorySize. Por padrão, são necessários 100 millicores de CPU para 128 MB de memória.

O valor é calculado da seguinte forma: Memória/128 x 100 + 200 (millicores básicos da CPU)

code_type

String

Tipo de código da função. Opções:

  • inline: código em linha.
  • zip: arquivo ZIP.
  • obs: código de função armazenado em um bucket do OBS.
  • jar: arquivo JAR, para funções Java.

Valores de enumeração:

  • inline
  • zip
  • obs
  • jar

code_url

String

Se CodeType estiver definido como obs, insira a URL OBS do pacote de código de função. Se CodeType não estiver definido como obs, deixe este parâmetro em branco.

code_filename

String

Nome de um arquivo de função. Este parâmetro é obrigatório somente quando CodeType é definido como jar ou zip.

code_size

Long

Tamanho do código em bytes.

user_data

String

Informações de nome/valor definidas para a função.

Estes são parâmetros usados em uma função.

Por exemplo, se uma função precisa acessar um host, defina Host={host_ip}. Você pode definir um máximo de 20 desses parâmetros, e seu comprimento total não pode exceder 4 KB.

encrypted_user_data

String

Nome/valor definido pelo usuário a ser criptografado.

digest

String

O valor de hash SHA512 do código da função, que é usado para determinar se a função foi alterada.

version

String

Versão da função, que é gerada automaticamente pelo sistema. O nome da versão está no formato "vAAAAMMDD-HHMMSS" (v+ano/mês/dia-hora/minuto/segundo).

image_name

String

Identificador interno de uma versão de função.

xrole

String

Agência utilizada pela função. Você precisa criar uma agência no console do IAM. Este campo é obrigatório quando uma função precisa acessar outros serviços.

app_xrole

String

Agência usada pelo aplicativo da função. Você precisa criar uma agência no console do IAM. Este campo é obrigatório quando uma função precisa acessar outros serviços.

description

String

Descrição da função.

last_modified

String

Hora em que a função foi atualizada pela última vez.

func_vpc

FuncVpc object

Configuração da VPC.

mount_config

MountConfig object

Configuração de montagem.

depend_list

Array of strings

Lista dos ID de dependência.

strategy_config

StrategyConfig object

Configuração da política de função.

extend_config

String

Configuração estendida.

initializer_handler

String

Inicializador da função. Está no formato "xx.xx" e deve conter um ponto (.).

Por exemplo, para a função myfunction.initializer do Node.js, o nome do arquivo é myfunction.js, e a função de inicialização é inicializador.

initializer_timeout

Integer

Duração máxima que a função pode ser inicializada. Faixa de valor: 1s–300s.

enterprise_project_id

String

ID do projeto empresarial. Este parâmetro é obrigatório se você criar uma função como um usuário de projeto empresarial.

enable_dynamic_memory

Boolean

Se deve ativar a alocação dinâmica de memória.

is_stateful_function

Boolean

Se as funções stateful são suportadas. Se forem suportados, defina este parâmetro como true. Este parâmetro é suportado no FunctionGraph v2.

enable_auth_in_header

Boolean

Se permitir informações de autenticação no cabeçalho da solicitação.

custom_image

CustomImage object

-

Tabela 6 FuncVpc

Parâmetro

Tipo

Descrição

vpc_name

String

Nome da VPC.

vpc_id

String

ID de VPC.

subnet_name

String

Nome da sub-rede.

subnet_id

String

ID da sub-rede.

cidr

String

Máscara de sub-rede.

gateway

String

Gateway.

Tabela 7 MountConfig

Parâmetro

Tipo

Descrição

mount_user

MountUser object

Informações do usuário.

func_mounts

Array of FuncMount objects

Recursos montados.

Tabela 8 MountUser

Parâmetro

Tipo

Descrição

user_id

String

ID do usuário, um número inteiro não-0 de –1 a 65534.

user_group_id

String

ID do grupo de usuários, um número inteiro não-0 de –1 a 65534.

Tabela 9 FuncMount

Parâmetro

Tipo

Descrição

mount_type

String

Tipo de montagem. O valor pode ser sfs, sfsTurbo ou ecs. Este parâmetro é obrigatório quando func_mounts não está vazio.

mount_resource

String

ID do recurso montado (ID do serviço de nuvem). Este parâmetro é obrigatório quando func_mounts não está vazio.

mount_share_path

String

Caminho de montagem remoto. Por exemplo, 192.168.0.12:/data. Este parâmetro é obrigatório se mount_type estiver definido como ecs.

local_mount_path

String

Caminho de acesso à função. Este parâmetro é obrigatório quando func_mounts não está vazio.

Tabela 10 StrategyConfig

Parâmetro

Tipo

Descrição

concurrency

Integer

Número máximo de instâncias para uma única função. Para v1, o valor pode ser 0 ou –1; para v2, varia de –1 a 1000.

concurrent_num

Integer

Número máximo de solicitações simultâneas para uma única instância. Este parâmetro é suportado apenas pela v2. O valor varia de –1 a 200.000.

Tabela 11 CustomImage

Parâmetro

Tipo

Descrição

enabled

Boolean

Se deve ativar esse recurso.

image

String

Endereço da imagem.

command

String

Comando para iniciar uma imagem de contêiner.

args

String

Parâmetro de linha de comando para iniciar uma imagem de contêiner.

working_dir

String

Diretório de trabalho de um contêiner de imagem.

uid

String

ID de usuário de um contêiner de imagem.

gid

String

ID do grupo de usuários de um contêiner de imagem.

Código de estado: 400

Tabela 12 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensagem de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 401

Tabela 13 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensagem de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 403

Tabela 14 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensagem de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 404

Tabela 15 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensagem de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 500

Tabela 16 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensagem de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 503

Tabela 17 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

error_code

String

Código de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensagem de erro.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Exemplos de solicitações

Criar uma função.

POST https://{Endpoint}/v2/{project_id}/fgs/functions

{
  "func_name" : "xxx",
  "package" : "xxx",
  "runtime" : "Python2.7",
  "handler" : "index.py",
  "memory_size" : 128,
  "code_type" : "inline",
  "timeout" : 3,
  "func_code" : {
    "file" : "xxxxx",
    "link" : ""
  }
}

Exemplo de respostas

Código de estado: 200

ok

{
  "func_urn" : "urn:fss:xxxxxxxxx:c3b2459a6d5e4b548e6777e57852692d:function:default:TestCreateFunctionInPythonSdk:latest",
  "func_name" : "TestCreateFunctionInPythonSdk",
  "domain_id" : "14ee2e3501124efcbca7998baa24xxxx",
  "namespace" : "46b6f338fc3445b8846c71dfb1fbxxxx",
  "project_name" : "xxxxxxxxxx",
  "package" : "default",
  "runtime" : "Python3.6",
  "timeout" : 3,
  "handler" : "index.handler",
  "memory_size" : 128,
  "cpu" : 300,
  "code_type" : "inline",
  "code_filename" : "index.py",
  "code_size" : 100,
  "digest" : "1c8610d1870731a818a037f1d2adf3223e8ac351aeb293fb1f8eabd2e9820069a61ed8b5d38182e760adc33a307d0e957afc357f415cd8c9c3ff6f0426fd85cd",
  "version" : "latest",
  "image_name" : "latest-191025153727@zehht",
  "last_modified_utc" : 1571989047,
  "last_modified" : "2019-10-25T15:37:27+08:00",
  "func_code" : { },
  "strategy_config" : {
    "concurrency" : 0
  }
}

Código de estado: 400

Solicitação inválida.

{
  "error_code" : "FSS.0401",
  "error_msg" : "not permit"
}

Código de estado: 401

Não autorizado.

{
  "error_code" : "FSS.0401",
  "error_msg" : "not permit"
}

Código de estado: 403

Proibido.

{
  "error_code" : "FSS.0401",
  "error_msg" : "not permit"
}

Códigos de status

Código de status

Descrição

200

ok

400

Solicitação inválida.

401

Não autorizado.

403

Proibido.

404

Não encontrado.

500

Erro de servidor interno.

503

Serviço indisponível.

Códigos de erro

Consulte Códigos de erro.