Eu criei um pacote de implantação de funções do AWS Lambda em C#. No entanto, quando tento invocar a função, o Lambda retorna um dos seguintes erros: “módulo não encontrado”, “o módulo não pode ser carregado” ou “não é possível encontrar a classe”. Como soluciono o problema?
Breve descrição
Se sua função C# do Lambda retornar algum dos seguintes erros, a estrutura de pastas do pacote de implantação da função não está configurada corretamente:
- módulo não encontrado
- o módulo não pode ser carregado
- não foi possível encontrar a classe
Para resolver o problema, você deve criar um pacote de implantação de função C# do Lambda que tenha a estrutura de pastas correta. Há duas maneiras de criar e implantar um pacote de implantação de função C# do Lambda com a estrutura de pastas correta:
Resolução
Para usar a CLI do.NET Core e a extensão Amazon.Lambda.Tools
1. Instale os modelos padrão do Lambda.NET e adicione a extensão Amazon.Lambda.Tools à .NET Core CLI executando o seguinte comando:
dotnet new -i 'Amazon.Lambda.Templates::*'
2. Crie uma nova função do Lambda usando um dos modelos que você instalou ou adicione a extensão Amazon.Lambda.Tools a um projeto existente.
Para criar uma nova função do Lambda usando um dos modelos que você instalou
Na .NET Core CLI no diretório raiz do projeto da função do Lambda, execute o seguinte comando:
**Importante:**Substitua {function-name} pelo nome da sua função. Substitua {aws-region} pela região da AWS em que você quer sua função.
dotnet new lambda.EmptyFunction --name {function-name} --profile default --region {aws-region}
Para adicionar a extensão Amazon.Lambda.Tools a um projeto existente
Na .NET Core CLI no diretório raiz do projeto da função do Lambda, execute o seguinte comando:
dotnet tool install -g Amazon.Lambda.Tools
**Observação:**A extensão Amazon.Lambda.Tools solicitará que você forneça quaisquer parâmetros necessários que estejam faltando.
3. Faça o download das dependências do seu pacote de implantação executando o seguinte comando:
**Importante:**Substitua {your-function-directory} pelo nome do seu diretório de funções.
cd {your-function-directory}
dotnet restore
**Observação:**Se você receber um erro não compatível, verifique se está usando uma versão do.NET Core compatível com as ferramentas do Lambda. Para baixar versões anteriores do.NET Core, consulte o site de Arquivos de download do .NET.
4. Crie seu pacote de implantação do Lambda executando o seguinte comando:
dotnet lambda deploy-function
**Observação:**Ou você pode criar um pacote de implantação do Lambda do zero e implantá-lo separadamente. Para instruções, consulte Como implantar de um projeto do AWS Lambda com a .NET Core CLI.
5. A .NET Core CLI solicita que você insira um nome de função e atribua um perfil do AWS Identity and Access Management (IAM) à função. Insira um nome para sua função e atribua à função um perfil do IAM. Sua função é então criada.
Para usar o AWS Toolkit for Visual Studio
1. Baixe e instale o AWS Toolkit for Visual Studio.
2. Crie e construa um projeto do AWS Lambda Project (.NET Core). Para instruções, consulte Como usar os modelos do AWS Lambda no AWS Toolkit for Visual Studio e o AWS Toolkit for Visual Studio no guia de desenvolvedor do AWS Lambda.
**Importante:**Certifique-se de que a assinatura do manipulador de função esteja no seguinte formato:
ASSEMBLY::TYPE::METHOD
Para confirmar se a função está formatada corretamente, revise os arquivos no diretório src/ {function-name} da sua função. Para obter mais informações, consulte .NET Core CLI e manipulador de função do AWS Lambda em C#.