Construir funções do Lambda com Ruby - AWS Lambda

Construir funções do Lambda com Ruby

Você pode executar o código Ruby noAWS Lambda. O Lambda fornece runtimes para Ruby que executam seu código para processar eventos. Seu código é executado em um ambiente que inclui o AWS SDK for Ruby, com as credenciais de uma função do AWS Identity and Access Management (IAM) que você gerencia. Para saber mais sobre as versões do SDK incluídas nos runtimes do Ruby, consulte Versões do SDK incluídas no runtime.

O Lambda oferece suporte aos seguintes runtimes do Ruby:

Ruby
Nome Identificador Sistema operacional Data da substituição Bloquear a criação de funções Bloquear a atualização de funções

Ruby 3.3

ruby3.3

Amazon Linux 2023

Ruby 3.2

ruby3.2

Amazon Linux 2

Para criar uma função do Ruby
  1. Abra o console do lambda.

  2. Escolha a opção Criar função.

  3. Configure as seguintes opções:

    • Nome da função: digite um nome para a função.

    • Runtime: escolha Ruby 3.2.

  4. Escolha a opção Criar função.

  5. Para configurar um evento de teste, escolha Test (Testar).

  6. Em Nome do evento, insira test.

  7. Escolha Salvar alterações.

  8. Escolha Test (Testar) para invocar a função.

O console cria uma função do Lambda com um único arquivo de origem chamado lambda_function.rb. Você pode editar esse arquivo e adicionar mais arquivos no editor de códigos integrado. Para salvar suas alterações, selecione Salvar. Em seguida, para executar seu código, escolhaTeste.

nota

O console do Lambda usa o AWS Cloud9 para fornecer um ambiente de desenvolvimento integrado no navegador. Você também pode usar o AWS Cloud9 para desenvolver funções do Lambda em seu próprio ambiente. Para obter mais informações, consulte Working with AWS Lambda functions using the AWS Toolkit no Guia do usuário do AWS Cloud9.

O arquivo lambda_function.rb exporta uma função chamada lambda_handler que utiliza um objeto de evento e um objeto de contexto. Esta é a função de manipulador que o Lambda chama quando a função é invocada. O runtime da função do Ruby obtém eventos de invocação do Lambda e os transmite ao handler. Na configuração da função, o valor do manipulador é lambda_function.lambda_handler.

Quando você salva seu código de função, o console do Lambda cria um pacote de implantação de arquivos .zip. Quando desenvolver o código de função fora do console (usando um IDE), você precisará criar um pacote de implantação para carregar o código na função do Lambda.

nota

Para começar com o desenvolvimento de aplicativos no ambiente local, implante um dos aplicativos de exemplo disponíveis no repositório do GitHub deste guia.

Aplicações de exemplo do Lambda em Ruby
  • blank-ruby: uma função do Ruby que mostra o uso de registro em log, variáveis de ambiente, rastreamento do AWS X-Ray, camadas, testes de unidade e do AWS SDK.

  • Ruby Code Samples for AWS Lambda: exemplos de código escritos em Ruby que demonstram como interagir com o AWS Lambda.

O runtime transmite um objeto de contexto para o manipulador, além do evento de invocação. O objeto de contexto contém informações adicionais sobre a invocação, a função e o ambiente de execução. Outras informações estão disponíveis de variáveis de ambiente.

Sua função do Lambda é fornecida com um grupo de logs do CloudWatch Logs. O runtime envia detalhes sobre cada invocação para o CloudWatch Logs. Ele retransmite quaisquer logs que sua função produz durante a invocação. Se a função retornar um erro, o Lambda formatará o erro e o retornará para o invocador.

Versões do SDK incluídas no runtime

A versão do AWS SDK incluída no runtime do Ruby depende da versão do runtime e da Região da AWS. O AWS SDK para Ruby foi projetado para ser modular e é separado pelo AWS service (Serviço da AWS). Para encontrar o número da versão de um determinado gem de serviço incluído no runtime que você está usando, crie uma função do Lambda com o código no formato a seguir. Substitua aws-sdk-s3 e Aws::S3 pelo nome dos gems de serviço que o código usa.

require 'aws-sdk-s3' def lambda_handler(event:, context:) puts "Service gem version: #{Aws::S3::GEM_VERSION}" puts "Core version: #{Aws::CORE_GEM_VERSION}" end

Como habilitar Yet Another Ruby JIT (YJIT)

O runtime Ruby 3.2 é compatível com YJIT, um compilador Ruby JIT leve e minimalista. O YJIT fornece performance significativamente maior, mas também usa mais memória do que o interpretador Ruby. O YJIT é recomendado para workloads Ruby on Rails.

Por padrão, o YJIT não está habilitado. Para habilitar o YJIT para uma função Ruby 3.2, defina a variável de ambiente RUBY_YJIT_ENABLE como 1. Para confirmar que o YJIT está habilitado, imprima o resultado do método RubyVM::YJIT.enabled?.

exemplo : confirmação de que o YJIT está habilitado
puts(RubyVM::YJIT.enabled?()) # => true