AWS SAMCLIrisoluzione 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 SAMCLIrisoluzione 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 SAMCLI.

Risoluzione dei problemi

Per indicazioni sulla risoluzione dei problemi relativi a AWS SAMCLI, vedere. 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 non ARN viene fornita una funzione 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 filesamconfig.toml.

Il AWS SAMCLI primo controlla 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é quello della funzioneARN.

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ò AWS SAMCLI impedisce che la funzione venga passata ARN 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 consentire l'esecuzione AWS SAMCLI di 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 AWS SAMCLI comandi in Windows, è possibile che venga visualizzato il seguente errore:

Error: FileNotFoundError

Possibile causa: AWS SAMCLI 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 pacchetti, le dipendenze tra i pacchetti potrebbero essere 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 l' AWS SAMCLIusingpip, quindi si installa un altro pacchetto che dipende da una versione più recente di, si verificherà quanto segue: aws-sam-translator

  • 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 AWS SAMCLI, si verificherà l'errore del risolutore delle dipendenze.

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

    1. Disinstalla AWS SAMCLI usando pip. Per istruzioni, consulta Disinstallazione di AWS SAMCLI.

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

    3. Se necessario, esegui l'aggiornamento AWS SAMCLI utilizzando il programma di installazione del pacchetto nativo. Per istruzioni, consulta Aggiornamento del AWS SAMCLI.

  2. Se è necessario utilizzarlopip, si consiglia di installarlo 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 Installare il file AWS SAMCLI 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'.
Causa possibile: la tua versione di non AWS SAMCLI è aggiornata.

Il AWS SAMCLI sam remote invoke comando è stato rilasciato con la AWS SAMCLI versione 1.88.0. Puoi controllare la tua versione eseguendo il sam --version comando.

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

Per istruzioni, consulta Aggiornamento del AWS SAMCLI.

Errore: l'esecuzione locale AWS SAM dei progetti richiedeDocker. 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 l'installazione non è stata Docker eseguita 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 Amazon API Gateway accessibile pubblicamente API configurato 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 API l'accesso con il tuo AWS SAM modello.

  • Se intendi avere un API endpoint 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 URI non è riconoscibile. Per risolvere il problema, verifica la versione completa URL e aggiorna il curl comando con quello corretto. URL

Messaggi di avviso

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

Durante l'installazione di AWS SAMCLI usingHomebrew, 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 non è più possibile mantenere Homebrew il supporto.

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

Soluzione: utilizzare un metodo di installazione AWS supportato.
Soluzione: per continuare a utilizzareHomebrew, utilizzate il programma di installazione gestito dalla community.
  • È possibile utilizzare il programma di Homebrew installazione gestito dalla community a propria discrezione. Per istruzioni, consultare Gestire il AWS SAMCLI con Homebrew.