Introduction

Cette rubrique décrit l'installation et la configuration du kit SDK pour .NET.

Cette rubrique décrit l'installation et la configuration du kit SDK pour .NET.

Pour utiliser un service Oracle Cloud Infrastructure spécifique dans votre projet, vous pouvez utiliser la commande "dotnet add package" à partir du répertoire racine de l'espace de travail de projet contenant le fichier de projet. La syntaxe de la commande "add package" est la suivante :

dotnet add package <PACKAGE_ID> -v <DESIRED_VERSION>

Si vous ne spécifiez pas de numéro de version, la commande add package installe la dernière version.

Cet exemple permet d'installer la dernière version du package Core Service :

dotnet add package OCI.DotNetSDK.Core

Cet exemple permet d'installer la version 1.0.0 du package Identity Service :

dotnet add package OCI.DotNetSDK.Identity -v 1.0.0
Remarque

Pour éviter les conflits de dépendance, vous devez utiliser les mêmes versions d'OCI. Packages Nuget de kit SDK pour .NET dans une application.

Téléchargement du kit SDK à partir de GitHub

Vous pouvez télécharger le kit SDK pour .NET en tant qu'archive ZIP à partir de GitHub. Il contient le kit SDK, toutes ses dépendances, la documentation et des exemples.

Installation du kit SDK avec YUM

Si vous utilisez Oracle Linux 7 ou 8, vous pouvez vous servir de YUM afin d'installer le kit SDK OCI pour .NET.
  1. Installez le kit SDK OCI pour .NET à l'aide de YUM :
    1. Pour Oracle Linux 7 :

      sudo yum-config-manager --enable ol7_developer
      sudo yum install oci-dotnet-sdk
    2. Pour Oracle Linux 8 :

      sudo yum-config-manager --enable ol8_developer
      sudo yum install oci-dotnet-sdk

      Les packages de service du kit SDK OCI .NET et leurs dépendances se trouvent dans /usr/lib/dotnet/NuPkgs/.

  2. Pour que l'interface de ligne de commande .NET puisse trouver les packages installés, vous devez effectuer l'une des opérations suivantes :
    1. Créez un fichier nommé nuget.config à la racine de votre projet d'application .NET et ajoutez le contenu suivant :
      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
            <!--To inherit the global NuGet package sources remove the <clear/> line below -->
            <clear />
            <add key="local" value="/usr/lib/dotnet/NuPkgs" />
        </packageSources>
      </configuration>
      ou
    2. Utilisez l'option --source avec les commandes de l'interface de ligne de commande .NET, en transmettant le répertoire /usr/lib/dotnet/NuPkgs/. Par exemple :
      dotnet build --source /usr/lib/dotnet/NuPkgs/
      dotnet restore --source /usr/lib/dotnet/NuPkgs/
      dotnet add package OCI.DotNetSDK.Common --source /usr/lib/dotnet/NuPkgs/
  3. Pour obtenir des informations sur le package installé, exécutez la commande suivante :
    rpm  -qi oci-dotnet-sdk
  4. Ajoutez les packages de service OCI à votre projet à l'aide de la ligne de commande .NET :
    dotnet add package OCI.DotNetSDK.Common
    dotnet add package OCI.DotNetSDK.Audit --version 4.3.0
    dotnet add package OCI.DotNetSDK.Audit --version 4.3.0 --source /usr/lib/dotnet/NuPkgs/
  5. Vous pouvez maintenant importer des espaces de noms dans votre projet. Par exemple :
    using Oci.AuditService;
    using Oci.AuditService.Models;
    using Oci.Common;
    using Oci.Common.Auth;

Utilisation du kit SDK pour .NET avec Nuget

Configuration du kit SDK

Les services de kit SDK ont besoin de deux types de configuration : les informations d'identification et les paramètres HTTP côté client.

Configuration des informations d'identification

Vous devez tout d'abord configurer vos informations d'identification ainsi que le fichier de configuration. Pour obtenir des instructions, reportez-vous à Fichier de configuration du kit SDK et de l'interface de ligne de commande.

Vous devez ensuite configurer le client afin qu'il utilise les informations d'identification. Les informations d'identification sont extraites via une interface IAuthenticationDetailsProvider que le client doit implémenter.

Ces exemples illustrent les implémentations de ConfigFileAuthenticationDetailsProvider et SimpleAuthenticationDetailsProvider.

Utilisation d'une configuration standard

Si vous utilisez les clés et l'emplacement standard de fichier de configuration, vous pouvez vous servir de ConfigFileAuthenticationDetailsProvider :


using Oci.Common.Auth;
 
// uses DEFAULT profile in default file location: i.e ~/.oci/config
var provider = new ConfigFileAuthenticationDetailsProvider("DEFAULT");
// uses custom configuration
var provider = new ConfigFileAuthenticationDetailsProvider("custom_file_location", "CUSTOM_PROFILE");
Utilisation d'une configuration personnalisée

Si vous utilisez des noms de clé personnalisés dans le fichier de configuration, vous pouvez vous servir de SimpleAuthenticationDetailsProvider

Pour charger une configuration avec ou sans profil, exécutez le code suivant :

using Oci.Common;
 
var config = ConfigFileReader.Parse(ConfigFileReader.DEFAULT_FILE_PATH);
var configWithProfile = ConfigFileReader.Parse(ConfigFileReader.DEFAULT_FILE_PATH, "DEFAULT");  

Créez ensuite un fournisseur Auth à l'aide de SimpleAuthenticationDetailsProvider :

using Oci.Common;
using Oci.Common.Auth;
 
var config = ConfigFileReader.Parse(ConfigFileReader.DEFAULT_FILE_PATH);
 
// The private key supplier can be created with the file path,or using the config file
var provider = new SimpleAuthenticationDetailsProvider {
                TenantId = config.GetValue("tenancy"),
                UserId = config.GetValue("user"),
                Fingerprint = config.GetValue("fingerprint"),
                Region = Region.FromRegionId(config.GetValue("region")),
                PrivateKeySupplier = new FilePrivateKeySupplier(config.GetValue("key_file"), config.GetValue("pass_phrase"))
               };

Configuration des options côté client

Créez une configuration côté client via la classe ClientConfiguration. Si vous ne fournissez pas votre propre configuration, le kit SDK pour .NET utilise une configuration par défaut.

L'exemple suivant indique comment fournir votre propre configuration :

var clientConfiguration = new ClientConfiguration
{
   ClientUserAgent = "DotNet-SDK-Example",
   RetryConfiguration = new RetryConfiguration
   {
      // maximum number of attempts to retry the same request
      MaxAttempts = 5,
      // retries the request if the response status code is in the range [400-499] or [500-599]
      RetryableStatusCodeFamilies = new List<int> { 4, 5 } 
   }
};

Configuration des options personnalisées

Dans le fichier de configuration, vous pouvez insérer des paires clé-valeur personnalisées que vous définissez, puis les référencer si nécessaire. Par exemple, vous pouvez spécifier un ID de compartiment fréquemment utilisé dans le fichier de configuration :

[DEFAULT]
user=ocid1.user.oc1..<your_unique_id>
fingerprint=<your_fingerprint>
key_file=~/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..<your_unique_id>
customCompartmentId=ocid1.compartment.oc1..<your_unique_id>

Vous pouvez ensuite en extraire la valeur :

using Oci.Common;
var config = ConfigFileReader.parse(ConfigFileReader.DEFAULT_FILE_PATH);
String compartmentId = config.GetValue("customCompartmentId");

Activation de la journalisation

Le kit SDK OCI pour .NET utilise le package NLog pour la journalisation. NLog est automatiquement installé avec le kit SDK pour .NET. Aucune installation supplémentaire n'est donc requise.

Pour activer la journalisation dans votre projet, procédez comme suit :
  1. Ajoutez un fichier NLog.config dans le répertoire racine du projet. Vous trouverez un exemple de fichier NLog.config ici.
  2. Ajoutez une section ItemGroup dans le fichier de projet. Par exemple :
    <ItemGroup>
         <Content Include="PATH TO NLog.config File" >
              <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
         </Content>
    </ItemGroup>
  3. Pour vous connecter à partir d'une application, créez un Logger et utilisez la méthode Info(). Par exemple :
    var logger = NLog.LogManager.GetCurrentClassLogger();
    logger.Info("Hello World");
Remarque

Seule la journalisation du kit SDK est capturée si vous ne créez pas de journaliseur à partir d'une application.