Come posso creare un pacchetto di implementazione Lambda per C# .NET?
Ho creato un pacchetto di implementazione delle funzioni AWS Lambda in C#. Tuttavia, quando provo a richiamare la funzione, Lambda restituisce uno dei seguenti errori: "modulo non trovato", "il modulo non può essere caricato" o "impossibile trovare la classe". Come faccio a risolvere il problema?
Descrizione breve
Se la funzione Lambda C# restituisce uno dei seguenti errori, la struttura delle cartelle del pacchetto di implementazione della funzione non è configurata correttamente:
- modulo non trovato
- il modulo non può essere caricato
- impossibile trovare la classe
Per risolvere il problema, è necessario creare un pacchetto di implementazione della funzione C# Lambda con una corretta struttura delle cartelle. Esistono due modi per creare e distribuire un pacchetto di implementazione di funzioni C# Lambda con la corretta struttura delle cartelle:
- L'interfaccia della linea di comando .NET Core (.NET Core CLI) e l'estensione Amazon.Lambda.Tools
- Il kit di strumenti AWS per Visual Studio
Risoluzione
Per utilizzare l'interfaccia della linea di comando .NET Core e l'estensione Amazon.Lambda.Tools
1. Installa i modelli Lambda.NET predefiniti e aggiungi l'estensione Amazon.Lambda.Tools all'interfaccia della linea di comando .NET Core eseguendo il seguente comando:
dotnet new -i 'Amazon.Lambda.Templates::*'
2. Crea una nuova funzione Lambda utilizzando uno dei modelli che hai installato o aggiungi l'estensione Amazon.Lambda.Tools a un progetto esistente.
Per creare una nuova funzione Lambda utilizzando uno dei modelli che hai installato
Dall'interfaccia della linea di comando .NET Core nella directory principale del progetto della funzione Lambda, esegui il seguente comando:
**Importante:**Sostituisci {function-name} con il nome della tua funzione. Sostituisci {aws-region} con la regione AWS in cui desideri implementare la funzione.
dotnet new lambda.EmptyFunction --name {function-name} --profile default --region {aws-region}
Per aggiungere l'estensione Amazon.Lambda.Tools a un progetto esistente
Dall'interfaccia della linea di comando .NET Core nella directory principale del progetto della funzione Lambda, esegui il seguente comando:
dotnet tool install -g Amazon.Lambda.Tools
**Nota:**L'estensione Amazon.Lambda.Tools ti chiederà di fornire tutti i parametri obbligatori mancanti.
3. Scarica le dipendenze del pacchetto di implementazione eseguendo il seguente comando:
**Importante:**Sostituisci {your-function-directory} con il nome della cartella della tua funzione.
cd {your-function-directory} dotnet restore
**Nota:**Se ricevi un errore non compatibile, assicurati di utilizzare una versione di .NET Core compatibile con gli strumenti Lambda. Per scaricare le versioni precedenti di .NET Core, visita il sito Web .NET Download Archives.
4. Crea il tuo pacchetto di implementazione Lambda eseguendo il seguente comando:
dotnet lambda deploy-function
**Nota:**In alternativa, puoi creare un pacchetto di implementazione Lambda da zero e implementarlo separatamente. Per maggiori istruzioni, consulta Implementazione di un progetto AWS Lambda con l'interfaccia della linea di comando .NET Core.
5. L'interfaccia della linea di comando .NET Core richiede l'inserimento di un nome di funzione e l'assegnazione di un ruolo AWS Identity and Access Management (IAM) alla funzione. Inserisci un nome per la tua funzione e assegnale un ruolo IAM. La tua funzione viene quindi creata.
Per usare il kit di strumenti AWS per Visual Studio
1. Scarica e installa kit di strumenti AWS per Visual Studio.
2. Crea e costruisci un progetto AWS Lambda (.NET Core). Per maggiori istruzioni, consulta Utilizzo dei modelli AWS Lambda nel kit di strumenti AWS per Visual Studio e Kit di strumenti AWS per Visual Studio nella guida per sviluppatori di AWS Lambda.
Importante: Assicurati che la firma del gestore della funzione sia nel seguente formato:
ASSEMBLY::TYPE::METHOD
Per confermare che la funzione sia formattata correttamente, esamina i file nella directory src/{function-name} della funzione. Per ulteriori informazioni, consulta l'interfaccia della linea di comando .NET Core e il gestore di funzioni AWS Lambda in C#.
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 anni fa