Você pode executar o código Ruby no AWS 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 para 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:
Name | Identificador | Sistema operacional | Data da substituição | Bloquear a criação de funções | Bloquear a atualização de funções |
---|---|---|---|---|---|
Ruby 3.3 |
|
Amazon Linux 2023 |
31 de março de 2027 |
30 de abril de 2027 |
31 de maio de 2027 |
Ruby 3.2 |
|
Amazon Linux 2 |
31 de março de 2026 |
30 de abril de 2026 |
31 de maio de 2026 |
Para criar uma função do Ruby
-
Abra o console do lambda
. -
Escolha a opção Criar função.
-
Configure as seguintes opções:
-
Nome da função: digite um nome para a função.
-
Runtime: escolha Ruby 3.2.
-
-
Escolha a opção Criar 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. Na seção DEPLOY, escolha Implantar para atualizar o código da função. Em seguida, para executar seu código, escolha Criar evento de teste na seção TEST EVENTS.
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.
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.
Tópicos
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
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