Antwort

1

Pseudocode: Bestätigen, dass eine Protokollstrom der Log-Gruppe

  1. Build-describeLogStreamsRequest vorhanden ist: auf dem Konstruktor
    • Pass in Ihren angegebenen Log-Gruppennamen oder auf der withLogGroupName Setter Anfrage erhältlich.
    • Geben Sie den Namen des Protokolldatenstroms in die withLogStreamNamePrefix Setter-Datei ein.
  2. Anruf describeLogStreams.
  3. Überprüfen Sie die resultierenden Protokolldatenströme auf dem Objekt DescribeLogStreamsResult. Wenn die Liste nicht leer ist, können Sie mit diesem Stream weiterarbeiten.

Java: Überprüfen Sie, dass ein Log-Stream des Log-Gruppe existiert (Anmerkung: ungetestet)

AWSLogsClient logs = new AWSLogsClient(); 

DescribeLogStreamsRequest req = new DescribeLogStreamsRequest("myLogGroupName") 
    .withLogStreamNamePrefix("myLogStreamName"); 

DescribeLogStreamsResult res = logs.describeLogStreams(req); 

if(res != null && res.getLogStreams() != null && !res.getLogStreams().isEmpty()) 
{ 
    // Log Stream exists, do work here 
} 
+0

Nur ein Heads-up, ein Aufruf 'AWSLogsClient # describeLogStreams' mit einem' logGroupName', die nicht generiert existiert eine 'ResourceNotFoundException' . Wenn Sie sich über die Existenz der Protokollgruppe nicht sicher sind, sollten Sie die Ausnahme behandeln. – Trein

0

In Wirklichkeit um einen Anruf zu AWSLogsClient#describeLogStreams mit einem logGroupName, die nicht generiert existiert eine ResourceNotFoundException . Aus diesem Grund sollten Sie überprüfen nach:

  1. Abwesenheit von ResourceNotFoundException.
  2. Existenz eines einzigen Eintrags in DescribeLogStreamsResult#getLogStreams mit der logStreamName zur Verfügung gestellt.

-Code-Schnipsel eines Verfahrens, das das tun:

private boolean doesLogStreamExist() { 
    DescribeLogStreamsRequest request = new DescribeLogStreamsRequest() 
     .withLogGroupName(logGroupName) 
     .withLogStreamNamePrefix(logStreamName); 
    try { 
     return client.describeLogStreams(request).getLogStreams() 
      .stream() 
      .anyMatch(it -> it.getLogStreamName().equals(logStreamName)); 
    } catch (ResourceNotFoundException e) { 
     // log group does not exist 
     return false; 
    } 
} 
Verwandte Themen