Todos os produtos
Search
Central de documentação

EventBridge:Transformação de eventos em fluxos de eventos

Última atualização: Jun 28, 2026

Destinos de eventos frequentemente exigem uma estrutura de payload diferente do formato padrão CloudEvents 1.0 que o EventBridge usa internamente. A transformação de eventos remodela o payload antes de o EventBridge roteá-lo por um fluxo de eventos até o destino. Assim, é possível adequar os dados ao formato esperado sem escrever código adaptador.

Métodos de transformação

Quatro métodos determinam o que o destino recebe:

Método

Comportamento

Quando usar

Evento completo

Encaminha todo o payload CloudEvents sem alterações

O destino aceita CloudEvents diretamente

Evento parcial

Extrai campos específicos com JSONPath

O destino precisa apenas de um subconjunto do evento

Constante

Envia um valor fixo e ignora o conteúdo do evento

O evento funciona como gatilho; seu payload é irrelevante

Modelo

Extrai campos para variáveis e compõe uma saída personalizada

O destino exige uma estrutura de payload específica

Todos os exemplos nesta página usam o seguinte evento de amostra como entrada:

{
    "id": "7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source": "acs.oss",
    "specversion": "1.0",
    "type": "oss:ObjectCreated:PostObject",
    "datacontenttype": "application/json",
    "dataschema": "http://example.com/test.json",
    "subject": "acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time": "2020-08-17T16:04:46.149Asia/Shanghai",
    "aliyuneventbusname": "demo-bus",
    "aliyunregionid": "Shanghai",
    "data": {
        "name": "test",
        "scope": 100
    }
}

Evento completo

O método de evento completo encaminha todo o payload CloudEvents ao destino sem modificações.

Saída: Idêntica à entrada. Todos os campos do envelope CloudEvents e o payload data são preservados.

Evento parcial

O evento parcial usa uma expressão JSONPath para extrair campos específicos do payload CloudEvents e entrega apenas esses campos ao destino.

JSONPath: $.data

Saída:

{
    "name": "test",
    "scope": 100
}

Apenas o conteúdo correspondente é entregue. Os campos do envelope CloudEvents (id, source, type e outros) são removidos.

Constante

O método constante envia um valor fixo ao destino, independentemente do conteúdo do evento. O evento serve apenas como gatilho.

Valor constante:

{
    "name": "test"
}

Saída:

{
    "name": "test"
}

O conteúdo do evento é ignorado. O valor constante é enviado exatamente como definido.

Modelo

A transformação por modelo funciona em duas etapas:

  1. Extrair -- Defina variáveis que obtêm valores do evento via JSONPath ou atribua strings fixas.

  2. Compor -- Construa uma saída personalizada referenciando essas variáveis com a sintaxe ${variable}.

Esse método oferece controle total sobre o payload entregue.

Regras de variáveis

Restrição

Detalhe

Fontes de valor

Expressão JSONPath (ex.: $.data.name) ou string fixa

Aninhamento

Não há suporte nas definições de variáveis

Saída JSON com fontes mistas

Combine um campo extraído com uma mensagem fixa:

Variáveis:

{
    "name": "$.data.name",
    "constant": "Please deal with it timely."
}

Modelo:

{
    "name": "${name}",
    "constant": "${constant}"
}

Saída:

{
    "name": "test",
    "constant": "Please deal with it timely."
}

Saída em texto simples

Crie uma string de notificação a partir dos campos do evento:

Neste exemplo, o campo data do evento de entrada contém {"name": "test", "state": "RUNNING"}.

Variáveis:

{
    "name": "$.data.name",
    "state": "$.data.state"
}

Modelo:

The ${name} is in ${state} state.

Saída:

The test is in RUNNING state.

Funções de escape

Valores de variáveis com caracteres especiais podem corromper o formato de saída. Use as funções de escape integradas para tratá-los com segurança.

jsonEscape

Essa função aplica escape em caracteres especiais de strings JSON para evitar saídas malformadas. Use-a ao incorporar variáveis em campos de string JSON.

Variáveis:

{
    "var": "\"abc\""
}

Modelo:

{
    "text": "var is ${jsonEscape(var)}"
}

Saída:

{
    "text": "var is \"abc\""
}

htmlEscape

Converte caracteres especiais HTML em suas entidades equivalentes para renderização como texto simples. Aplique essa função para prevenir injeção de scripts quando a saída contiver conteúdo gerado por usuários.

Variáveis:

{
    "var": "<script>alert('unsafe');</script>"
}

Modelo:

<p>User Input: ${htmlEscape(var)}</p>

Saída:

<p>User Input: &lt;script&gt;alert('unsafe');&lt;/script&gt;</p>

Problemas comuns

Problema

Causa

Solução

Variável não substituída na saída

A expressão JSONPath não corresponde a nenhum campo no evento

Verifique o JSONPath em relação à estrutura real do evento. Se o caminho não corresponder, a variável não será criada e aparecerá como a string literal ${variable} na saída.

Saída JSON malformada

O valor da variável contém caracteres especiais (aspas, barras invertidas)

Envolva a referência da variável com jsonEscape(). Por exemplo, ${jsonEscape(var)}.

Injeção de HTML na saída

O valor da variável contém tags HTML

Envolva a referência da variável com htmlEscape(). Por exemplo, ${htmlEscape(var)}.

Saída do modelo truncada

O valor da variável excede o comprimento máximo

Reduza o valor da variável ou divida o payload em múltiplas variáveis.

Veja também