Instantiating clients without DI¶
This document provides guidelines on how to setup EventSubscriberClient
and ComputeClient
in case user is unable to leverage AddPlatformClients
and Microsoft's dependency injection container.
Setting up logging provider and creating logger for EventSubscriberClient
:
using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
var logger = loggerFactory.CreateLogger<EventSubscriberClient>();
Setting up authorization policy. This sample uses OpenApiKeyPolicy
and that openapikey
has to be provided:
var openApiKeyPolicy = new OpenApiKeyPolicy(openapikey);
Setting up ServiceUriProvider
and SasTokenClient
:
var platformEnvironment = PlatformEnvironment.Dev0;
var serviceUriProvider = new ServiceUriProvider(platformEnvironment, openApiKeyPolicy);
var sasTokenClient = new SasTokenClient(platformEnvironment, openApiKeyPolicy);
Setting up EventSubscriberClient
:
var eventSubscriberClient = new EventSubscriberClient(logger, serviceUriProvider, sasTokenClient);
Setting up ComputeClient
and creating an execution:
var computeClient = new ComputeClient(serviceUriProvider, sasTokenClient, eventSubscriberClient);
await computeClient
.CreateExecution(projectId)
.WithModelRun(new FemEngineHD(), "https://coreenginedev0inputs.blob.core.windows.net/data/lake-seq/lake1.m21fm")
.WithRemoteInput(
new RemoteInput("https://coreenginedev0inputs.blob.core.windows.net/data/lake-seq/lake1.m21fm", "lake1.m21fm"),
new RemoteInput("https://coreenginedev0inputs.blob.core.windows.net/data/lake-seq/lake2.m21fm", "lake2.m21fm"),
new RemoteInput("https://coreenginedev0inputs.blob.core.windows.net/data/lake-seq/lake.mesh", "lake.mesh"))
.WithMessageHandler(new MessageHandler())
.ExecuteAndWaitAsync();