Ir para o conteúdo

Amazon AWS - Lambda

Nada pode ser mais simples de interagir com as funções Lambda do que o plugin Botcity para a AWS Lambda.

Gerencie invocações síncronas e assíncronas das funções lambda.

Instalação

pip install botcity-aws-lambda-plugin

Importando o plugin

Depois de instalar este pacote, a próxima etapa é importar o pacote para o seu código e começar a usar as funções.

from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin

Configurando a conexão

Observação

Existem duas maneiras diferentes de autenticar.

1.Criando a pasta .aws no diretório inicial, você precisa criar dois arquivos.

# ~/.aws/config
[default]
region=<region_code>
# ~/.aws/credentials
[default]
aws_access_key_id=<your_aws_access_key_id>
aws_secret_access_key=<your_aws_secret_access_key>

2. Passando credenciais no construtor da classe.

# Usando a pasta `.aws`
funcao_lambda = BotAWSLambdaPlugin()

# Alternativa usando as credenciais como argumentos construtores
funcao_lambda = BotAWSLambdaPlugin(
    use_credentials_file=False,
    access_key_id='<your_aws_access_key_id>',
    secret_access_key='<your_aws_secret_access_key>',
    region_name='<region_code>'
)

Operações lambda

Liste todas as funções

from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin

aws = BotAWSLambdaPlugin()
print(aws.list_functions())

Obter informações da função

Info

O parâmetro function name pode ser somente de nome ou nome com alias.

my-function (name-only), my-function:v1 (com alias).

from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin

aws = BotAWSLambdaPlugin()
print(aws.get_function(function_name='<lambda_name>'))

Invocação do lambda

Invocação síncrona

O valor do parâmetro function name

O parâmetro Nome da função pode ser somente de nome ou nome com alias.

`my-function (somente nome), my-function:v1 (com alias).

Tipo de Invocação

Você pode usar o parâmetro InvocationType = 'Event' para invocar Lambda de forma assíncrona, mas você não recebe o valor da resposta

from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin


aws = BotAWSLambdaPlugin()
resultado = aws.invoke_function(function_name='<nome_lambda>', payload={'name': 'Botcity'})
print(resultado)

Invocação assíncrona

Tipo de retorno

A função future_invoke_function retorna uma instância de concurrent.futures.future.

import time
from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin

aws = BotAWSLambdaPlugin()
resultado_futuro = aws.future_invoke_function(function_name='<nome_lambda>', payload={'name': 'Botcity'})

while not resultado_futuro.done():
    print('aguradando...')
    time.sleep(1)

print('Invocar (resultado): ', resultado_futuro.result())

Operação de alias

Lista de alias

Info

O parâmetro function name é somente de nome.

from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin

aws = BotAWSLambdaPlugin()
print(aws.list_aliases(function_name='nome_lambda'))

Obter alias

from botcity.plugins.aws.lambda_functions import BotAWSLambdaPlugin

aws = BotAWSLambdaPlugin()
print(aws.get_alias(function_name='nome_lambda', alias_name='<nome_alias>'))