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.
Central de ajuda/ FunctionGraph/ Referência de API/ As API/ Versões e aliases/ Publicação de uma versão de função
Atualizado em 2022-11-08 GMT+08:00

Publicação de uma versão de função

Função

Esta API é usada para publicar uma versão de função.

URI

POST /v2/{project_id}/fgs/functions/{function_urn}/versions

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

function_urn

Sim

String

o URN da função. Para obter detalhes, consulte as descrições do modelo de função.

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.

Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token.

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

digest

Não

String

Chave MD5.

version

Não

String

Versão da função.

description

Não

String

Descrição da versão.

Parâmetros de resposta

Código de estado: 200

Tabela 4 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 do 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 intervalo 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.

version_description

String

Descrição da versã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.

strategy_config

StrategyConfig object

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

dependencies

Array of Dependency objects

Pacotes de dependência.

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 enterprise.

long_time

Boolean

Se permitir um tempo limite longo.

log_group_id

String

ID do grupo de log.

log_stream_id

String

ID do fluxo de log.

type

String

v2 indica a versão OBT e v1 indica a versão original.

Valores de enumeração:

  • v1
  • v2

enable_dynamic_memory

Boolean

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

function_async_config

FunctionAsyncConfig object

Retorna a estrutura das configurações de notificação de execução assíncrona.

Tabela 5 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 6 MountConfig

Parâmetro

Tipo

Descrição

mount_user

MountUser object

Informações do usuário.

func_mounts

Array of FuncMount objects

Recursos montados.

Tabela 7 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 8 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 9 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 10 Dependência

Parâmetro

Tipo

Descrição

owner

String

ID do domínio do proprietário da dependência.

link

String

URL da dependência no OBS.

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

etag

String

Valor MD5 de uma dependência.

size

Long

Tamanho da dependência.

name

String

Nome da dependência.

description

String

Descrição da dependência.

file_name

String

Nome do arquivo de um pacote de dependências (ZIP).

Tabela 11 FunctionAsyncConfig

Parâmetro

Tipo

Descrição

max_async_event_age_in_seconds

Integer

Período máximo de validade de uma mensagem. Faixa de valor: 60–86.400. Unidade: segundo.

max_async_retry_attempts

Integer

Número máximo de tentativas a serem feitas se a invocação assíncrona falhar. Valor padrão: 3. Faixa de valor: 0–8.

destination_config

FuncAsyncDestinationConfig object

Destino de invocação assíncrona.

created_time

String

Hora em que a notificação de execução assíncrona foi configurada.

last_modified

String

Hora em que as configurações de notificação de execução assíncrona foram modificadas pela última vez.

Tabela 12 FuncAsyncDestinationConfig

Parâmetro

Tipo

Descrição

on_success

FuncDestinationConfig object

Destino a ser chamado quando uma função é executada com sucesso.

on_failure

FuncDestinationConfig object

Alvo a ser invocado quando uma função falha ao ser executada devido a um erro do sistema ou um erro interno.

Tabela 13 FuncDestinationConfig

Parâmetro

Tipo

Descrição

destination

String

Tipo de objeto.

  • OBS
  • SMN
  • DIS
  • FunctionGraph

Valores de enumeração:

  • OBS
  • SMN
  • DIS
  • FunctionGraph

param

String

Parâmetros (em formato JSON) correspondentes ao serviço de destino.

  • OBS: Os parâmetros relacionados ao nome do intervalo, prefixo do diretório de objetos e tempo de expiração do objeto estão incluídos. O tempo de expiração do objeto varia de 0 a 365 dias. Se o valor for 0, o objeto não expirará.
  • SMN: O parâmetro topic_urn está incluído.
  • DIS: O parâmetro stream_name está incluído.
  • FunctionGraph: O parâmetro func_urn está incluído.

Código de estado: 400

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: 401

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: 403

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: 404

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

Código de estado: 500

Tabela 18 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

Publicar uma versão de função.

POST https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/versions { "version" : "v1", "description" : "v1" }

Exemplo de respostas

Código de estado: 200

OK

{ "func_urn" : "urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test", "func_name" : "test", "domain_id" : "14ee2e3501124efcbca7998baa24xxxx", "namespace" : "46b6f338fc3445b8846c71dfb1fbxxxx", "project_name" : "xxxxx", "package" : "default", "runtime" : "Node.js6.10", "timeout" : 3, "handler" : "test.handler", "memory_size" : 128, "cpu" : 300, "code_type" : "inline", "code_filename" : "inline.js", "code_size" : 272, "digest" : "faa825575c45437cddd4e369bea69893bcbe195d478178462ad90984fe72993f3f59d15f41c5373f807f3e05fb9af322c55dabeb16565c386e402413458e6068", "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: 404

Não encontrado.

{ "error_code" : "FSS.1051", "error_msg" : "Not found the function" }

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.

Códigos de erro

Consulte Códigos de erro.