Introduction

Cette rubrique décrit comment installer et configurer la trousse SDK pour .NET.

Cette rubrique décrit comment installer et configurer la trousse 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 votre espace de travail de projet qui contient 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 installera la dernière version.

Cet exemple installe la dernière version de l'ensemble Service de base :

dotnet add package OCI.DotNetSDK.Core

Cet exemple installe la version 1.0.0 de l'ensemble Service d'identité :

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

Pour éviter les conflits de dépendance, vous devez utiliser les mêmes versions de tous les OCI. Ensembles Nuget de trousse SDK .NET dans une application.

Téléchargement de la trousse SDK à partir de GitHub

Vous pouvez télécharger la trousse SDK pour .NET en tant qu'archive zip à partir de GitHub. Le téléchargement contient la trousse SDK, toutes ses dépendances, la documentation, ainsi que des exemples.

Installation de la trousse SDK avec Yum

Si vous utilisez Oracle Linux 7 ou 8, vous pouvez utiliser yum pour installer la trousse SDK pour .NET d'OCI.
  1. Pour installer la trousse SDK OCI pour .NET avec 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 ensembles de services de la trousse SDK OCI Dotnet et ses dépendances se trouvent dans /usr/lib/dotnet/NuPkgs/.

  2. Pour que l'interface de ligne de commande dotnet puisse trouver les ensembles installés, vous devez effectuer l'une des opérations suivantes :
    1. Créez un fichier nommé nuget.config dans 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 dotnet, 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 l'ensemble installé, exécutez la commande suivante :
    rpm  -qi oci-dotnet-sdk
  4. Ajoutez les ensembles des services OCI à votre projet à l'aide de la ligne de commande dotnet :
    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 de la trousse SDK pour .NET avec Nuget

Configuration de la trousse SDK

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

Configuration des données d'identification

Tout d'abord, vous devez configurer vos données d'identification et votre fichier de configuration. Pour les instructions, voir Fichier de configuration des trousses SDK et de l'interface de ligne de commande.

Vous devez ensuite configurer le client pour utiliser les données d'identification. Les données d'identification sont résumées au moyen d'une interface IAuthenticationDetailsProvider que le client doit mettre en oeuvre.

Ces exemples présentent les mises en oeuvre de ConfigFileAuthenticationDetailsProvider et SimpleAuthenticationDetailsProvider.

Utilisation d'une configuration standard

Si vous utilisez des clés de fichier de configuration standard et l'emplacement du fichier de configuration standard, vous pouvez utiliser 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és personnalisés dans le fichier de configuration, vous pouvez utiliser SimpleAuthenticationDetailsProvider

Pour charger une configuration avec ou sans profil :

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

Ensuite, créez un fournisseur Auth en utilisant 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 au moyen de la classe ClientConfiguration. Si vous ne fournissez pas votre propre configuration, la trousse SDK pour .NET utilise une configuration par défaut.

L'exemple suivant montre 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 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 extraire la valeur :

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

Activation de la journalisation

La trousse OCI SDK pour .NET utilise l'ensemble NLog pour la journalisation. NLog est installé automatiquement avec la trousse SDK pour .NET, donc aucune installation supplémentaire n'est requise.

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

Seule la journalisation de la trousse SDK sera saisie si vous ne créez pas d'enregistreur automatique à partir d'une application.