Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come faccio a risolvere l'errore "Il gruppo di log non esiste" per i log delle funzioni Lambda nella console CloudWatch?

3 minuti di lettura
0

Quando visualizzo i log per la mia funzione AWS Lambda nella console Amazon CloudWatch, ricevo il messaggio di errore "Il gruppo di log non esiste". Voglio risolvere l'errore.

Breve descrizione

Se non è presente un gruppo di log per la tua funzione Lambda quando provi a visualizzare i log della funzione, CloudWatch restituisce il messaggio di errore seguente:

"Log group does not exist. The specific log group: <log group name> does not exist in this account or region." (Il gruppo di log non esiste. Il gruppo di log specifico: <nome gruppo di log> non esiste in questo account o regione.)

I log vengono generati dopo la prima esecuzione della funzione. Se non sono presenti gruppi di log dopo l'invocazione alla funzione, la causa è un problema con le autorizzazioni AWS Identity and Access Management (IAM) della funzione.

Per risolvere l'errore Il gruppo di log non esiste di CloudWatch, verifica quanto segue:

Nota: per informazioni sui problemi di log relativi alle autorizzazioni con Lambda@Edge, consulta Service-linked roles for Lambda@Edge.

Risoluzione

Nota: la risoluzione seguente non funziona per le autorizzazioni rifiutate di livello superiore, ad esempio tramite una policy di controllo dei servizi o un limite delle autorizzazioni. Devi prima risolvere le autorizzazioni rifiutate.

Modifica la policy IAM per il ruolo di esecuzione della funzione Lambda, includendo quanto segue:

  • Consenti le azioni di scrittura CreateLogGroup e CreateLogStream.
    Nota: se non ti occorrono autorizzazioni personalizzate per la tua funzione, puoi collegare la policy gestita AWSLambdaBasicExecutionRole per consentire a Lambda di scrivere i log su CloudWatch.
  • La regione AWS specificata nell'ARN deve essere la stessa della regione della funzione Lambda.
  • La risorsa log-group deve includere il nome della funzione Lambda. Ad esempio, se il nome della funzione è myLambdaFunction, il log-group associato sarà /aws/lambda/myLambdaFunction.

Quella che segue è una policy di esempio che include le autorizzazioni necessarie a un ruolo Lambda per accedere ai log di CloudWatch:

{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": "logs:CreateLogGroup",  
      "Resource": "arn:aws:logs:region:accountId:*"  
    },  
    {  
      "Effect": "Allow",  
      "Action": [  
        "logs:CreateLogStream",  
        "logs:PutLogEvents"  
      ],  
      "Resource": [  
        "arn:aws:logs:region:accountId:log-group:/aws/lambda/functionName:*"  
      ]  
    }  
  ]  
}

Nota: assicurati di aggiungere il servizio Lambda nella policy di attendibilità del ruolo IAM:

{  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Principal": {  
        "Service": "lambda.amazonaws.com"  
      },  
      "Action": "sts:AssumeRole"  
    }  
  ]  
}

Informazioni correlate

Managing permissions in AWS Lambda

AWS UFFICIALE
AWS UFFICIALEAggiornata un mese fa