As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acionador do Lambda de mensagem personalizada
Quando você tiver um padrão externo para as mensagens de e-mail e SMS que deseja enviar aos seus usuários, ou quando quiser aplicar sua própria lógica em tempo de execução à formatação das mensagens do usuário, adicione um acionador de mensagem personalizada ao grupo de usuários. A mensagem personalizada do Lambda recebe o conteúdo de todas as mensagens de e-mail e SMS antes que seu grupo de usuários as envie. Sua função do Lambda então tem a oportunidade de modificar o conteúdo e o assunto da mensagem.
O Amazon Cognito invoca esse acionador antes de enviar um e-mail, uma mensagem de verificação de telefone ou um código de autenticação multifator (MFA). Você pode personalizar a mensagem dinamicamente com o acionador de mensagem personalizado.
A solicitação inclui codeParameter. Essa string funciona como espaço reservado no código que o Amazon Cognito fornece ao usuário. Insira a string codeParameter no corpo da mensagem, na posição em que você deseja que o código de verificação apareça. Quando o Amazon Cognito recebe essa resposta, ele substitui a string codeParameter pelo código de verificação real.
nota
O evento de entrada para uma função Lambda de mensagem personalizada com a fonte do CustomMessage_AdminCreateUser acionador inclui um nome de usuário e um código de verificação. Como um usuário criado pelo administrador deve receber o nome de usuário e o código, a resposta da sua função deve incluir variáveis de espaço reservado para o nome de usuário e o código. Os espaços reservados para sua mensagem são os valores de request.usernameParameter e. request.codeParameter Esses valores são normalmente {username} e{####}, como melhor prática, referenciam os valores de entrada em vez de codificar os nomes das variáveis.
Tópicos
Fontes do acionador do Lambda de mensagem personalizada
| Valor de triggerSource | Event |
|---|---|
CustomMessage_SignUp |
Custom message – Para enviar o código de confirmação após cadastro. |
CustomMessage_AdminCreateUser |
Custom message – Para enviar a senha temporária a um novo usuário. |
CustomMessage_ResendCode |
Custom message – Para reenviar o código de confirmação a um usuário existente. |
CustomMessage_ForgotPassword |
Custom message – Para enviar o código de confirmação da solicitação de esquecimento de senha. |
CustomMessage_UpdateUserAttribute |
Custom message – Quando um e-mail ou número de telefone de um usuário for alterado, esse trigger enviará um código de verificação automaticamente ao usuário. Não pode ser usado para outros atributos. |
CustomMessage_VerifyUserAttribute |
Mensagem personalizada – Este trigger envia um código de verificação ao usuário quando solicitado manualmente para um novo e-mail ou número de telefone. |
CustomMessage_Authentication |
Custom message – Para enviar o código MFA durante a autenticação. |
Parâmetros do acionador do Lambda de mensagem personalizada
A solicitação que o Amazon Cognito transmite para essa função do Lambda é uma combinação dos parâmetros abaixo e dos parâmetros comuns que o Amazon Cognito adiciona a todas as solicitações.
Parâmetros de solicitação de mensagem personalizada
- userAttributes
-
Um ou mais pares de nome-valor que representam atributos de usuário.
- codeParameter
-
Uma string a ser usada como espaço reservado do código de verificação na mensagem personalizada.
- usernameParameter
-
O nome do usuário. O Amazon Cognito inclui esse parâmetro em solicitações geradas por usuários criados pelo administrador.
- clientMetadata
-
Um ou mais pares de chave-valor que você pode fornecer como entrada personalizada para a função Lambda especificada para o acionador de mensagem personalizada. A solicitação que invoca uma função de mensagem personalizada não inclui dados transmitidos no ClientMetadata parâmetro AdminInitiateAuthe operações de InitiateAuthAPI. Para passar esses dados para sua função Lambda, você pode usar o ClientMetadata parâmetro nas seguintes ações de API:
Parâmetros de resposta de mensagem personalizada
Na resposta, especifique o texto personalizado a ser usado em mensagens para seus usuários. Para as restrições de string que o Amazon Cognito aplica a esses parâmetros, consulte. MessageTemplateType
- smsMessage
-
A mensagem SMS personalizada a ser enviada a seus usuários. Deve incluir o valor de
codeParameterrecebido na solicitação. - emailMessage
-
A mensagem de e-mail personalizada a ser enviada a seus usuários. Você pode usar a formatação HTML no parâmetro
emailMessage. Deve incluir o valor decodeParameterrecebido na solicitação como a variável{####}. O Amazon Cognito pode usar o parâmetroemailMessagesomente se o atributoEmailSendingAccountdo grupo de usuários forDEVELOPER. Se o atributoEmailSendingAccountdo grupo de usuários não forDEVELOPERe um parâmetroemailMessagefor retornado, o Amazon Cognito vai gerar um código de erro 400com.amazonaws.cognito.identity.idp.model.InvalidLambdaResponseException. Ao escolher o Amazon Simple Email Service (Amazon SES) para enviar mensagens de e-mail, o atributoEmailSendingAccountde um grupo de usuários éDEVELOPER. Do contrário, o valor seráCOGNITO_DEFAULT. - emailSubject
-
A linha de assunto da mensagem personalizada. Você só pode usar o
emailSubjectparâmetro se o EmailSendingAccount atributo do grupo de usuários forDEVELOPER. Se o atributoEmailSendingAccountdo grupo de usuários não forDEVELOPERe o Amazon Cognito retornar um parâmetroemailSubject, o Amazon Cognito vai gerar um código de erro 400com.amazonaws.cognito.identity.idp.model.InvalidLambdaResponseException. O atributoEmailSendingAccountde um grupo de usuários éDEVELOPERao escolher o Amazon Simple Email Service (Amazon SES) para enviar mensagens de e-mail. Do contrário, o valor seráCOGNITO_DEFAULT.
Exemplo de mensagem personalizada de cadastro
Esse exemplo de função do Lambda personaliza um e-mail ou mensagem SMS quando o serviço requer que uma aplicação envie um código de verificação ao usuário.
O Amazon Cognito pode invocar um acionador do Lambda em vários eventos: no pós-registro, ao reenviar um código de verificação, ao recuperar uma senha esquecida ou ao verificar um atributo de usuário. A resposta inclui mensagens para SMS e e-mail. A mensagem deve incluir o parâmetro de código "####". Esse parâmetro é o espaço reservado do código de verificação que o usuário recebe.
A mensagem de e-mail tem um comprimento máximo de 20 mil caracteres UTF-8. Esse tamanho inclui o código de verificação. Você pode usar etiquetas HTML nessas mensagens de e-mail.
A mensagem SMS tem um comprimento máximo de 140 caracteres UTF-8. Esse tamanho inclui o código de verificação.
O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código:
Exemplo de mensagem personalizada para criação de usuário pelo administrador
A solicitação que o Amazon Cognito enviou para este exemplo de mensagem personalizada da função do Lambda tem um valor triggerSource e um nome de usuário CustomMessage_AdminCreateUser com uma senha temporária. A função é preenchida com ${event.request.codeParameter} a partir da senha temporária na solicitação e com ${event.request.usernameParameter} a partir do nome de usuário na solicitação.
Suas mensagens personalizadas devem inserir os valores de codeParameter e usernameParameter dentro smsMessage e emailMessage no objeto de resposta. Neste exemplo, a função grava a mesma mensagem nos campos de resposta event.response.smsMessage e event.response.emailMessage.
A mensagem de e-mail tem um comprimento máximo de 20 mil caracteres UTF-8. Esse tamanho inclui o código de verificação. Você pode usar etiquetas HTML nesses e-mails. A mensagem SMS tem um comprimento máximo de 140 caracteres UTF-8. Esse tamanho inclui o código de verificação.
A resposta inclui mensagens para SMS e e-mail.
O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código: