Interatividade no widget personalizado
Mesmo que o JavaScript não seja permitido, há outras maneiras de permitir a interatividade com o HTML retornado.
Qualquer elemento no HTML retornado pode ser marcado com configuração especial em uma etiqueta
<cwdb-action>
, que pode exibir informações em pop-ups, solicitar confirmação em cliques e chamar qualquer função Lambda quando esse elemento for escolhido. Por exemplo, é possível definir botões que chamem qualquer API da AWS usando uma função Lambda. O HTML retornado pode ser definido para substituir o conteúdo do widget do Lambda existente ou ser exibido dentro de um modal.O HTML retornado pode conter links que abrem novos consoles, abrem outras páginas de clientes ou carregam outros painéis.
O HTML pode incluir o atributo
title
em um elemento, o que fornecerá informações adicionais se o usuário passar o mouse sobre esse elemento.O elemento pode incluir seletores CSS, como
:hover
, que pode invocar animações ou outros efeitos de CSS. Também é possível mostrar ou ocultar elementos na página.
Definição e uso do <cwdb-action>
O elemento <cwdb-action>
define um comportamento no elemento imediatamente anterior. O conteúdo do <cwdb-action>
é HTML para exibir ou um bloco JSON de parâmetros para passar para uma função Lambda.
A seguir há um exemplo de um elemento <cwdb-action>
.
<cwdb-action action="
call
|html
" confirmation="message
" display="popup
|widget
" endpoint="<lambda ARN>" event="click
|dblclick
|mouseenter
"> html | params in JSON </cwdb-action>
action: os valores válidos são
call
, que chama uma função Lambda, ehtml
, que exibe qualquer HTML contido em<cwdb-action>
. O padrão éhtml
.confirmation: exibe uma mensagem de confirmação que deve ser confirmada antes da ação ser executada, permitindo que o cliente cancele.
display: os valores válidos são
popup
ewidget
, que substituem o conteúdo do próprio widget. O padrão éwidget
.endpoint: o nome do recurso da Amazon (ARN) da função Lambda a ser invocada. Isso será necessário se
action
forcall
.event: define o evento no elemento anterior que invoca a ação. Os valores válidos são
click
,dblclick
emouseenter
. O eventomouseenter
só pode ser usado em combinação com a açãohtml
. O padrão éclick
.
Exemplos
Veja a seguir um exemplo de como usar a etiqueta <cwdb-action>
para criar um botão que reinicializa uma instância do Amazon EC2 usando uma chamada de função Lambda. Exibe o êxito ou a falha da chamada em um pop-up.
<a class="btn">Reboot Instance</a> <cwdb-action action="call" endpoint="arn:aws:lambda:us-east-1:123456:function:rebootInstance" display="popup"> { "instanceId": "i-342389adbfef" } </cwdb-action>
O próximo exemplo exibe mais informações em um pop-up.
<a>Click me for more info in popup</a> <cwdb-action display="popup"> <h1>Big title</h1> More info about <b>something important</b>. </cwdb-action>
Este exemplo é um botão Next (Próximo) que substitui o conteúdo de um widget por uma chamada para uma função Lambda.
<a class="btn btn-primary">Next</a> <cwdb-action action="call" endpoint="arn:aws:lambda:us-east-1:123456:function:nextPage"> { "pageNum": 2 } </cwdb-action>