Obviamente, você também pode usar os fluxos do DynamoDB para acionar os processos e funções da AWS Lambda a jusante. Lambda, por definição, é um serviço de computação sem servidor que executa seu código em resposta a eventos e gerencia automaticamente os recursos de computação para você.
Você pode usar o Lambda para escrever o código no nó.JS, Python, Java ou C# para processar os registros do fluxo e tomar ações apropriadas. O principal benefício de integrar os fluxos do DynamoDB com a Lambda é que o Lambda permite que você execute os serviços apoiados ou códigos de aplicativo sem a necessidade de administração.
Como usar os fluxos da AWS DynamoDB com Lambda
Embora seja possível criar uma função Lambda que consome os eventos e ocorrências de um fluxo de dynamoDB, o processo pode ser bastante instantâneo, principalmente em sua primeira tentativa. As etapas a seguir ajudarão:
Etapa 1: Verifique se o seu sistema atende aos pré -requisitos
Este procedimento só será bem -sucedido se você souber as operações e processos básicos do Lambda. Assim, este deve ser o primeiro a garantir que sua compreensão do lambda esteja acima da média.
O segundo pré -requisito que vale a pena considerar está confirmando a versão AWS do seu sistema. Você pode usar o seguinte comando:
AWS -VERSIONO resultado do comando fornecido deve ficar assim:
AWS-CLI/2.x.x python/3.x.x Linux/4.x.X-XXX-STD Botocore/2.x.xA resposta de amostra fornecida contém a versão instalada da AWS CLI (AWS-CLI/2.x.x), a versão python (Python/3.x.x) e o sistema operacional (Linux/4.x.X-XXX-STD). A parte final da resposta define a versão da biblioteca Botocore em que sua CLI da AWS é executada (botocore/2.x.x).
Você, portanto, acabará com algo assim:
Etapa 2: Crie uma função de execução
O próximo passo é criar uma função de execução na AWS CLI. Uma função de execução é uma função de identidade e gerenciamento de acesso da AWS (IAM) assumida por um serviço da AWS para executar as tarefas em seu nome. Ele fornece acesso aos recursos da AWS que você precisará ao longo do caminho.
Você pode criar uma função usando o seguinte comando:
AWS IAM CREATE-MOLE \O comando anterior é um comando da AWS CLI para criar uma função. Você também pode usar o console de gerenciamento da Amazon para criar uma função. Depois de estar no console do IAM, abra o Papéis página e clique no Criar papel botão.
Prossiga para entrar no seguinte:
Você também pode usar o Python instalando o SDK da AWS para Python:
PIP Instale o BOTO3Etapa 3: Ative os fluxos do DynamoDB em sua mesa
Você precisa ativar os fluxos do DynamoDB em sua mesa. Para esta ilustração, usamos o BOTO3, AWS SDK para Python. O seguinte comando ajudará:
Importar BOTO3Este código permite o fluxo do dynamoDB na tabela "myTable" que transmite as imagens novas e antigas de itens assim que ocorrerem mudanças. Você pode optar por transmitir apenas as novas imagens assim que o StreamViewType para "new_image".
Notavelmente, executar este código só pode ativar os fluxos em suas mesas depois de um tempo. Em vez disso, o processo pode levar algum tempo. Você pode usar o método descreve_table para verificar o status do fluxo.
Etapa 4: Crie a função Lambda
O próximo passo é criar uma função Lambda que aciona o fluxo do dynamoDB. As etapas a seguir devem ajudar:
Isso é tudo o que acontece ao criar uma função lambda! Sua função agora é acionada sempre que há atualizações para a tabela DynamoDB especificada.
Aqui está um exemplo de uma simples função python que o fluxo do DynamoDB pode acionar:
def lambda_handler (evento, contexto):Esta função itera através dos registros no objeto de eventos e imprime a nova imagem do item na tabela DynamoDB que desencadeia a função.
Etapa 5: teste a função Lambda
Para testar uma função lambda que um fluxo de dynamoDB pode acionar, você pode usar o BOTO3 biblioteca para acessar a API do DynamoDB e a invocar Método do Lambda cliente para acionar a função.
Aqui está um exemplo de como fazer isso:
Importar BOTO3Este código primeiro insere um item no minha mesa mesa e depois desencadeia o MyFunction Função lambda enviando uma carga útil de eventos para a função usando o invocar método. A carga útil do evento simula um evento DynamoDB Stream que inclui a nova imagem do item que foi inserida.
Você pode verificar os registros da função Lambda para ver se ela acionou e processou os dados do evento com sucesso.
Conclusão
É vital observar que você pode invocar várias vezes para o mesmo registro de fluxo que um fluxo de dynamoDB pode desencadear uma função lambda. A principal razão por trás disso é que os registros do fluxo são eventualmente consistentes e é possível processar o mesmo registro várias vezes pela função Lambda. É crucial projetar sua função lambda para lidar com este caso corretamente.