Because Cloudwatch log stream became available by an eventually consistency fashion, introduce a retry logic to avoid ResourceNotFoundException.
com.amazonaws.services.logs.model.ResourceNotFoundException: The specified log stream does not exist. (Service: AWSLogs; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: xxxx-xxxx-xxx)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1712)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1367)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1113)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
at com.amazonaws.services.logs.AWSLogsClient.doInvoke(AWSLogsClient.java:3045)
at com.amazonaws.services.logs.AWSLogsClient.invoke(AWSLogsClient.java:3012)
at com.amazonaws.services.logs.AWSLogsClient.invoke(AWSLogsClient.java:3001)
at com.amazonaws.services.logs.AWSLogsClient.executeGetLogEvents(AWSLogsClient.java:1856)
at com.amazonaws.services.logs.AWSLogsClient.getLogEvents(AWSLogsClient.java:1827)
at io.digdag.standards.command.ecs.DefaultEcsClient.lambda$getLog$7(DefaultEcsClient.java:278)
at io.digdag.standards.command.ecs.DefaultEcsClient.retryOnRateLimit(DefaultEcsClient.java:305)
at io.digdag.standards.command.ecs.DefaultEcsClient.getLog(DefaultEcsClient.java:278)
at io.digdag.standards.command.EcsCommandExecutor.fetchLogEvents(EcsCommandExecutor.java:441)
Because Cloudwatch log stream became available by an eventually consistency fashion, introduce a retry logic to avoid ResourceNotFoundException.