Criação de uma função
Função
Esta API é usada para criar uma função.
URI
POST /v2/{project_id}/fgs/functions
| 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
| 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 |
| 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:
Valores de enumeração:
|
| 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:
Valores de enumeração:
|
| 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:
|
Parâmetros de resposta
Código de estado: 200
| 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:
Valores de enumeração:
|
| 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:
Valores de enumeração:
|
| 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 | - |
| 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. |
| Parâmetro | Tipo | Descrição |
|---|---|---|
| mount_user | MountUser object | Informações do usuário. |
| func_mounts | Array of FuncMount objects | Recursos montados. |
| 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. |
| 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. |
| 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. |
| 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
| 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
| 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
| 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
| 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
| 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
| 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.