Configuração da notificação de execução assíncrona
Depois que uma função for criada, configure a notificação de execução assíncrona para enviar os resultados da execução ao serviço de destino.
- Se uma mensagem indicando permissões insuficientes for exibida quando você configurar a notificação de execução assíncrona, adicione a permissão de FunctionGraph Administrator. Para obter detalhes, consulte Criação de um usuário e concessão de permissões.
- Defina uma agência que permita que o FunctionGraph acesse o serviço de destino.
- Para evitar invocação cíclica, não defina duas funções como alvos de execução assíncronas uma da outra.
Procedimento
- Efetue log-in no Console do FunctionGraph. No painel de navegação, escolha Functions > Function List.
- Clique na função a ser configurada para ir para a página de detalhes da função.
- Escolha Configuration > Configure Async Notification. Na página exibida, clique em Edit ao lado de Asynchronous Notification Policy.
Figura 1 Configuração de uma política de notificação assíncrona
- Defina parâmetros referindo-se a Tabela 1. Por exemplo, especifique FunctionGraph para Target Service.
Figura 2 Definição de parâmetros
Tabela 1 Descrição do parâmetro Parâmetro
Descrição
Asynchronous Execution Notification Policy
- Max. Retries: número máximo de tentativas quando a invocação assíncrona falha. Intervalo do valor: 0–3. Valor padrão: 1.
- Max. Validity Period (s): duração máxima de uma mensagem em segundos. Intervalo do valor: 1–86.400.
Success Notification
Target Service: para o qual uma notificação será enviada se uma função for executada com sucesso.
- FunctionGraph
- OBS
- DIS
- SMN
Failure Notification
Target Service: para o qual será enviada uma notificação se uma função não for executada.
- FunctionGraph
- OBS
- DIS
- SMN
- Clique em OK.
Descrição de configuração
Para obter detalhes sobre como definir o alvo para invocação assíncrona, consulte Tabela 2. A seguir, mostramos um exemplo:
{ "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 |
Descrição |
---|---|
timestamp |
Hora em que a invocação começa. |
request_context |
Solicite contexto. |
request_context.request_id |
ID de uma solicitação de invocação assíncrona. |
request_context. function_urn |
URN da função que deve ser executada de forma assíncrona. |
request_context.condition |
Tipo de erro de invocação. |
request_context. approximate_invoke_count |
Número de tempos de chamada assíncrona. Se o valor for maior que 1, a execução da função foi repetida. |
request_payload |
Carga de solicitação original. |
response_context |
Contexto de resposta. |
response_context.statusCode |
Código retornado após a invocação da função. Se o código não for 200, ocorreu um erro de sistema. |
response_context.function_error |
Informações de erro de invocação. |
response_payload |
Payload retornado após a execução da função. |