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 2023-03-29 GMT+08:00

Configuración de una función para un gateway

Función

Esta API se utiliza para configurar una función para un gateway.

En la siguiente tabla se enumeran las características y los ejemplos de configuración compatibles.

Nombre de la función Descripción de la función Ejemplo de configuración Nombre del parámetro Descripción del parámetro Valor predeterminado Rango de valores
lts Informes de registros de acceso de Shubao {"name":"lts","enable":true,"config": "{\"group_id\": ",\"topic_id\":\"\",\"log_group\":\"\",\"log_stream\":\"\"}"} (1) group_id (2) topic_id (3) log_group (4) log_stream (1) ID de grupo de log. (2) ID de flujo de log. (3) Nombre del grupo de log. (4) Nombre del flujo de log. - -
ratelimit Solicitar configuración de límite de regulación {"name":"ratelimit","enable":true,"config": "{\"api_limits\": 500}"} api_limits Límite de limitación de solicitudes predeterminado para las API. Establezca este parámetro correctamente para cumplir con sus requisitos de servicio. Un pequeño valor puede acelerar constantemente sus servicios. 200 calls/second 1–1,000,000 calls/second
request_body_size Configuración del tamaño máximo del cuerpo de la solicitud {"name":"request_body_size","enable":true,"config": "104857600"} request_body_size El tamaño máximo de cuerpo permitido para una solicitud. 12 MB 1–9536 MB
backend_timeout Configuración de tiempo de espera de backend máximo {"name":"backend_timeout","enable":true,"config": "{"max_timeout": 500}"} max_timeout Tiempo de espera máximo permitido para que API Gateway solicite el servicio de backend. 60,000 ms 1–600,000 ms
app_token autenticación de app_token {"name":"app_token","enable":true,"config": "{\"enable\": \"on\", \"app_token_expire_time\": 3600, \"app_token_uri\": \"/v1/apigw/oauth2/token\", \"refresh_token_expire_time\": 7200}"} (1) enable (2) app_token_expire_time (3) refresh_token_expire_time (4) app_token_uri (5) app_token_key (1) Si se debe habilitar esta función. (2) Período de validez del token de acceso. (3) Actualizar el período de validez del token. (4) URI para obtener un token. (5) Clave de encriptación de token. (1) off (2) 3600s (3) 7200s (4) /v1/apigw/oauth2/token (1) on/off (2) 1–72,000s (3) 1–72,000s
app_api_key autenticación de app_api_key {"name":"app_api_key","enable":true,"config": "on"} - - off on/off
app_basic autenticación de app_basic {"name":"app_basic","enable":true,"config": "on"} - - off on/off
app_secret autenticación de app_secret {"name":"app_secret","enable":true,"config": "on"} - - off on/off
app_jwt autenticación de app_jwt {"name":"app_jwt","enable":true,"config": "{\"enable\": \"on\", \"auth_header\": \"Authorization\"}"} (1) enable (2) auth_header (1) Si se debe habilitar la autenticación app_jwt. (2) encabezado de autenticación de app_jwt. (1) off (2) Authorization (1) on/off
public_key firmas de backend de public_key {"name":"public_key","enable":true,"config": "{\"enable\": \"on\", \"public_key_uri_prefix\": \"/apigw/authadv/v2/public-key/\"}"} (1) enable (2) public_key_uri_prefix (1) Si se debe habilitar la autenticación app_jwt. (2) Prefijo URI utilizado para obtener la clave pública. (1) off(2) /apigw/authadv/v2/public-key/ (1) on/off
backend_token_allow Permitir que los inquilinos transmitan tokens de forma transparente al backend {"name":"backend_token_allow","enable":true,"config": "{\"backend_token_allow_users\": [\"user_name\"]}"} backend_token_allow_users Lista blanca de inquilinos que permiten transmitir tokens de forma transparente al backend. El valor es una expresión regular de nombres de dominio. - -
backend_client_certificate Autenticación bidireccional de backend {"name":"backend_client_certificate","enable":true,"config": "{\"enable\": \"on\",\"ca\": \"\",\"content\": \"\",\"key\": \"\"}"} (1) enable (2) ca (3) content (4) key (1) Si se debe habilitar esta función. (2) Archivo CA de autenticación bidireccional. (3) Archivo de autenticación bidireccional. (4) Clave privada de autenticación bidireccional. (1) off (1) on/off
ssl_ciphers Conjuntos de cifrado HTTPS {"name":"ssl_ciphers","enable":true,"config": "config": "{\"ssl_ciphers\": [\"ECDHE-ECDSA-AES256-GCM-SHA384\"]}"} ssl_ciphers Conjuntos de cifrado admitidos. El parámetro ssl_ciphers no se puede dejar en blanco y solo puede contener las opciones en el rango de valores. - ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256
real_ip_from_xff Si se utiliza el encabezado X-Forwarded-For para especificar direcciones IP de origen para el control de acceso y la limitación de solicitudes. {"name":"real_ip_from_xff","enable": true,"config": "{\"enable\": \"on\",\"xff_index\": 1}"} (1) enable (2) xff_index (1) Si se debe habilitar esta función. (2) Índice de la dirección IP de origen en el encabezado X-Forwarded-For. (Se permiten números negativos y –1 es el último índice). (1) off (2) -1 (1) on/off (2) Valid Int32 value
app_route Si se debe permitir el acceso a la dirección IP. {"name":"app_route","enable":true,"config": "on"} - - off on/off
vpc_name_modifiable Modificación del nombre del canal de balanceo de carga {"name":"vpc_name_modifiable","enable":true,"config": "on"} - - on on/off
default_group_host_trustlist Acceso al grupo DEFAULT desde direcciones IP que no son direcciones de acceso entrantes de el gateway actual {"name":"default_group_host_trustlist","enable": true,"config": "{\"enable\":\"on\",\"hosts\":[\"123.2.2.2\",\"202.2.2.2\"]}"} (1) enable (2) hosts (1) Si se debe habilitar esta función. (2) Direcciones IP que no son direcciones de acceso entrantes de gatway actual. - (1) on/off
throttle_strategy Si se activa la limitación de solicitudes. {"name":"throttle_strategy","enable":true,"config": "{\"enable\": \"on\",\"strategy\": \"local\"}"} (1) enable (2) strategy (1) Si se debe habilitar esta función. (2) Solicitar el modo de limitación. (1) off (1) on/off (2) cluster/local
custom_log Si desea imprimir encabezados de solicitud personalizados, cadenas de consulta y cookies en logs. {"name":"custom_log","enable":true,"config": "{\"custom_logs\":[{\"location\":\"header\",\"name\":\"a1234\"}]}"} (1) custom_logs (2) location (3) name (1) Logs personalizados. (2) Ubicación. (3) Nombre. - (1) Max. 10 items. (2) header/query/cookie
real_ip_header_getter Si se debe utilizar un encabezado personalizado para obtener direcciones IP de origen. {"name":"real_ip_header_getter","enable":true,"config": "{\"enable\": \"on\",\"header_getter\": \"header:testIP\"}"} (1) enable (2) header_getter (1) Si se debe habilitar esta función. (2) Encabezado personalizado para obtener direcciones IP de origen. (1) off (1) on/off
policy_cookie_param Whether to support cookies in backend policy conditions. {"name":"policy_cookie_param","enable":true,"config": "on"} - - off on/off

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/features

Tabla 1 Parámetros de path

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener detalles sobre cómo obtener un ID de proyecto, consulte "Apéndice" > "Obtención de un ID de proyecto" en este documento.

instance_id

String

Gateway ID, que se puede obtener de la información de gateway en la consola APIG.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Token de usuario. Se puede obtener llamando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es un token.

Tabla 3 Parámetros de body de solicitud

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre de función.

Mínimo: 1

Máximo: 64

enable

Boolean

Indica si se debe habilitar la función.

config

No

String

Configuración de parámetros.

Parámetros de respuesta

Código de estado: 201

Tabla 4 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

id

String

ID de función.

name

String

Nombre de función.

Mínimo: 1

Máximo: 64

enable

Boolean

Indica si se debe habilitar la función.

config

String

Configuración de parámetros.

instance_id

String

ID de gateway.

update_time

String

Tiempo de actualización de la función.

Código de estado: 400

Tabla 5 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 401

Tabla 6 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 403

Tabla 7 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 404

Tabla 8 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 500

Tabla 9 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Solicitudes de ejemplo

{
  "name" : "app_api_key",
  "config" : "on",
  "enable" : true
}

Ejemplo de respuestas

Código de estado: 201

Created

{
  "config" : "on",
  "enable" : true,
  "id" : "db9a9260cd3e4a16a9b5747a65d3ffaa",
  "instance_id" : "eddc4d25480b4cd6b512f270a1b8b341",
  "name" : "app_api_key",
  "update_time" : "2020-08-24T01:17:31.041984021Z"
}

Código de estado: 400

Bad Request

{
  "error_code" : "APIG.2000",
  "error_msg" : "unrecognized feature app-api-key"
}

Código de estado: 401

Unauthorized

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

Código de estado: 403

Forbidden

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

Código de estado: 404

Not Found

{
  "error_code" : "APIG.3030",
  "error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341"
}

Código de estado: 500

Internal Server Error

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

Códigos de estado

Código de estado

Descripción

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

500

Internal Server Error

Códigos de error

Consulte Códigos de error.