AWS SAM CLI risoluzione dei problemi - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS SAM CLI risoluzione dei problemi

Questa sezione fornisce dettagli su come risolvere i messaggi di errore durante l'utilizzo, l'installazione e la gestione dell'interfaccia a riga di AWS Serverless Application Model comando (AWS SAM CLI).

Risoluzione dei problemi

Per indicazioni sulla risoluzione dei problemi relative a AWS SAM CLI, consulta Risoluzione degli errori di installazione.

Messaggi di errore

Errore curl: «curl: (6) Impossibile risolvere:...»

Quando si tenta di richiamare l'endpoint API Gateway, viene visualizzato il seguente errore:

curl: (6) Could not resolve: endpointdomain (Domain name not found)

Ciò significa che hai tentato di inviare una richiesta a un dominio non valido. Ciò può accadere se l'applicazione serverless non è stata distribuita correttamente o se hai un errore di battitura nel comando. curl Verifica che l'applicazione sia stata distribuita correttamente utilizzando la AWS CloudFormation console o il AWS CLI, e verifica che il curl comando sia corretto.

Errore: impossibile trovare informazioni esatte sulle risorse con il nome dello stack specificato

Quando si esegue il sam remote invoke comando su un'applicazione che contiene una singola risorsa della funzione Lambda, viene visualizzato il seguente errore:

Error: Can't find exact resource information with given <stack-name>. Please provide full resource ARN or --stack-name to resolve the ambiguity.
Causa possibile: non hai fornito l'--stack-nameopzione.

Se una funzione ARN non viene fornita come argomento, il sam remote invoke comando richiede che venga fornita l'--stack-nameopzione.

Soluzione: fornire l'--stack-nameopzione.

Di seguito è riportato un esempio:

$ sam remote invoke --stack-name sam-app Invoking Lambda Function HelloWorldFunction START RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Version: $LATEST END RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 REPORT RequestId: 40593abb-e1ad-4d99-87bd-ac032e364e82 Duration: 11.31 ms Billed Duration: 12 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 171.71 ms {"statusCode":200,"body":"{\"message\":\"hello world\"}"}%

Errore: impossibile trovare le informazioni sulle risorse dal nome dello stack

Quando si esegue il sam remote invoke comando e si passa una funzione Lambda ARN come argomento, viene visualizzato il seguente errore:

Error: Can't find resource information from stack name (<stack-name>) and resource id (<function-id>)
Possibile causa: il valore del nome dello stack è definito nel file. samconfig.toml

Il AWS SAM CLI controlla innanzitutto il nome dello stack nel samconfig.toml file. Se specificato, l'argomento viene passato come valore ID logico.

Soluzione: passate invece l'ID logico della funzione.

È possibile passare l'ID logico della funzione come argomento anziché l'ARN della funzione.

Soluzione: rimuovete il valore del nome dello stack dal file di configurazione.

È possibile rimuovere il valore del nome dello stack dal file di configurazione. Ciò impedisce il AWS SAM CLI dal passare l'ARN della funzione come valore ID logico.

Esegui sam build dopo aver modificato il file di configurazione.

Errore: creazione di risorse gestite non riuscita: impossibile individuare le credenziali

Quando si esegue il sam deploy comando, viene visualizzato il seguente errore:

Error: Failed to create managed resources: Unable to locate credentials

Ciò significa che non sono state impostate AWS le credenziali per abilitare il AWS SAM CLI per effettuare chiamate AWS di servizio. Per risolvere questo problema, è necessario impostare AWS le credenziali. Per ulteriori informazioni, consulta Impostazione delle AWS credenziali.

Errore: FileNotFoundError in Windows

Quando si eseguono comandi in AWS SAM CLI in Windows, è possibile che venga visualizzato il seguente errore:

Error: FileNotFoundError

Possibile causa: AWS SAM CLI potrebbe interagire con percorsi di file che superano il limite massimo di percorso di Windows.

Soluzione: per risolvere questo problema, è necessario abilitare il nuovo comportamento dei percorsi lunghi. A tale scopo, consulta Abilitare percorsi lunghi in Windows 10, versione 1607 e successive nella documentazione sullo sviluppo di app per Microsoft Windows.

Errore: il risolutore di dipendenze di pip...

Esempio di testo di errore:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aws-sam-cli 1.58.0 requires aws-sam-translator==1.51.0, but you have aws-sam-translator 1.58.0 which is incompatible. 
aws-sam-cli 1.58.0 requires typing-extensions==3.10.0.0, but you have typing-extensions 4.4.0 which is incompatible.
Possibile causa: se si utilizza pip per installare i pacchetti, le dipendenze tra i pacchetti possono entrare in conflitto.

Ogni versione del aws-sam-cli pacchetto dipende da una versione del aws-sam-translator pacchetto. Ad esempio, la aws-sam-cli v1.58.0 può dipendere dalla v1.51.0. aws-sam-translator

Se si installa il AWS SAM CLI utilizzo di pip, quindi installate un altro pacchetto che dipende da una versione più recente diaws-sam-translator, si verificherà quanto segue:

  • La versione più recente di aws-sam-translator will install.

  • La versione corrente aws-sam-cli e la versione più recente di aws-sam-translator potrebbero non essere compatibili.

  • Quando si utilizza il AWS SAM CLI, si verificherà l'errore del risolutore delle dipendenze.

Soluzioni:
  1. Usa il AWS SAM CLI programma di installazione del pacchetto nativo.

    1. Disinstalla il AWS SAM CLI usando pip. Per istruzioni, consulta Disinstallazione di AWS SAM CLI.

    2. Installa il AWS SAM CLI utilizzando il programma di installazione del pacchetto nativo. Per istruzioni, consulta Installa il AWS SAM CLI.

    3. Se necessario, aggiornare il AWS SAM CLI utilizzando il programma di installazione nativo del pacchetto. Per istruzioni, consulta Aggiornamento del AWS SAM CLI.

  2. Se è necessario utilizzare pip, si consiglia di installare la AWS SAM CLI in un ambiente virtuale. Ciò garantisce un ambiente di installazione pulito e un ambiente isolato in caso di errori. Per istruzioni, consulta Installazione di AWS SAM CLI in un ambiente virtuale utilizzando pip.

Errore: nessun comando di questo tipo «remoto»

Quando si esegue il sam remote invoke comando, viene visualizzato il seguente errore:

$ sam remote invoke ... 2023-06-20 08:15:07 Command remote not available Usage: sam [OPTIONS] COMMAND [ARGS]... Try 'sam -h' for help. Error: No such command 'remote'.
Possibile causa: la tua versione di AWS SAM CLI non è aggiornata.

La AWS SAM CLI sam remote invokecomando è stato rilasciato con AWS SAM CLI versione 1.88.0. Puoi controllare la tua versione eseguendo il sam --version comando.

Soluzione: aggiorna il tuo AWS SAM CLI alla versione più recente.

Per istruzioni, consulta Aggiornamento del AWS SAM CLI.

Errore: l'esecuzione locale di progetti AWS SAM richiede Docker. L'hai installato?

Quando si esegue il sam local start-api comando, viene visualizzato il seguente errore:

Error: Running AWS SAM projects locally requires Docker. Have you got it installed?

Ciò significa che non hai Docker installato correttamente. Docker è necessario per testare l'applicazione localmente. Per risolvere questo problema, segui le istruzioni per l'installazione di Docker per il tuo host di sviluppo. Per ulteriori informazioni, consulta Installazione di Docker.

Errore: vincoli di sicurezza non soddisfatti

Durante l'esecuzionesam deploy --guided, ti viene posta la domanda. Function may not have authorization defined, Is this okay? [y/N] Se rispondi a questa richiesta con N (la risposta predefinita), viene visualizzato il seguente errore:

Error: Security Constraints Not Satisfied

Il messaggio ti informa che l'applicazione che stai per distribuire potrebbe avere un'API Amazon API Gateway accessibile pubblicamente configurata senza autorizzazione. Rispondendo N a questa richiesta, stai dicendo che non va bene.

Per risolvere questo problema, sono disponibili le seguenti opzioni:

  • Configura la tua applicazione con autorizzazione. Per informazioni sulla configurazione dell'autorizzazione, vedereControlla l'accesso alle API con il tuo AWS SAM modello.

  • Se intendi avere un endpoint API accessibile pubblicamente senza autorizzazione, riavvia la distribuzione e rispondi a questa domanda indicando che sei d'accordo con la distribuzione. Y

messaggio: Token di autenticazione mancante

Quando si tenta di richiamare l'endpoint API Gateway, viene visualizzato il seguente errore:

{"message":"Missing Authentication Token"}

Ciò significa che hai tentato di inviare una richiesta al dominio corretto, ma l'URI non è riconoscibile. Per risolvere questo problema, verifica l'URL completo e aggiorna il curl comando con l'URL corretto.

Messaggi di avviso

Avviso:... AWS non manterrà più il Homebrew programma di installazione per AWS SAM ...

Durante l'installazione di AWS SAM CLI utilizzo di Homebrew, viene visualizzato il seguente messaggio di avviso:

Warning: ... AWS will no longer maintain the Homebrew installer for AWS SAM (aws/tap/aws-sam-cli). 
				For AWS supported installations, use the first party installers ...
Causa potenziale: AWS mancata manutenzione Homebrew supporto.

A partire da settembre 2023, AWS non manterrà più il Homebrew programma di installazione per AWS SAM CLI.

Soluzione: utilizzare un metodo di installazione AWS supportato.
Soluzione: continuare a utilizzare Homebrew, utilizza il programma di installazione gestito dalla community.