Compartir a través de


Rules Engines - Create Or Update

Crea una nueva configuración del motor de reglas con el nombre especificado dentro de Front Door especificado.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/rulesEngines/{rulesEngineName}?api-version=2021-06-01

Parámetros de identificador URI

Nombre En Requerido Tipo Description
frontDoorName
path True

string

minLength: 5
maxLength: 64
pattern: ^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$

Nombre de Front Door que es único globalmente.

resourceGroupName
path True

string

minLength: 1
maxLength: 80
pattern: ^[a-zA-Z0-9_\-\(\)\.]*[^\.]$

Nombre del grupo de recursos dentro de la suscripción de Azure.

rulesEngineName
path True

string

minLength: 1
maxLength: 90
pattern: ^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$

Nombre del motor de reglas que es único dentro de Front Door.

subscriptionId
path True

string

Credenciales de suscripción que identifican de forma única la suscripción de Microsoft Azure. El identificador de suscripción forma parte del URI de cada llamada de servicio.

api-version
query True

string

Versión de la API de cliente.

Cuerpo de la solicitud

Nombre Tipo Description
properties.rules

RulesEngineRule[]

Lista de reglas que definen una configuración concreta del motor de reglas.

Respuestas

Nombre Tipo Description
200 OK

RulesEngine

De acuerdo

201 Created

RulesEngine

Creado

202 Accepted

RulesEngine

Aceptado

Other Status Codes

ErrorResponse

Respuesta de error de Front Door que describe por qué se produjo un error en la operación.

Seguridad

azure_auth

Flujo de OAuth2 de Azure Active Directory

Tipo: oauth2
Flujo: implicit
Dirección URL de autorización: https://login.microsoftonline.com/common/oauth2/authorize

Ámbitos

Nombre Description
user_impersonation suplantar la cuenta de usuario

Ejemplos

Create or update a specific Rules Engine Configuration

Solicitud de ejemplo

PUT https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1?api-version=2021-06-01

{
  "properties": {
    "rules": [
      {
        "name": "Rule1",
        "priority": 1,
        "action": {
          "routeConfigurationOverride": {
            "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
            "redirectType": "Moved",
            "redirectProtocol": "HttpsOnly",
            "customHost": "www.bing.com",
            "customPath": "/api",
            "customFragment": "fragment",
            "customQueryString": "a=b"
          }
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RemoteAddr",
            "rulesEngineOperator": "GeoMatch",
            "rulesEngineMatchValue": [
              "CH"
            ]
          }
        ],
        "matchProcessingBehavior": "Stop"
      },
      {
        "name": "Rule2",
        "priority": 2,
        "action": {
          "responseHeaderActions": [
            {
              "headerActionType": "Overwrite",
              "headerName": "Cache-Control",
              "value": "public, max-age=31536000"
            }
          ]
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RequestFilenameExtension",
            "rulesEngineOperator": "Equal",
            "rulesEngineMatchValue": [
              "jpg"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      },
      {
        "name": "Rule3",
        "priority": 3,
        "action": {
          "routeConfigurationOverride": {
            "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration",
            "customForwardingPath": null,
            "forwardingProtocol": "HttpsOnly",
            "cacheConfiguration": {
              "queryParameterStripDirective": "StripOnly",
              "queryParameters": "a=b,p=q",
              "dynamicCompression": "Disabled",
              "cacheDuration": "P1DT12H20M30S"
            },
            "backendPool": {
              "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/backendPools/backendPool1"
            }
          }
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RequestHeader",
            "rulesEngineOperator": "Equal",
            "rulesEngineMatchValue": [
              "allowoverride"
            ],
            "transforms": [
              "Lowercase"
            ],
            "negateCondition": false,
            "selector": "Rules-Engine-Route-Forward"
          }
        ]
      }
    ]
  }
}

Respuesta de muestra

{
  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1",
  "name": "rulesEngine1",
  "properties": {
    "rules": [
      {
        "name": "Rule1",
        "priority": 1,
        "action": {
          "routeConfigurationOverride": {
            "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
            "redirectType": "Moved",
            "redirectProtocol": "HttpsOnly",
            "customHost": "www.bing.com",
            "customPath": "/api",
            "customFragment": "fragment",
            "customQueryString": "a=b"
          }
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RemoteAddr",
            "rulesEngineOperator": "GeoMatch",
            "rulesEngineMatchValue": [
              "CH"
            ]
          }
        ],
        "matchProcessingBehavior": "Stop"
      },
      {
        "name": "Rule2",
        "priority": 2,
        "action": {
          "responseHeaderActions": [
            {
              "headerActionType": "Overwrite",
              "headerName": "Cache-Control",
              "value": "public, max-age=31536000"
            }
          ]
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RequestFilenameExtension",
            "rulesEngineOperator": "Equal",
            "rulesEngineMatchValue": [
              "jpg"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ]
  }
}
{
  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1",
  "name": "rulesEngine1",
  "properties": {
    "rules": [
      {
        "name": "Rule1",
        "priority": 1,
        "action": {
          "routeConfigurationOverride": {
            "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
            "redirectType": "Moved",
            "redirectProtocol": "HttpsOnly",
            "customHost": "www.bing.com",
            "customPath": "/api",
            "customFragment": "fragment",
            "customQueryString": "a=b"
          }
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RemoteAddr",
            "rulesEngineOperator": "GeoMatch",
            "rulesEngineMatchValue": [
              "CH"
            ]
          }
        ],
        "matchProcessingBehavior": "Stop"
      },
      {
        "name": "Rule2",
        "priority": 2,
        "action": {
          "responseHeaderActions": [
            {
              "headerActionType": "Overwrite",
              "headerName": "Cache-Control",
              "value": "public, max-age=31536000"
            }
          ]
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RequestFilenameExtension",
            "rulesEngineOperator": "Equal",
            "rulesEngineMatchValue": [
              "jpg"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ]
  }
}
{
  "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/rulesEngines/rulesEngine1",
  "name": "rulesEngine1",
  "properties": {
    "rules": [
      {
        "name": "Rule1",
        "priority": 1,
        "action": {
          "routeConfigurationOverride": {
            "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration",
            "redirectType": "Moved",
            "redirectProtocol": "HttpsOnly",
            "customHost": "www.bing.com",
            "customPath": "/api",
            "customFragment": "fragment",
            "customQueryString": "a=b"
          }
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "RemoteAddr",
            "rulesEngineOperator": "GeoMatch",
            "rulesEngineMatchValue": [
              "CH"
            ]
          }
        ],
        "matchProcessingBehavior": "Stop"
      },
      {
        "name": "Rule2",
        "priority": 2,
        "action": {
          "responseHeaderActions": [
            {
              "headerActionType": "Overwrite",
              "headerName": "Cache-Control",
              "value": "public, max-age=31536000"
            }
          ]
        },
        "matchConditions": [
          {
            "rulesEngineMatchVariable": "FilenameExtension",
            "rulesEngineOperator": "Equal",
            "rulesEngineMatchValue": [
              "jpg"
            ],
            "transforms": [
              "Lowercase"
            ]
          }
        ]
      }
    ]
  }
}

Definiciones

Nombre Description
CacheConfiguration

Configuración de almacenamiento en caché para una ruta de tipo de almacenamiento en caché. Para deshabilitar el almacenamiento en caché, no proporcione un objeto cacheConfiguration.

DynamicCompressionEnabled

Si se debe usar la compresión dinámica para el contenido almacenado en caché

ErrorResponse

La respuesta de error indica que el servicio Front Door no puede procesar la solicitud entrante. El motivo se proporciona en el mensaje de error.

ForwardingConfiguration

Describe la ruta de reenvío.

FrontDoorForwardingProtocol

Protocolo que usará esta regla al reenviar el tráfico a los back-end.

FrontDoorQuery

Tratamiento de los términos de consulta url al formar la clave de caché.

FrontDoorRedirectProtocol

Protocolo del destino al que se redirige el tráfico.

FrontDoorRedirectType

El tipo de redireccionamiento que usará la regla al redirigir el tráfico.

FrontDoorResourceState

Estado del recurso de Front Door o SubResource de Front Door.

HeaderAction

Acción que puede manipular un encabezado HTTP.

headerActionType

Tipo de manipulación que se va a aplicar al encabezado.

MatchProcessingBehavior

Si esta regla es una coincidencia, el motor de reglas seguirá ejecutando las reglas restantes o deténgase. Si no está presente, el valor predeterminado es Continuar.

RedirectConfiguration

Describe la ruta de redirección.

RulesEngine

Una configuración del motor de reglas que contiene una lista de reglas que se ejecutarán para modificar el comportamiento en tiempo de ejecución de la solicitud y la respuesta.

RulesEngineAction

Una o varias acciones que se ejecutarán, modificando la solicitud o la respuesta.

RulesEngineMatchCondition

Definición de una condición de coincidencia

RulesEngineMatchVariable

Coincidencia de variable

RulesEngineOperator

Describe el operador que se va a aplicar a la condición de coincidencia.

RulesEngineRule

Contiene una lista de condiciones de coincidencia y una acción sobre cómo modificar la solicitud o respuesta. Si coinciden varias reglas, las acciones de una regla que entran en conflicto con una regla anterior sobrescriben una acción singular o anexan en el caso de la manipulación de encabezados.

SubResource

Referencia a otro subrecurso.

transform

Describe qué transformaciones se aplican antes de que coincidan.

CacheConfiguration

Configuración de almacenamiento en caché para una ruta de tipo de almacenamiento en caché. Para deshabilitar el almacenamiento en caché, no proporcione un objeto cacheConfiguration.

Nombre Tipo Description
cacheDuration

string (duration)

Duración durante la que se debe almacenar en caché el contenido. El formato permitido está en formato ISO 8601 (http://en.wikipedia.org/wiki/ISO_8601#Durations). HTTP requiere que el valor no sea superior a un año.

dynamicCompression

DynamicCompressionEnabled

Si se debe usar la compresión dinámica para el contenido almacenado en caché

queryParameterStripDirective

FrontDoorQuery

Tratamiento de los términos de consulta url al formar la clave de caché.

queryParameters

string

parámetros de consulta para incluir o excluir (separados por comas).

DynamicCompressionEnabled

Si se debe usar la compresión dinámica para el contenido almacenado en caché

Valor Description
Disabled
Enabled

ErrorResponse

La respuesta de error indica que el servicio Front Door no puede procesar la solicitud entrante. El motivo se proporciona en el mensaje de error.

Nombre Tipo Description
code

string

Código de error.

message

string

Mensaje de error que indica por qué se produjo un error en la operación.

ForwardingConfiguration

Describe la ruta de reenvío.

Nombre Tipo Description
@odata.type string:

#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration

backendPool

SubResource

Referencia a backendPool a la que se enruta esta regla.

cacheConfiguration

CacheConfiguration

Configuración de almacenamiento en caché asociada a esta regla.

customForwardingPath

string

Ruta de acceso personalizada que se usa para reescribir las rutas de acceso de recursos coincidentes con esta regla. Deje vacío para usar la ruta de acceso entrante.

forwardingProtocol

FrontDoorForwardingProtocol

Protocolo que usará esta regla al reenviar el tráfico a los back-end.

FrontDoorForwardingProtocol

Protocolo que usará esta regla al reenviar el tráfico a los back-end.

Valor Description
HttpOnly
HttpsOnly
MatchRequest

FrontDoorQuery

Tratamiento de los términos de consulta url al formar la clave de caché.

Valor Description
StripAll
StripAllExcept
StripNone
StripOnly

FrontDoorRedirectProtocol

Protocolo del destino al que se redirige el tráfico.

Valor Description
HttpOnly
HttpsOnly
MatchRequest

FrontDoorRedirectType

El tipo de redireccionamiento que usará la regla al redirigir el tráfico.

Valor Description
Found
Moved
PermanentRedirect
TemporaryRedirect

FrontDoorResourceState

Estado del recurso de Front Door o SubResource de Front Door.

Valor Description
Creating
Deleting
Disabled
Disabling
Enabled
Enabling
Migrated
Migrating

HeaderAction

Acción que puede manipular un encabezado HTTP.

Nombre Tipo Description
headerActionType

headerActionType

Tipo de manipulación que se va a aplicar al encabezado.

headerName

string

Nombre del encabezado al que se aplicará esta acción.

value

string

Valor con el que se va a actualizar el nombre de encabezado especificado. Este valor no se usa si actionType es Delete.

headerActionType

Tipo de manipulación que se va a aplicar al encabezado.

Valor Description
Append
Delete
Overwrite

MatchProcessingBehavior

Si esta regla es una coincidencia, el motor de reglas seguirá ejecutando las reglas restantes o deténgase. Si no está presente, el valor predeterminado es Continuar.

Valor Description
Continue
Stop

RedirectConfiguration

Describe la ruta de redirección.

Nombre Tipo Description
@odata.type string:

#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration

customFragment

string

Fragmento que se va a agregar a la dirección URL de redireccionamiento. El fragmento es la parte de la dirección URL que viene después de #. No incluya #.

customHost

string

Host para redirigir. Deje vacío para usar el host entrante como host de destino.

customPath

string

Ruta de acceso completa que se va a redirigir. La ruta de acceso no puede estar vacía y debe comenzar con /. Deje vacío para usar la ruta de acceso entrante como ruta de acceso de destino.

customQueryString

string

Conjunto de cadenas de consulta que se colocarán en la dirección URL de redireccionamiento. Establecer este valor reemplazaría cualquier cadena de consulta existente; deje vacío para conservar la cadena de consulta entrante. La cadena de consulta debe estar en formato = . ¿La primera? y & se agregarán automáticamente, por lo que no los incluyan en el frente, pero separe varias cadenas de consulta con &.

redirectProtocol

FrontDoorRedirectProtocol

Protocolo del destino al que se redirige el tráfico.

redirectType

FrontDoorRedirectType

El tipo de redireccionamiento que usará la regla al redirigir el tráfico.

RulesEngine

Una configuración del motor de reglas que contiene una lista de reglas que se ejecutarán para modificar el comportamiento en tiempo de ejecución de la solicitud y la respuesta.

Nombre Tipo Description
id

string

Identificador de recurso.

name

string

Nombre del recurso.

properties.resourceState

FrontDoorResourceState

Estado del recurso de Front Door o SubResource de Front Door.
Estado del recurso.

properties.rules

RulesEngineRule[]

Lista de reglas que definen una configuración concreta del motor de reglas.

type

string

Tipo de recurso.

RulesEngineAction

Una o varias acciones que se ejecutarán, modificando la solicitud o la respuesta.

Nombre Tipo Description
requestHeaderActions

HeaderAction[]

Lista de acciones de encabezado que se van a aplicar desde la solicitud de AFD al origen.

responseHeaderActions

HeaderAction[]

Lista de acciones de encabezado que se van a aplicar desde la respuesta de AFD al cliente.

routeConfigurationOverride RouteConfiguration:

Invalide la configuración de ruta.

RulesEngineMatchCondition

Definición de una condición de coincidencia

Nombre Tipo Description
negateCondition

boolean

Describe si se trata de una condición negada o no

rulesEngineMatchValue

string[]

Coincide con los valores con los que buscar coincidencias. El operador se aplicará a cada valor de aquí con semántica OR. Si alguno de ellos coincide con la variable con el operador especificado, esta condición de coincidencia se considera una coincidencia.

rulesEngineMatchVariable

RulesEngineMatchVariable

Coincidencia de variable

rulesEngineOperator

RulesEngineOperator

Describe el operador que se va a aplicar a la condición de coincidencia.

selector

string

Nombre del selector en RequestHeader o RequestBody que se va a buscar coincidencia

transforms

transform[]

Lista de transformaciones

RulesEngineMatchVariable

Coincidencia de variable

Valor Description
IsMobile
PostArgs
QueryString
RemoteAddr
RequestBody
RequestFilename
RequestFilenameExtension
RequestHeader
RequestMethod
RequestPath
RequestScheme
RequestUri

RulesEngineOperator

Describe el operador que se va a aplicar a la condición de coincidencia.

Valor Description
Any
BeginsWith
Contains
EndsWith
Equal
GeoMatch
GreaterThan
GreaterThanOrEqual
IPMatch
LessThan
LessThanOrEqual

RulesEngineRule

Contiene una lista de condiciones de coincidencia y una acción sobre cómo modificar la solicitud o respuesta. Si coinciden varias reglas, las acciones de una regla que entran en conflicto con una regla anterior sobrescriben una acción singular o anexan en el caso de la manipulación de encabezados.

Nombre Tipo Description
action

RulesEngineAction

Acciones que se deben realizar en la solicitud y respuesta si se cumplen todas las condiciones de coincidencia.

matchConditions

RulesEngineMatchCondition[]

Lista de condiciones de coincidencia que deben cumplirse para que se ejecuten las acciones de esta regla. No tener condiciones de coincidencia significa que las acciones siempre se ejecutarán.

matchProcessingBehavior

MatchProcessingBehavior

Si esta regla es una coincidencia, el motor de reglas seguirá ejecutando las reglas restantes o deténgase. Si no está presente, el valor predeterminado es Continuar.

name

string

Un nombre para hacer referencia a esta regla específica.

priority

integer

Prioridad asignada a esta regla.

SubResource

Referencia a otro subrecurso.

Nombre Tipo Description
id

string

Identificador de recurso.

transform

Describe qué transformaciones se aplican antes de que coincidan.

Valor Description
Lowercase
RemoveNulls
Trim
Uppercase
UrlDecode
UrlEncode