Configuración de la notificación de ejecución asincrónica
Después de crear una función, configure la notificación de ejecución asíncrona para enviar los resultados de la ejecución al servicio de destino.
- Si se muestra un mensaje que indica permisos insuficientes al configurar la notificación de ejecución asincrónica, agregue el permiso de FunctionGraph Administrator. Para obtener más información, consulte Creación de un usuario y concesión de permisos.
- Establezca una delegación que permita a FunctionGraph acceder al servicio de destino.
- Para evitar la invocación cíclica, no establezca dos funciones como objetivos de ejecución asincrónica entre sí.
Procedimiento
- Inicie sesión en la consola de FunctionGraph. En el panel de navegación, seleccione Functions > Function List.
- Haga clic en la función que se va a configurar para ir a la página de detalles de la función.
- Seleccione Configuration > Configure Async Notification. En la página mostrada, haga clic en Edit junto a Asynchronous Notification Policy.
Figura 1 Configuración de una política de notificación asincrónica
- Establezca los parámetros haciendo referencia a Tabla 1. Por ejemplo, especifique FunctionGraph para el Target Service.
Figura 2 Configuración de parámetros
Tabla 1 Descripción del parámetro Parámetro
Descripción
Asynchronous Execution Notification Policy
- Max. Retries: número máximo de reintentos cuando falla la invocación asincrónica. Rango de valores: 0–3. Valor predeterminado: 1.
- Max. Período de validez (s): duración máxima de un mensaje en segundos. Rango de valores: 1–86,400.
Success Notification
Target Service: al que se enviará una notificación si una función se ejecuta correctamente.
- FunctionGraph
- OBS
- DIS
- SMN
Failure Notification
Target Service: al que se enviará una notificación si una función no se ejecuta.
- FunctionGraph
- OBS
- DIS
- SMN
- Haz clic en OK.
Descripción de la configuración
Para obtener detalles sobre cómo establecer el destino para la invocación asincrónica, consulte Tabla 2. A continuación se muestra un ejemplo:
{ "timestamp": "2020-08-20T12:00:00.000Z", "request_context": { "request_id": "1167bf8c-87b0-43ab-8f5f-26b16c64f252", "function_urn": "urn:fss:xx-xxxx-x:xxxxxxx:function:xxxx:xxxx:latest", "condition": "", "approximate_invoke_count": 0 }, "request_payload": "", "response_context": { "status_code": 200, "function_error": "" }, "response_payload": "hello world!" }
Parámetro |
Descripción |
---|---|
timestamp |
Hora en que comienza la invocación. |
request_context |
Contexto de solicitud. |
request_context.request_id |
ID de una solicitud de invocación asincrónica. |
request_context. function_urn |
URN de la función que se va a ejecutar asincrónicamente. |
request_context.condition |
Tipo de error de invocación. |
request_context. approximate_invoke_count |
Número de tiempos de invocación asíncrona. Si el valor es mayor que 1, se ha reintentado la ejecución de la función. |
request_payload |
Carga útil de solicitud original. |
response_context |
Contexto de respuesta. |
response_context.statusCode |
Código devuelto después de la invocación de la función. Si el código no es 200, se produjo un error del sistema. |
response_context.function_error |
Información de error de invocación. |
response_payload |
Carga útil devuelta después de la ejecución de la función. |