Come posso risolvere la risposta InternalServerError su Amazon SageMaker?
Quando eseguo un processo di elaborazione, addestramento o previsione di Amazon SageMaker, la richiesta dà esito negativo restituendo la risposta "HTTP Error 500: Internal Server Error" o "InternalServerError: We encountered an internal error. Please try again".
Risoluzione
Se il processo o la richiesta di inferenza di SageMaker a un endpoint dà esito negativo restituendo la risposta "InternalServerError", riprova la richiesta. Riprovare la richiesta elimina l'errore dovuto a un problema transitorio.
Se l'errore persiste, segui questi passaggi per esaminare i log del processo o dell'endpoint su Amazon CloudWatch.
Revisione dei log di CloudWatch
Esamina i log di CloudWatch associati alla risorsa SageMaker per determinare la causa principale:
1. Apri la console SageMaker.
2. Scegli la risposta pertinente in Elaborazione, Addestramento o Inferenza.
3. Scegli il nome dell’endpoint, del processo di elaborazione o di addestramento.
4. Nella sezione Monitoraggio, scegli Visualizza log per aprire la console CloudWatch.
5. Nella console CloudWatch, scegli il flusso di log per il processo o l'endpoint.
6. Se non è presente alcun flusso di log o se il flusso di log è vuoto, conferma che il ruolo di esecuzione della risorsa abbia una policy con le seguenti autorizzazioni:
{ "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }
7. Esamina i log per trovare il messaggio di errore.
Aggiunta di un codice di debug al tuo script di inferenza (opzionale)
Per semplificare il processo di revisione del log, puoi aggiungere codici di debug al tuo script di inferenza. Di seguito è riportato un esempio di codice di inferenza per il debug di un endpoint. Puoi usare questo codice per confermare che hai chiamato correttamente la funzione predict(). Il codice stampa anche la variabile data che mostra il valore effettivo passato all'endpoint. In questo esempio, MYDEBUG è la parola chiave da cercare nel flusso di log di CloudWatch.
def predict(): data = None print("MYDEBUG: Predict function called") # Convert from CSV to pandas if flask.request.content_type == 'text/csv': data = flask.request.data.decode('utf-8') s = StringIO.StringIO(data) data = pd.read_csv(s, header=None) ## To print the actual data set print( "MYDEBUG: Printing data") print( data.head(10) )
Risoluzione di altre cause comuni di "InternalServerError"
Utilizzo delle risorse
Un processo SageMaker potrebbe non riuscire dando la risposta "InternalServerError" se il container del processo sull'istanza consuma le risorse dell'istanza. Puoi visualizzare l'utilizzo delle risorse esaminando le metriche CPUUtilization, MemoryUtilization e DiskUtilization in CloudWatch.
Per esaminare le metriche delle istanze, procedi nel modo seguente:
1. Apri la console SageMaker.
2. Nella sezione Processi di elaborazione/addestramento, scegli Elaborazione/Addestramento.
3. Scegli il nome del processo.
4. Nella sezione Monitoraggio, scegli Visualizza i parametri dell'istanza per aprire la console CloudWatch. Se il processo utilizza risorse elevate, passa a un tipo di istanza più grande o collega un volume di archiviazione maggiore all'istanza esistente.
Autorizzazioni EC2 mancanti nel ruolo di esecuzione di SageMaker
Il ruolo di esecuzione di Amazon SageMaker potrebbe mostrare "InternalServerError" quando le autorizzazioni di Amazon Elastic Compute Cloud (Amazon EC2) non sono configurate correttamente. Quando specifichi un oggetto VpcConfig nel tuo processo SageMaker, conferma che il ruolo di esecuzione di SageMaker del lavoro abbia una policy con le seguenti autorizzazioni:
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Per ulteriori informazioni, consulta la pagina SageMaker roles.
Informazioni correlate
CreateProcessingJob API: Execution role permissions
SageMaker jobs and endpoint metrics
Connect SageMaker Studio Notebooks in a VPC to external resources
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- Perché il mio endpoint Amazon SageMaker entra in stato di errore quando creo o aggiorno un endpoint?AWS UFFICIALEAggiornata 2 anni fa