Utiliser Microsoft Azure WebJobs avec Office 365

Vous pouvez implémenter la fonctionnalité de travail du Microsoft Azure à l’aide Microsoft Azure WebJobs ou Windows Task Scheduler pour effectuer des tâches dans SharePoint Online. Un travail du temps est un processus répétitif, programmé et en arrière-plan qui s’exécute SharePoint pour effectuer certaines tâches.

Par exemple, vous souhaitez peut-être qu’un travail du timer copie les données entrées dans une liste SharePoint une base de données. Dans SharePoint Online, vous ne pouvez pas déployer de solutions de batterie de serveurs, c’est-à-dire la façon dont les travaux du timer ont été déployés dans le passé. Pour implémenter des fonctionnalités de travail du SharePoint Online similaires, vous devez exécuter une application console en tant que tâche web Azure. L’application console accède à SharePoint Online à l’aide du modèle objet côté client (CSOM).

Cet article présente les concepts de base impliqués dans le déploiement d’applications console sous la forme d’Azure WebJobs pour exécuter et accéder à vos sites et contenus SharePoint Online.

Notes

Le code dans cet article est fourni tel quel, sans garantie d’aucune sorte, expresse ou implicite, y compris mais sans s’y limiter, aucune garantie implicite d’adéquation à un usage particulier, à une qualité marchande ou une absence de contrefaçon.

Créer et exécuter une application console en tant que webjob Azure

Pour configurer votre application console afin qu’elle s’exécute en tant que webjob Azure, vous devez :

  1. Créez un compte d’organisation pour la webjob Azure à utiliser pour accéder à SharePoint sites et au contenu.

  2. Créez et définissez l’application console.

  3. Ajoutez du code à l’application console.

  4. Publiez votre application console en tant que webjob Azure.

  5. Exécutez et vérifiez votre azure webjob.

Créer un compte d’organisation

Vous devez créer un compte pour la webjob Azure à utiliser lors de l’accès SharePoint sites et le contenu. Pour plus d’informations, reportez-vous à l’article Ajouter des utilisateurs individuellement ou en bloc à Office 365 - Aide de l’administrateur.

Lorsque la webjob Azure s’exécute, le champ Modifié par stocke et affiche la valeur entrée dans le nom d’affichage du compte d’organisation. Veillez à choisir un nom d’affichage que vos utilisateurs peuvent facilement identifier comme compte utilisé par azure WebJob pour accéder à SharePoint.

Créer et configurer l’application console

Pour créer une application console à exécuter en tant que webjob Azure, effectuez les étapes suivantes :

  1. Créez un projet d'application console. In Visual Studio, choose New Project > Visual C# Console > Application > OK.

  2. Une fois l’application console créée, choisissez Outils > NuGet Gestionnaire de package > Gérer NuGet packages pour Solution > Online > All.

  3. Recherchez App for SharePoint Web Shared Computer Toolkit.

  4. Choose Install, and then choose OK.

  5. Sélectionnez Fermer.

  6. Vérifiez que SharePointContext.cs et TokenHelper.cs ont été ajoutés au projet d’application console.

  7. Enregistrez les informations de votre compte dans app.config fichier en ajoutant l’élément appSettings affiché. Modifiez SPOAccount et SPOPassword sur le nom d’utilisateur et le mot de passe du compte d’organisation que vous avez créé précédemment.

    <?xml version="1.0" encoding="utf-8" ?>
     <configuration>
      <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
      <appSettings>
        <add key="SPOAccount" value="admin@contoso.onmicrosoft.com"/>
        <add key="SPOPassword" value="Contoso"/>
      </appSettings>
     </configuration>
    

    Attention

    App.config stocke le nom d’utilisateur et le mot de passe du compte d’organisation en texte clair. Cette méthode est utilisée uniquement à des fins de démonstration et ne doit pas être utilisée dans votre déploiement de production de vos azure WebJobs. Nous vous recommandons de chiffrer le mot de passe ou de l’authentifier à l’aide d’OAuth avec des jetons d’accès. Pour plus d’informations, voir le billet de blog de Kirk Evans sur la création d’un SharePoint en tant que travail du timeur.

Ajouter du code à l’application console

Dans Program.cs, ajoutez le code suivant à l’application console.

  1. Ajoutez des instructions using.

     using Microsoft.SharePoint.Client;
     using System.Security;
     using System.Configuration; 
    
  2. Ajoutez les méthodes suivantes à votre classe :

    • Se permet de se SharePoint site web, puis utilise le CSOM pour effectuer des tâches sur votre site ou votre contenu. Cet exemple de code utilise le modèle CSOM pour rechercher une liste et en sortie le nombre total d’éléments de la liste dans la fenêtre de console. Lorsque vous utilisez Azure WebJobs, vous pouvez voir la sortie de la fenêtre de console dans les détails de l’application WebJob Run, qui sont expliqués dans Exécuter et vérifier votre azure WebJob.

    • GetSPOSecureStringPassword lit votre mot de passe à partir app.config.

    • GetSPOAccountName lit votre nom d’utilisateur à partir app.config.

    static void Main(string[] args)
        {
            using (ClientContext context = new ClientContext("https://contoso.sharepoint.com"))
            {
                // Use default authentication mode.
                context.AuthenticationMode = ClientAuthenticationMode.Default;                 
                context.Credentials = new SharePointOnlineCredentials(GetSPOAccountName(), GetSPOSecureStringPassword());
    
                // Add your CSOM code to perform tasks on your sites and content.
    
                try
                {
                    List objList = context.Web.Lists.GetByTitle("Docs");
                    context.Load(objList);
                    context.ExecuteQuery();
    
                    if (objList != null &amp;&amp; objList.ItemCount > 0)
                    {
                        Console.WriteLine(objList.Title.ToString() + " has " + objList.ItemCount + " items.");
                    }
    
                }
                catch (Exception ex)
                {
                    Console.WriteLine("ERROR: " + ex.Message);
                    Console.WriteLine("ERROR: " + ex.Source);
                    Console.WriteLine("ERROR: " + ex.StackTrace);
                    Console.WriteLine("ERROR: " + ex.InnerException);
    
                }
            }
                
        }
    
    private static SecureString GetSPOSecureStringPassword()
    {
      try
      {
          Console.WriteLine("Entered GetSPOSecureStringPassword.");
          var secureString = new SecureString();
          foreach (char c in ConfigurationManager.AppSettings["SPOPassword"])
          {
              secureString.AppendChar(c);
          }
          Console.WriteLine("Constructed the secure password.");
    
          return secureString;
      }
      catch
      {
          throw;
      }
    }
    
    private static string GetSPOAccountName()
    {
      try
      {
          Console.WriteLine("Entered GetSPOAccountName.");
          return ConfigurationManager.AppSettings["SPOAccount"];
      }
      catch
      {
          throw;
      }
    }
    

Publier votre application console en tant que webjob Azure

Lorsque vous avez terminé le développement de votre application console, vous devez déployer l’application console en tant que webjob Azure. Pour déployer votre application console en tant que webjob Azure, vous pouvez :

Exécuter et vérifier votre azure webjob

Après avoir effectué toutes les étapes précédentes, votre tâche web Azure WebJob doit exécuter et effectuer des tâches dans Office 365 abonnement. Parfois, vous devrez peut-être effectuer des opérations de maintenance ou dépanner vos azure WebJobs. Pour vérifier que votre webjob Azure est en cours d’exécution :

  • Si votre webjob Azure a mis à jour un élément SharePoint, comme un élément de liste, le champ Modifié par affiche le compte d’organisation utilisé par azure WebJob pour accéder à SharePoint.

  • Examinez les journaux de détails webjob pour votre site web Azure WebJob. Les journaux des détails de la tâche Web vous permet de passer en revue la réussite ou l’échec d’un travail, les résultats de la tâche WebJob (par exemple, lorsque Console.WriteLine a été appelée) et d’autres détails sur l’exécuter. Pour plus d’informations, voir la section Afficher l’historique des travaux dans Exécuter des tâches en arrière-plan avec WebJobs.

Voir aussi