From my point of view your tests are wearing too many hats.
If I understood correctly, your tests are doing / checking all the following:
- creating logs on LA
- connecting to LA
- grabbing the logs
- "digest"
- validate
Judging by your provided microservice description, points #1, #2, #3, besides being very time consuming to perform each and every time for every test / test suite, they are also are kind of useless as they do not seem to be within the scope of the said microservice.
Possible alternatives:
- Contract Testing
This way you can make sure that any changes in your service will not impact the reading of logs from Azure LA.
- Have a separate job that runs periodically to create and add a basic log to Azure LA (since you mentioned the time constraint of 90 days, then having this separate job run once a month should do the trick) and then have some specific tests that only validate the retrieval and maybe integrity of logs.
Regardless of the above approach, if the purpose of the service is to digest/interpret/transform the logs retrieved, this should be done at the service level.
An approach would be for your tests to generate the random data you mentioned and save it on the disk/in memory and then the service to read it from there and validate whatever is required.
The approach of having more atomic tests should considerably speed up your testing while also allowing you to use resources more efficient and get rid of any constraints Azure LA may impose (if any).