Ejemplos de planes de uso
Descubra ejemplos de planes de uso para gestionar el acceso de suscriptores a API con API Gateway.
Ejemplo 1: Dos planes de uso diferentes (para un nivel "Gratis" y un nivel "Premio") para el mismo despliegue de API
En este ejemplo se muestra cómo, como gestor de planes de API, puede crear dos planes de uso para el mismo despliegue de API:
- El plan de uso
Free Tier
, que limita el acceso de API tanto por el número de llamadas permitidas por segundo (en este caso, un máximo de 1 llamada por segundo), como por el número total de llamadas en un día determinado (en este caso, diez llamadas por día). - El plan de uso
Premium Tier
, que permite llamadas ilimitadas por día y limita el acceso de API a un máximo de 1 llamada por segundo.
El plan de uso Free Tier
se define en un archivo JSON como:
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
"displayName": "Free Tier",
"description": "Usage plan for free tier subscribers",
"entitlements": [{
"name": "Entitlement1",
"rateLimit": {
"value": 1,
"unit": "SECOND"
},
"quota": {
"value": 10,
"unit": "DAY",
"resetPolicy": "CALENDAR",
"operationOnBreach": "REJECT"
},
"targets": [{
"deploymentId": "ocid1.apideployment.oc1..aaaaaaaaab______pwa"
}]
}]
}
El plan de uso Premium Tier
se define en un archivo JSON como:
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
"displayName": "Premium Tier",
"description": "Usage plan for premium tier subscribers",
"entitlements": [{
"name": "Entitlement1",
"rateLimit": {
"value": 1,
"unit": "SECOND"
},
"targets": [{
"deploymentId": "ocid1.apideployment.oc1..aaaaaaaaab______pwa"
}]
}]
}
Ejemplo 2: diferentes cuotas para diferentes despliegues de API
En este ejemplo se muestra cómo, como gestor de planes de API, puede crear un único plan de uso que especifique una cuota compartida para dos despliegues de API en el mismo derecho y también una cuota independiente para un despliegue de API diferente en un derecho diferente en el mismo plan de uso.
El plan de uso Multi-Quota
se define en un archivo JSON como:
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
"displayName": "Multi-Quota",
"description": "Usage plan with different quotas for different API deployments",
"entitlements": [{
"name": "Entitlement1",
"rateLimit": {
"value": 1,
"unit": "SECOND"
},
"quota": {
"value": 10,
"unit": "DAY",
"resetPolicy": "CALENDAR",
"operationOnBreach": "REJECT"
},
"targets": [{"deploymentId": "ocid1.apideployment.oc1..aaaaaaaaab______xxx"},
{"deploymentId": "ocid1.apideployment.oc1..aaaaaaaaab______yyy"}]
}, {
"name": "Entitlement2",
"rateLimit": {
"value": 15,
"unit": "SECOND"
},
"quota": {
"value": 50,
"unit": "MONTH",
"resetPolicy": "CALENDAR",
"operationOnBreach": "ALLOW"
},
"targets": [{"deploymentId": "ocid1.apideployment.oc1..aaaaaaaaab______zzz"}]
}]
}
Ejemplo 3: cuota ilimitada para un despliegue de API específico
En este ejemplo se muestra cómo, como gestor de planes de API, puede incluir un despliegue de API en un plan de uso y especificar una cuota ilimitada para él. En este caso, el plan de uso limita el acceso de API a un máximo de 1 llamada por segundo.
El plan de uso Unlimited Quota
se define en un archivo JSON como:
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
"displayName": "Unlimited Quota",
"description": "Usage plan with unlimited quota",
"entitlements": [{
"name": "Entitlement1",
"rateLimit": {
"value": 1,
"unit": "SECOND"
},
"targets": [{
"deploymentId": "ocid1.apideployment.oc1..aaaaaaaaab______pwa"
}]
}]
}
Ejemplo 4: sin límite de frecuencia para un despliegue de API específico
En este ejemplo se muestra cómo, como gestor de planes de API, puede incluir un despliegue de API en un plan de uso y no especificar un límite de frecuencia para él. En este caso, el plan de uso establece una cuota sobre el número total de llamadas en un día determinado (en este caso, diez llamadas por día)
El plan de uso Unlimited Rate Limit
se define en un archivo JSON como:
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
"displayName": "Unlimited Rate Limit",
"description": "Usage plan with unlimited rate limit",
"entitlements": [{
"name": "Entitlement1",
"quota": {
"value": 10,
"unit": "DAY",
"resetPolicy": "CALENDAR",
"operationOnBreach": "REJECT"
},
"targets": [{
"deploymentId": "ocid1.deployment.1"
}]
}]
}
Ejemplo 5: cuota ilimitada y sin límite de frecuencia para un despliegue de API específico
En este ejemplo se muestra cómo, como gestor de planes de API, puede incluir un despliegue de API en un plan de uso y no especificar una cuota o un límite de frecuencia. Tenga en cuenta que, en este caso, los clientes de API que envían una solicitud al despliegue de API deben incluir un token de cliente en la solicitud.
El plan de uso Unlimited
se define en un archivo JSON como:
{
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa7______ysq",
"displayName": "Unlimited",
"description": "Usage plan with no quota unlimited rate limit",
"entitlements": [{
"name": "Entitlement1",
"targets": [{
"deploymentId": "ocid1.deployment.1"
}]
}]
}
Ejemplo 6: activación de una alarma cuando el uso de cuota alcanza un umbral de riesgo
En este ejemplo se muestra cómo, como gestor de planes de API, puede escribir una consulta de métricas para disparar una alarma cuando un suscriptor consume más del 80% de la cuota de un derecho en un plan de uso.
Mediante el servicio Monitoring, puede definir la alarma de umbral introduciendo:
SubscriberQuotaProportionUsed[1m].groupBy(resourceId,usagePlanId,entitlementName).mean() > 0.80
Para obtener más información, consulte Creación de consultas de métricas.