Comment utiliser Spring Boot Starter pour Azure StorageHow to use the Spring Boot Starter for Azure Storage

Cet article vous explique comment créer une application personnalisée à l’aide du Spring Initializr, puis en ajoutant le démarreur de stockage Azure à votre application, et en utilisant votre application pour charger un blob dans votre compte de stockage Azure.This article walks you through creating a custom application using the Spring Initializr, then adding the Azure storage starter to your application, and then using your application to upload a blob to your Azure storage account.

PrérequisPrerequisites

Pour suivre les étapes décrites dans cet article, vous devez disposer des éléments suivants :The following prerequisites are required in order to follow the steps in this article:

Important

Spring Boot 2.0 ou version ultérieure est requis pour effectuer les différentes étapes de cet article.Spring Boot version 2.0 or greater is required to complete the steps in this article.

Créer un compte de stockage Azure et un conteneur de blob pour votre applicationCreate an Azure Storage Account and blob container for your application

La procédure suivante permet de créer un compte de stockage Azure et un conteneur.The following procedure creates an Azure storage account and container.

  1. Accédez au portail Azure à l’adresse https://portal.azure.com/ et connectez-vous.Browse to the Azure portal at https://portal.azure.com/ and sign in.

  2. Cliquez sur +Créer une ressource, puis Stockage, et cliquez ensuite sur Compte de stockage.Click +Create a resource, then Storage, and then click Storage Account.

    Créer un compte de stockage Azure

  3. Dans la page Créer un compte de stockage, entrez les informations suivantes :On the Create storage account page, enter the following information:

    • Sélectionnez Abonnement.Select Subscription.
    • Sélectionnez Groupe de ressources ou créez un groupe de ressources.Select Resource group, or create a new resource group.
    • Entrez un Nom de compte de stockage unique qui fera partie de l’URI de votre compte de stockage.Enter a unique Storage account name, which will become part of the URI for your storage account. Par exemple : si vous saisissez wingtiptoysstorage comme Nom, votre URI sera wingtiptoysstorage.core.windows.net.For example: if you entered wingtiptoysstorage for the Name, the URI would be wingtiptoysstorage.core.windows.net.
    • Précisez l'Emplacement de votre compte de stockage.Specify the Location for your storage account.
  4. Une fois les options ci-dessus définies, cliquez sur Vérifier + créer.When you have specified the options listed above, click Review + create.

  5. Passez en revue la spécification, puis cliquez sur Créer pour créer votre compte de stockage.Review the specification, then click Create to create your storage account.

  6. Une fois le déploiement terminé, cliquez sur Accéder à la ressource.When the deployment is complete, click Go to resource.

  7. Cliquez sur Conteneurs.Click Containers.

  8. Cliquez sur + conteneur.Click + Container.

    • Nommez le conteneur.Name the container.
    • Sélectionnez Objet blob dans la liste déroulante.Select Blob from the drop-down list.

    Création du conteneur d’objets blob

  9. Le portail Azure répertorie votre conteneur d’objets blob une fois qu’il a été créé.The Azure portal will list your blob container after is has been created.

Créer une application Spring Boot simple avec Spring InitializrCreate a simple Spring Boot application with the Spring Initializr

La procédure suivante crée l’application Spring Boot.The following procedure creates the Spring boot application.

  1. Accédez à https://start.spring.io/.Browse to https://start.spring.io/.

  2. Spécifiez les options suivantes :Specify the following options:

    • Générez un projet Maven.Generate a Maven project.

    • Spécifiez Java.Specify Java.

    • Spécifiez une version de Spring Boot égale ou supérieure à 2.0.Specify a Spring Boot version that is equal to or greater than 2.0.

    • Indiquez les noms du Groupe et de l’Artefact de votre application.Specify the Group and Artifact names for your application.

    • Ajoutez la dépendance Web.Add the Web dependency.

      Options de base de Spring Initializr

    Notes

    Le Spring Initializr utilise les noms de Groupe et d’Artefact pour créer le nom du package. Par exemple, com.wingtiptoys.storage.The Spring Initializr uses the Group and Artifact names to create the package name; for example: com.wingtiptoys.storage.

  3. Une fois les options ci-dessus définies, cliquez sur Générer.When you have specified the options listed above, click Generate.

  4. Lorsque vous y êtes invité, téléchargez le projet dans un emplacement défini par un chemin d’accès sur votre ordinateur local.When prompted, download the project to a path on your local computer.

  5. Après avoir extrait les fichiers sur votre système local, votre application Spring Boot simple est prête à être modifiée.After you have extracted the files on your local system, your simple Spring Boot application will be ready to edit.

Configurer votre application Spring Boot pour utiliser le démarreur de stockage AzureConfigure your Spring Boot app to use the Azure Storage starter

La procédure suivante configure l’application Spring Boot pour utiliser le stockage Azure.The following procedure configures the Spring boot application to use Azure storage.

  1. Localisez le fichier pom.xml dans le répertoire racine de votre application. Par exemple :Locate the pom.xml file in the root directory of your app; for example:

    C:\SpringBoot\storage\pom.xml

    -ou--or-

    /users/example/home/storage/pom.xml

  2. Ouvrez le fichier pom.xml dans un éditeur de texte, et ajoutez le démarreur de stockage Azure Spring Cloud à la liste des <dependencies> :Open the pom.xml file in a text editor, and add the Spring Cloud Azure Storage starter to the list of <dependencies>:

    <dependency>
       <groupId>com.microsoft.azure</groupId>
       <artifactId>spring-azure-starter-storage</artifactId>
       <version>1.0.0.M2</version>
    </dependency>
    

    Modifier le fichier pom.xml

  3. Enregistrez et fermez le fichier pom.xml.Save and close the pom.xml file.

Créer un fichier d’informations d’identification AzureCreate an Azure Credential File

La procédure suivante permet de créer le fichier d’informations d’identification Azure.The following procedure creates the Azure credential file.

  1. Ouvrez une invite de commandes.Open a command prompt.

  2. Accédez au répertoire des ressources de votre application Spring Boot, par exemple :Navigate to the resources directory of your Spring Boot app; for example:

    cd C:\SpringBoot\storage\src\main\resources
    

    -ou--or-

    cd /users/example/home/storage/src/main/resources
    
  3. Connectez-vous à votre compte Azure :Sign in to your Azure account:

    az login
    
  4. Répertoriez vos abonnements :List your subscriptions:

    az account list
    

    Azure renvoie la liste de vos abonnements ; il vous faudra copier l’identificateur unique de l’abonnement que vous souhaitez utiliser, par exemple :Azure will return a list of your subscriptions, and you will need to copy the GUID for the subscription that you want to use; for example:

    [
      {
        "cloudName": "AzureCloud",
        "id": "11111111-1111-1111-1111-111111111111",
        "isDefault": true,
        "name": "Converted Windows Azure MSDN - Visual Studio Ultimate",
        "state": "Enabled",
        "tenantId": "22222222-2222-2222-2222-222222222222",
        "user": {
          "name": "gena.soto@wingtiptoys.com",
          "type": "user"
        }
      }
    ]
    
  5. Spécifiez le GUID de l’abonnement que vous souhaitez utiliser avec Azure, par exemple :Specify the GUID for the subscription you want to use with Azure; for example:

    az account set -s 11111111-1111-1111-1111-111111111111
    
  6. Créez votre fichier d’informations d’identification Azure :Create your Azure Credential file:

    az ad sp create-for-rbac --sdk-auth > my.azureauth
    

    Cette commande créera un fichier my.azureauth dans votre répertoire des ressources avec un contenu similaire à l’exemple suivant :This command will create a my.azureauth file in your resources directory with contents that resemble the following example:

    {
      "clientId": "33333333-3333-3333-3333-333333333333",
      "clientSecret": "44444444-4444-4444-4444-444444444444",
      "subscriptionId": "11111111-1111-1111-1111-111111111111",
      "tenantId": "22222222-2222-2222-2222-222222222222",
      "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
      "resourceManagerEndpointUrl": "https://management.azure.com/",
      "activeDirectoryGraphResourceId": "https://graph.windows.net/",
      "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
      "galleryEndpointUrl": "https://gallery.azure.com/",
      "managementEndpointUrl": "https://management.core.windows.net/"
    }
    

Configurer votre application Spring Boot pour utiliser votre compte de stockage AzureConfigure your Spring Boot app to use your Azure Storage account

La procédure suivante configure l’application Spring Boot pour utiliser votre compte de stockage Azure.The following procedure configures the Spring boot application to use your Azure storage account.

  1. Localisez le fichier application.properties dans le répertoire des ressources de votre application. Par exemple :Locate the application.properties in the resources directory of your app; for example:

    C:\SpringBoot\storage\src\main\resources\application.properties

    -ou--or-

    /users/example/home/storage/src/main/resources/application.properties

  2. Ouvrez le fichier application.properties dans un éditeur de texte, ajoutez-y les lignes suivantes, puis remplacez les exemples de valeurs par les propriétés appropriées à votre compte de stockage :Open the application.properties file in a text editor, add the following lines, and then replace the sample values with the appropriate properties for your storage account:

    spring.cloud.azure.credential-file-path=my.azureauth
    spring.cloud.azure.resource-group=wingtiptoysresources
    spring.cloud.azure.region=West US
    spring.cloud.azure.storage.account=wingtiptoysstorage
    

    Où :Where:

    ChampField DescriptionDescription
    spring.cloud.azure.credential-file-path Spécifie le fichier d’informations d’identification Azure que vous avez précédemment créé dans ce didacticiel.Specifies Azure credential file that you created earlier in this tutorial.
    spring.cloud.azure.resource-group Spécifie le groupe de ressources Azure qui contient votre compte de stockage Azure.Specifies the Azure Resource Group that contains your Azure Storage account.
    spring.cloud.azure.region Spécifie la région géographique que vous avez indiquée lors de la création de votre compte de stockage Azure.Specifies the geographical region that you specified when you created your Azure Storage account.
    spring.cloud.azure.storage.account Spécifie le compte de stockage Azure que vous avez précédemment créé dans ce didacticiel.Specifies Azure Storage account that you created earlier in this tutorial.
  3. Enregistrez et fermez le fichier application.properties.Save and close the application.properties file.

Ajouter un exemple de code pour implémenter une fonctionnalité de stockage Azure simpleAdd sample code to implement basic Azure storage functionality

Dans cette section, vous pouvez créer les classes Java nécessaires au stockage d’un blob dans votre compte de stockage Azure.In this section, you create the necessary Java classes for storing a blob in your Azure storage account.

Modifiez la classe d’application principaleModify the main application class

  1. Recherchez le fichier Java principal de l’application dans le répertoire de package de votre application. Par exemple :Locate the main application Java file in the package directory of your app; for example:

    C:\SpringBoot\storage\src\main\java\com\wingtiptoys\storage\StorageApplication.java

    -ou--or-

    /users/example/home/storage/src/main/java/com/wingtiptoys/storage/StorageApplication.java

  2. Ouvrez le fichier Java principal de l’application dans un éditeur de texte, puis ajoutez-y les lignes suivantes.Open the main application Java file in a text editor, and add the following lines to the file. Remplacez wingtiptoys par vos valeurs :Replace wingtiptoys with your values:

    package com.wingtiptoys.storage;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class StorageApplication {
       public static void main(String[] args) {
          SpringApplication.run(StorageApplication.class, args);
       }
    }
    
  3. Enregistrez et fermez le fichier Java principal de l’application.Save and close the main application Java file.

Ajouter une classe de contrôleur webAdd a web controller class

  1. Créez un fichier Java nommé WebController.java dans le répertoire de package de votre application. Par exemple :Create a new Java file named WebController.java in the package directory of your app; for example:

    C:\SpringBoot\storage\src\main\java\com\wingtiptoys\storage\WebController.java

    -ou--or-

    /users/example/home/storage/src/main/java/com/wingtiptoys/storage/WebController.java

  2. Ouvrez le fichier Java de contrôleur web dans un éditeur de texte, puis ajoutez-y les lignes suivantes.Open the web controller Java file in a text editor, and add the following lines to the file. Remplacez wingtiptoys par votre groupe de ressources et storage par le nom de votre artefact.Change wingtiptoys to your resource group and storage to your artifact name.

    package com.wingtiptoys.storage;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.core.io.Resource;
    import org.springframework.core.io.WritableResource;
    import org.springframework.util.StreamUtils;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.nio.charset.Charset;
    
    @RestController
    public class WebController {
    
       @Value("blob://test/myfile.txt")
       private Resource blobFile;
    
       @GetMapping(value = "/")
       public String readBlobFile() throws IOException {
          return StreamUtils.copyToString(
             this.blobFile.getInputStream(),
             Charset.defaultCharset()) + "\n";
       }
    
       @PostMapping(value = "/")
       public String writeBlobFile(@RequestBody String data) throws IOException {
          try (OutputStream os = ((WritableResource) this.blobFile).getOutputStream()) {
             os.write(data.getBytes());
          }
          return "File was updated.\n";
       }
    }
    

    Là où la syntaxe @Value("blob://[container]/[blob]") définit respectivement les noms du conteneur et des objets blob dans lesquels vous souhaitez stocker les données.Where the @Value("blob://[container]/[blob]") syntax respectively defines the names of the container and blob where you want to store the data.

  3. Enregistrez et fermez le fichier Java du contrôleur web.Save and close the web controller Java file.

  4. Ouvrez une invite de commandes, puis accédez au dossier contenant votre fichier pom.xml. Par exemple :Open a command prompt and change directory to the folder where your pom.xml file is located; for example:

    cd C:\SpringBoot\storage

    -ou--or-

    cd /users/example/home/storage

  5. Générez votre application Spring Boot avec Maven, puis exécutez-la. Par exemple :Build your Spring Boot application with Maven and run it; for example:

    mvn clean package
    mvn spring-boot:run
    
  6. Une fois votre application exécutée, vous pouvez utiliser curl pour tester votre application. Par exemple :Once your application is running, you can use curl to test your application; for example:

    a.a. Envoyez une demande POST pour mettre à jour le contenu d’un fichier :Send a POST request to update a file's contents:

    curl -X POST -H "Content-Type: text/plain" -d "Hello World" http://localhost:8080/
    

    Vous devriez voir une réponse indiquant que le fichier a été mis à jour.You should see a response that the file was updated.

    b.b. Envoyez une demande GET pour vérifier le contenu du fichier :Send a GET request to verify the file's contents:

    curl -X GET http://localhost:8080/
    

    Vous devriez voir le texte « Hello World » que vous avez envoyé.You should see the "Hello World" text that you posted.

RésuméSummary

Dans ce didacticiel, vous avez créé une application Java à l’aide de [Spring Initializr] , ajouté le démarreur de stockage Azure à votre application, et configuré votre application pour charger un objet blob dans votre compte de stockage Azure.In this tutorial, you created a new Java application using the [Spring Initializr], added the Azure storage starter to your application, and then configured your application to upload a blob to your Azure storage account.

Étapes suivantesNext steps

Pour en savoir plus sur Spring et Azure, poursuivez vers le centre de documentation Spring sur Azure.To learn more about Spring and Azure, continue to the Spring on Azure documentation center.

Ressources supplémentairesAdditional Resources

Pour plus d’informations sur les instances Spring Boot Starters supplémentaires disponibles pour Microsoft Azure, consultez la section Pour débuter avec Spring Boot pour Azure.For more information about the additional Spring Boot Starters that are available for Microsoft Azure, see Spring Boot Starters for Azure.

Pour plus de détails sur les API Azure Storage supplémentaires pouvant être appelées à partir de vos applications Spring Boot, consultez les articles suivants :For detailed information about additional Azure storage APIs that you can call from your Spring Boot applications, see the following articles: