Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-07 GMT+08:00

Creación de una función

Función

Esta API se utiliza para crear una función.

URI

POST /v2/{project_id}/fgs/functions

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Parámetros de solicitud

Tabla 2 Parámetros de cabecera de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Token de usuario.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

func_name

String

Nombre de la función.

package

String

Grupo al que pertenece la función. Este campo se define para agrupar las funciones.

runtime

String

Entorno para ejecutar una función. Opciones:

  • 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 enumeración:

  • 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

Duración máxima de la función puede ser ejecutada. Rango de valores: 3s–900s. El valor puede ser de hasta 12 horas para los usuarios de la lista blanca. Para obtener más información, comuníquese con el personal de FunctionGraph.

handler

String

Manejador de una función en el formato de "xx.xx". Debe contener un período (.).

Por ejemplo, para la función de Node.js myfunction.handler, el nombre del archivo es myfunction.js, y la función de manejador es manejador.

memory_size

Integer

Memoria consumida por una función.

Unidad: MB.

El valor puede ser 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 o 4096.

El valor oscila entre 128 y 4096.

code_type

String

Tipo de código de función. Opciones:

  • inline: código en línea.
  • zip: archivo ZIP.
  • obs: código de función almacenado en un bucket OBS.
  • jar: archivo JAR, para funciones Java.

Valores de enumeración:

  • inline
  • zip
  • obs
  • jar

code_url

No

String

Si CodeType está establecido en obs, introduzca la URL OBS del paquete de código de función. Si CodeType no está establecido en obs, deje este parámetro en blanco.

code_filename

No

String

Nombre de un archivo de función. Este parámetro solo es obligatorio cuando CodeType se establece en jar o zip.

user_data

No

String

Información de Nombre/Valor definida para la función.

Estos son parámetros usados en una función.

Por ejemplo, si una función necesita acceder a un host, defina Host={host_ip}. Puede definir un máximo de 20 parámetros de este tipo y su longitud total no puede superar los 4 KB.

xrole

No

String

Agencia utilizada por la función. Es necesario crear una delegación en la consola IAM. Este campo es obligatorio cuando una función necesita acceder a otros servicios.

app_xrole

No

String

Agencia utilizada por la aplicación de función. Es necesario crear una delegación en la consola IAM. Este campo es obligatorio cuando una función necesita acceder a otros servicios.

description

No

String

Descripción de la función.

func_code

No

FuncCode object

Cuerpo de respuesta de la estructura FuncCode.

initializer_handler

No

String

Inicializador de la función. Está en el formato de "xx.xx" y debe contener un punto (.).

Por ejemplo, para la función Node.js myfunction.initializer, el nombre del archivo es myfunction.js, y la función de inicialización es inicializador.

initializer_timeout

No

Integer

Duración máxima de la función puede ser inicializada. Rango de valores: 1s–300s.

enterprise_project_id

No

String

ID del proyecto de empresa. Este parámetro es obligatorio si crea una función como usuario de empresa.

type

No

String

Versión de función.

Predeterminado: v2

Valores de enumeración:

  • v1
  • v2
Tabla 4 FuncCode

Parámetro

Obligatorio

Tipo

Descripción

file

String

Código de función. Cuando CodeType se establece en inline, zip o jar, este parámetro es obligatorio y el código debe codificarse usando Base64.

link

String

URL del código de función.

Parámetros de respuesta

Código de estado: 200

Tabla 5 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

func_urn

String

Nombre de recursos uniforme de función.

func_name

String

Nombre de la función.

domain_id

String

ID de dominio.

namespace

String

ID del proyecto

project_name

String

Nombre del proyecto.

package

String

Grupo al que pertenece la función. Este campo se define para agrupar las funciones.

Tiempo de ejecución

String

Entorno para ejecutar una función. Opciones:

  • 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 enumeración:

  • 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

Duración máxima de la función puede ser ejecutada. Rango de valores: 3s–900s. El valor puede ser de hasta 12 horas para los usuarios de la lista blanca. Para obtener más información, comuníquese con el personal de FunctionGraph.

handler

String

Manejador de una función en el formato de "xx.xx". Debe contener un período (.).

Por ejemplo, para la función de Node.js myfunction.handler, el nombre del archivo es myfunction.js, y la función de manejador es manejador.

memory_size

Integer

Memoria consumida por una función.

Unidad: MB.

El valor puede ser 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 o 4096.

El valor oscila entre 128 y 4096.

cpu

Integer

Recursos de CPU de una función.

Unidad: milicore (1 núcleo = 1000 millicores).

El valor de este campo es proporcional al de "MemorySize". De forma predeterminada, se requieren 100 millicores de CPU para 128 MB de memoria.

El valor se calcula de la siguiente manera: Memoria/128 x 100 + 200 (millicores básicos de CPU)

code_type

String

Tipo de código de función. Opciones:

  • inline: código en línea.
  • zip: archivo ZIP.
  • obs: código de función almacenado en un bucket OBS.
  • jar: archivo JAR, para funciones Java.

Valores de enumeración:

  • inline
  • zip
  • obs
  • jar

code_url

String

Si CodeType está establecido en obs, introduzca la URL OBS del paquete de código de función. Si CodeType no está establecido en obs, deje este parámetro en blanco.

code_filename

String

Nombre de un archivo de función. Este parámetro solo es obligatorio cuando CodeType se establece en jar o zip.

code_size

Long

Tamaño del código en bytes.

user_data

String

Información de Nombre/Valor definida para la función.

Estos son parámetros usados en una función.

Por ejemplo, si una función necesita acceder a un host, defina Host={host_ip}. Puede definir un máximo de 20 parámetros de este tipo y su longitud total no puede superar los 4 KB.

encrypted_user_data

String

Nombre/valor definido por el usuario que se va a cifrar.

digest

String

Valor hash SHA512 del código de función, que se usa para determinar si la función ha cambiado.

version

String

Versión de la función, que es generada automáticamente por el sistema. El nombre de la versión tiene el formato "vYYYYMMDD-HHMMSS" (v+año/mes/día-hora/minuto/segundo).

image_name

String

Identificador interno de una versión de función.

xrole

String

Agencia utilizada por la función. Es necesario crear una delegación en la consola IAM. Este campo es obligatorio cuando una función necesita acceder a otros servicios.

app_xrole

String

Agencia utilizada por la aplicación de función. Es necesario crear una delegación en la consola IAM. Este campo es obligatorio cuando una función necesita acceder a otros servicios.

description

String

Descripción de la función.

last_modified

String

Hora en la que se actualizó por última vez la función.

func_vpc

FuncVpc object

Configuración de VPC.

mount_config

MountConfig object

Configuración de montaje.

depend_list

Array of strings

Lista de ID de dependencia.

strategy_config

StrategyConfig object

Configuración de la política de función.

extend_config

String

Configuración extendida.

initializer_handler

String

Inicializador de la función. Está en el formato de "xx.xx" y debe contener un punto (.).

Por ejemplo, para la función Node.js myfunction.initializer, el nombre del archivo es myfunction.js, y la función de inicialización es inicializador.

initializer_timeout

Integer

Duración máxima de la función puede ser inicializada. Rango de valores: 1s–300s.

enterprise_project_id

String

ID del proyecto de empresa. Este parámetro es obligatorio si crea una función como usuario de empresa.

enable_dynamic_memory

Boolean

Si se debe habilitar la asignación de memoria dinámica.

is_stateful_function

Boolean

Se admiten funciones con estado o no. Si se admiten, establezca este parámetro en true. Este parámetro es compatible con FunctionGraph v2.

enable_auth_in_header

Boolean

Se permite o no la información de autenticación en el encabezado de solicitud.

custom_image

CustomImage object

-

Tabla 6 FuncVpc

Parámetro

Tipo

Descripción

vpc_name

String

Nombre de la VPC.

vpc_id

String

ID de VPC.

subnet_name

String

Nombre de subred

subnet_id

String

ID de subred

cidr

String

Máscara de subred

gateway

String

Gateway.

Tabla 7 MountConfig

Parámetro

Tipo

Descripción

mount_user

MountUser object

Información del usuario.

func_mounts

Array of FuncMount objects

Recursos montados.

Tabla 8 MountUser

Parámetro

Tipo

Descripción

user_id

String

ID de usuario, un número entero no 0 de –1 a 65534.

user_group_id

String

ID de grupo de usuarios, un número entero no 0 de –1 a 65534.

Tabla 9 FuncMount

Parámetro

Tipo

Descripción

mount_type

String

Tipo de montaje. El valor puede ser sfs, sfsTurbo o ecs. Este parámetro es obligatorio cuando func_mounts no está vacío.

mount_resource

String

ID del recurso montado (ID del servicio en la nube). Este parámetro es obligatorio cuando func_mounts no está vacío.

mount_share_path

String

Ruta de montaje remoto. Por ejemplo, 192.168.0.12:/data. Este parámetro es obligatorio si mount_type se establece en ecs.

local_mount_path

String

Ruta de acceso de función. Este parámetro es obligatorio cuando func_mounts no está vacío.

Tabla 10 StrategyConfig

Parámetro

Tipo

Descripción

concurrency

Integer

Número máximo de instancias para una sola función. Para v1, el valor puede ser 0 o –1; para v2, varía de –1 a 1000.

concurrent_num

Integer

Número máximo de solicitudes simultáneas para una sola instancia. Este parámetro solo es compatible con v2. El valor oscila entre –1 y 200,000.

Tabla 11 CustomImage

Parámetro

Tipo

Descripción

enabled

Boolean

Si desea habilitar esta función.

image

String

Dirección de imagen.

command

String

Comando para iniciar una imagen de contenedor.

args

String

Parámetro de línea de comandos para iniciar una imagen de contenedor.

working_dir

String

Directorio de trabajo de un contenedor de imágenes.

uid

String

ID de usuario de un contenedor de imagen.

gid

String

ID de grupo de usuario de un contenedor de imagen.

Código de estado: 400

Tabla 12 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensaje de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 401

Tabla 13 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensaje de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 403

Tabla 14 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensaje de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 404

Tabla 15 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensaje de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 500

Tabla 16 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensaje de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Código de estado: 503

Tabla 17 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

error_msg

String

Mensaje de error.

Mínimo: 0

Máximo: 0

Mínimo: 0

Máximo: 0

Ejemplo de las solicitudes

Creación de una función.

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

Ejemplo de las respuestas

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

Bad request.

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

Código de estado: 401

Unauthorized.

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

Código de estado: 403

Forbidden.

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

Códigos de estado

Código de estado

Descripción

200

Aceptar

400

Solicitud incorrecta.

401

No autorizado.

403

Prohibido.

404

No se encontró ninguno.

500

Error de servidor interno.

503

Servicio no disponible

Códigos de error

Consulte Códigos de error.