Référence Aspire

Les types, méthodes, paramètres et défauts de l'intégration Aspire de FoundationDB. Pour un premier lancement, voir Getting started ; pour des tâches ponctuelles, voir les guides pratiques ; pour la conception, voir l'explication.

Packages

Package Projet Fournit
FoundationDB.Aspire.Hosting AppHost AddFoundationDb, AddFoundationDbCluster, et les modificateurs de ressource cluster
FoundationDB.Aspire chaque service AddFoundationDb(connectionName), qui enregistre IFdbDatabaseProvider
FoundationDB.Client.Native chaque service le client natif fdb_c, épinglé sur le major.minor du cluster

AddFoundationDb

Définit un cluster FoundationDB qu'Aspire fait tourner comme un container Docker, et rend un IResourceBuilder<FdbClusterResource>.

IResourceBuilder<FdbClusterResource> AddFoundationDb(
    this IDistributedApplicationBuilder builder,
    string name,
    int apiVersion,
    string root,
    int? port = null,
    string? clusterVersion = null,
    FdbVersionPolicy? rollForward = null)
Paramètre Sens Défaut
name le nom de la ressource, réutilisé par le AddFoundationDb du service requis
apiVersion le niveau d'API que l'application demande, égal ou inférieur à la version du cluster requis
root la racine du directory-layer contre laquelle l'application résout ses chemins requis
port le port hôte auquel le container se lie 4550
clusterVersion la version d'image cible ("7.4.6", "7.4.*", "7.*") dérivée de apiVersion
rollForward jusqu'où une image plus récente peut être sélectionnée dérivée de clusterVersion

Une surcharge prend root comme un FdbPath et ajoute imageRegistry (défaut "docker.io").

AddFoundationDbCluster

Définit une connexion à un cluster existant à partir d'un cluster file. Elle ne démarre aucun container, et rend un IResourceBuilder<FdbConnectionResource>.

IResourceBuilder<FdbConnectionResource> AddFoundationDbCluster(
    this IDistributedApplicationBuilder builder,
    string name,
    int apiVersion,
    string root,
    string? clusterFile = null,
    string? clusterVersion = null)
Paramètre Sens Défaut
name le nom de la ressource, réutilisé par le AddFoundationDb du service requis
apiVersion le niveau d'API que l'application demande requis
root la racine du directory-layer contre laquelle l'application résout ses chemins requis
clusterFile le chemin du cluster file passé aux services qui le référencent null
clusterVersion la version de la bibliothèque cliente à utiliser null

Une surcharge prend root comme un FdbPath.

Modificateurs de ressource cluster

S'appliquent au builder que AddFoundationDb ou AddFoundationDbCluster rend.

Modificateur S'applique à Effet
WithAutoProvisioning(bool enabled = true) FdbClusterResource active ou désactive le provisioning au premier démarrage (actif par défaut)
WithClusterVersion(string version) FdbConnectionResource définit la version de la bibliothèque cliente
WithLifetime(ContainerLifetime.Persistent) ressources container (Aspire) réutilise le container et son volume d'une exécution à l'autre
WithReference(fdb) un projet (Aspire) injecte la connection string du cluster sous son nom
WaitFor(fdb) un projet (Aspire) retient le projet jusqu'à ce que le cluster se déclare en bonne santé

FdbVersionPolicy

La politique de roll-forward pour l'image Docker, dans le namespace Aspire.Hosting.ApplicationModel.

Valeur Sélectionne
Exact la version exacte demandée
Latest la dernière version du registry, compatibilité non garantie
LatestMajor la dernière version compatible au niveau de la demande ou au-dessus, tous majors confondus
LatestMinor le dernier minor compatible au niveau de la demande ou au-dessus, dans le major
LatestPatch le dernier patch dans le minor demandé

Formes de clusterVersion

La forme string de clusterVersion fixe la version et un rollForward par défaut.

Forme Exemple Version rollForward par défaut
exacte "7.4.6" cette version Exact
wildcard de patch "7.4.*" 7.4 LatestPatch
wildcard de minor "7.*" 7 LatestMinor
omise ou "*" (aucun) dérivée de apiVersion LatestMajor

Un apiVersion de niveau 740 correspond à la version 7.4 (le dernier chiffre du niveau est normalement 0).

AddFoundationDb (service)

Lit la connexion injectée nommée connectionName et enregistre le singleton IFdbDatabaseProvider. Dans le package FoundationDB.Aspire.

IHostApplicationBuilder AddFoundationDb(
    this IHostApplicationBuilder builder,
    string connectionName,
    Action<FdbClientSettings>? configureSettings = null,
    Action<FdbDatabaseProviderOptions>? configureProvider = null)

configureSettings ajuste les settings du client lus depuis la configuration ; configureProvider ajuste les options du provider. Les deux sont optionnels.

Fdb.Provisioning.EnsureDatabaseConfiguredAsync

Configure la base de données d'un cluster neuf et rend la main une fois qu'elle est disponible. Dans FoundationDB.Client ; l'AppHost et le test harness l'appellent tous les deux.

Task EnsureDatabaseConfiguredAsync(
    FdbCliRunner runFdbCli,
    TimeSpan timeout,
    string configuration = "single ssd",
    TimeSpan? probeInterval = null,
    Action<string>? log = null,
    CancellationToken ct = default)
Paramètre Sens Défaut
runFdbCli un delegate qui exécute fdbcli avec les arguments donnés et rend son code de sortie et sa sortie requis
timeout la borne de l'attente ; la méthode throw si la base de données n'est pas disponible à temps requis
configuration l'argument de configure new "single ssd"
probeInterval le délai entre deux vérifications de disponibilité un défaut interne
log un sink pour les lignes de progression null
ct le cancellation token default

L'appel est idempotent : une base de données déjà configurée est laissée intacte.

Défauts du container

Setting Valeur
port hôte et port du container 4550 (les deux égaux, proxy Aspire désactivé)
image foundationdb/foundationdb
registry d'image docker.io
volume de données fdb_data monté sur /var/fdb/data

Télémétrie

FoundationDB.Aspire ajoute AddFoundationDbInstrumentation à la fois à TracerProviderBuilder et MeterProviderBuilder, pour que le pipeline OpenTelemetry d'un service puisse collecter les traces et les métriques du binding.