Come posso creare un pacchetto di implementazione Lambda per C# .NET?

4 minuti di lettura
0

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:

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#.


AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa