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
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
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 |
Sí |
String |
Gateway ID, que se puede obtener de la información de gateway en la consola APIG. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre de función. Mínimo: 1 Máximo: 64 |
enable |
Sí |
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
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
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 401
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 403
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 404
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 500
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.