"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como importar Pandas (biblioteca) em funções AWS Lambda - Camadas AWS Lambda

Como importar Pandas (biblioteca) em funções AWS Lambda - Camadas AWS Lambda

Publicado em 2024-11-08
Navegar:947

Imagine que você precisa executar um script Python na função AWS Lambda e recebe este erro?

{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'pandas',
  "errorType": "Runtime.ImportModuleError"
  ...
}

Não se preocupe, este é um erro comum e não vou demorar tanto

Como você importa Pandas em funções AWS Lambda?

Existem várias maneiras, mas vou mostrar a maneira mais fácil de importar pandas na função AWS Lambda: adicionar camada Lambda ?

O que é camada AWS Lambda?

É um? camada de queijo na função Lambda contendo código adicional como bibliotecas, dependências, etc.

Em palavras simples

AWS Lambda Layers são como blocos de construção para suas funções. Imagine que você precisa de ferramentas extras (como a biblioteca Pandas) para concluir um projeto. Em vez de empacotar todas essas ferramentas dentro de cada projeto (o que desperdiça espaço e tempo), a AWS permite criar camadas de ferramentas (bibliotecas, dependências ou código compartilhado). Essas camadas ficam fora de sua função principal, mas estão sempre disponíveis quando sua função precisa delas.

Resumindo, as camadas Lambda ajudam você a:

Economize espaço no seu código separando a lógica principal das bibliotecas extras.
Reutilize bibliotecas e códigos em várias funções do Lambda.
Atualize ou gerencie facilmente suas dependências sem alterar o código de função principal.

Pense nas camadas como uma caixa de armazenamento extra anexada à sua função Lambda, contendo tudo o que sua função precisa para funcionar sem problemas. Você pode empilhar várias camadas em sua função sem sobrecarregar seu código principal.

Etapas para adicionar camada de função Lambda e importar Pandas

São necessárias apenas 3 etapas para executar o Pandas em sua função Lambda com sucesso

Etapa 1 – Abra a função Lambda por meio do AWS Management Console

Como você pode ver, temos uma opção Layers sob o nome de nossa função Lambda, no meu caso, é "import-pandas-function" e a contagem de camadas é 0

How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

Etapa 2 – Adicione script em sua função AWS Lambda

Esta etapa é dividida em duas etapas porque precisamos adicionar um script Python que contenha algum código Pandas e escrever um evento de teste em JSON para verificar se o código está sendo executado corretamente.

2.1 - Adicione script Python - você pode copiar este código?

import json
import pandas as pd

def lambda_handler(event, context):
    data = event.get('data', [])

    df = pd.DataFrame(data)

    if not df.empty:
        mean_value = df['column_name'].mean()

        result = {
            "mean_value": mean_value,
            "data_shape": df.shape,
            "summary": df.describe().to_dict()
        }
    else:
        result = {
            "message": "Empty DataFrame"
        }

    # Return the response
    return {
        'statusCode': 200,
        'body': json.dumps(result)
    }

2.2 - Adicione script de teste em Json na aba de testes - você pode copiar esse código?

{
  "data": [
    {"column_name": 10, "other_column": "A"},
    {"column_name": 20, "other_column": "B"},
    {"column_name": 30, "other_column": "C"},
    {"column_name": 40, "other_column": "D"}
  ]
}

Pressione o botão de teste e provavelmente receberá o ?error:-
"errorMessage": "Não foi possível importar o módulo 'lambda_function': Nenhum módulo chamado 'pandas',
"errorType": "Runtime.ImportModuleError"
...

Etapa 3 - Adicione AWS Lambda Layer para executar com sucesso os Pandas em seu código

Role para baixo até sua função Lambda, você provavelmente verá a seção separada "Camadas" no final da página
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.1 – Clique em “Adicionar uma Camada”

Depois de clicar em "Adicionar uma camada", você pode ver a página que possui algumas seções "Configurações de tempo de execução da função" e "Escolher uma camada"
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.2 - Clique em "camadas AWS"

Você pode ver três opções na seção "Escolha uma camada", clique em "Camadas AWS".
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.3 - Escolha "camadas AWS"

Depois de selecionar as camadas AWS, você pode ver o menu suspenso em "Camadas AWS".
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.4 - Escolha "camadas AWS" e "Versão"

Em uma lista suspensa de "camadas AWS", selecione -> AWSSDKPandas-Python312
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers
Em uma lista suspensa de "Versão", selecione -> 13(selecione a mais)
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers
clique no botão "Adicionar"
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.5 - Certifique-se de que a "Visão Geral da Função"

Quando sua página é direcionada para a visão geral da função, você pode ver que a camada é adicionada abaixo do nome da função "import-pandas-function"
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

Passo 4 – Teste a Função

Você obteve a resposta "statusCode": 200

{
  "statusCode": 200,
  "body": "{\"mean_value\": 25.0, \"data_shape\": [4, 2], \"summary\": {\"column_name\": {\"count\": 4.0, \"mean\": 25.0, \"std\": 12.909944487358056, \"min\": 10.0, \"25%\": 17.5, \"50%\": 25.0, \"75%\": 32.5, \"max\": 40.0}}}"
}

How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers


Continuar codificando?

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/heighter/how-to-import-pandaslibrary-in-aws-lambda-functions-aws-lambda-layers-1oen?1 Se houver alguma violação, entre em contato com study_golang @163.com excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3