Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Configurez un client pour la connexion à un cluster de silos et l’envoi de requêtes aux grains par programmation via une et plusieurs classes d’options IHostBuilder supplémentaires. Comme les options de silo, les classes d’options clientes suivent le modèle Options dans .NET.
Configurez un client pour la connexion à un cluster de silos et l’envoi de requêtes aux grains par programmation via une et plusieurs classes d’options ClientBuilder supplémentaires. Comme les options de silo, les classes d’options clientes suivent le modèle Options dans .NET.
Conseil / Astuce
Si vous souhaitez simplement démarrer un silo local et un client local à des fins de développement, consultez la configuration du développement local.
Conseil / Astuce
Si vous utilisez .NET Aspire, la configuration du client est gérée automatiquement. Aspire injecte les paramètres ClusterId, ServiceId, et du fournisseur de clustering via des variables d’environnement, ce qui permet d’utiliser la méthode UseOrleansClient sans paramètre. Consultez Orleans et l’intégration de .NET Aspire pour l’approche recommandée.
Ajoutez le package NuGet Microsoft.Orleans.Clustering.AzureStorage à votre projet client.
Il existe plusieurs aspects clés de la configuration du client :
- Orleans Information de regroupement
- Fournisseur de clustering
- Composants d’application
Exemple de configuration du client :
L’utilisation d’un URI de service TokenCredential est l’approche recommandée. Ce modèle évite de stocker des secrets dans la configuration et tire parti de l’ID Microsoft Entra pour l’authentification sécurisée.
DefaultAzureCredential fournit une chaîne de certificats qui fonctionne en toute transparence dans les environnements de développement et de production locaux. Pendant le développement, il utilise vos informations d’identification Azure CLI ou Visual Studio. En production sur Azure, il utilise automatiquement l’identité managée affectée à votre ressource.
Conseil / Astuce
DefaultAzureCredential fonctionne parfaitement dans les environnements de développement local et de production. En développement, il utilise vos informations d’identification Azure CLI ou Visual Studio. En production sur Azure, elle utilise automatiquement l’identité managée de la ressource. Pour améliorer les performances et le débogage en production, envisagez de le remplacer par un identifiant spécifique comme ManagedIdentityCredential. Pour plus d’informations, consultez Conseils d’utilisation pour DefaultAzureCredential.
using Azure.Identity;
var builder = Host.CreateApplicationBuilder(args);
builder.UseOrleansClient(clientBuilder =>
{
clientBuilder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
.UseAzureStorageClustering(options =>
{
options.ConfigureTableServiceClient(
new Uri("https://<your-storage-account>.table.core.windows.net"),
new DefaultAzureCredential());
});
});
using var host = builder.Build();
await host.StartAsync();
public static async Task ConfigureClient(string connectionString)
{
var client = new ClientBuilder()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString))
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.Build();
await client.Connect();
}
Nous allons décomposer les étapes utilisées dans cet exemple :
Orleans Information de regroupement
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "orleans-docker";
options.ServiceId = "AspNetSampleApp";
})
Ici, nous avons défini deux choses :
- À partir de ClusterOptions.ClusterId jusqu'à
"my-first-cluster": il s'agit d'un ID unique pour le cluster Orleans. Tous les clients et silos utilisant cet ID peuvent communiquer directement entre eux. Certains peuvent choisir d’utiliser une valeur différente ClusterId pour chaque déploiement, par exemple. - De ClusterOptions.ServiceId à
"AspNetSampleApp": c'est un ID unique pour votre application, utilisé par certains fournisseurs (par exemple, les fournisseurs de persistance). Cet ID doit rester stable dans les déploiements.
Fournisseur de clustering
Conseil / Astuce
DefaultAzureCredential fonctionne parfaitement dans les environnements de développement local et de production. En développement, il utilise vos informations d’identification Azure CLI ou Visual Studio. En production sur Azure, elle utilise automatiquement l’identité managée de la ressource. Pour améliorer les performances et le débogage en production, envisagez de le remplacer par un identifiant spécifique comme ManagedIdentityCredential. Pour plus d’informations, consultez Conseils d’utilisation pour DefaultAzureCredential.
clientBuilder.UseAzureStorageClustering(options =>
{
options.ConfigureTableServiceClient(
new Uri("https://<your-storage-account>.table.core.windows.net"),
new DefaultAzureCredential());
});
public static void ConfigureAzureClustering(IClientBuilder clientBuilder, string connectionString)
{
clientBuilder.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString));
}
Le client découvre toutes les passerelles disponibles dans le cluster à l’aide de ce fournisseur. Plusieurs fournisseurs sont disponibles ; ici, nous utilisons le fournisseur de tables Azure.
Pour plus d’informations, consultez Configuration du serveur.
Composants d’application
public static void ConfigureApplicationParts(IClientBuilder clientBuilder)
{
clientBuilder.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly)
.WithReferences());
}
Pour plus d’informations, consultez Configuration du serveur.