Cómo usar el iniciador de Spring Boot para Azure StorageHow to use the Spring Boot Starter for Azure Storage

Información generalOverview

Este artículo explica cómo crear una aplicación personalizada con Spring Initializr y, a continuación, agregar el iniciador de almacenamiento de Azure a la aplicación y usar la aplicación para cargar un blob en la cuenta de Azure Storage.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.

Requisitos previosPrerequisites

Los siguientes requisitos previos son necesarios para seguir los pasos descritos en este artículo:The following prerequisites are required in order to follow the steps in this article:

Importante

Se necesita Spring Boot versión 2.0 o posteriores para completar los pasos descritos en este artículo.Spring Boot version 2.0 or greater is required to complete the steps in this article.

Creación de una cuenta de Azure Storage y un contenedor de blobs para la aplicaciónCreate an Azure Storage Account and blob container for your application

  1. Vaya a Azure Portal en https://portal.azure.com/ e inicie sesión.Browse to the Azure portal at https://portal.azure.com/ and sign in.

  2. Haga clic en +Crear un recurso, en Almacenamiento y en Cuenta de almacenamiento.Click +Create a resource, then Storage, and then click Storage Account.

    Creación de una cuenta de Azure Storage

  3. En la página Crear espacio de nombres, escriba la información siguiente:On the Create Namespace page, enter the following information:

    • Escriba un Nombre único, que pasará a formar parte del identificador URI de la cuenta de almacenamiento.Enter a unique Name, which will become part of the URI for your storage account. Por ejemplo: si escribió wingtiptoysstorage para el Nombre, el identificador URI sería wingtiptoysstorage.core.windows.net.For example: if you entered wingtiptoysstorage for the Name, the URI would be wingtiptoysstorage.core.windows.net.
    • Elija Blob Storage para Tipo de cuenta.Choose Blob storage for the Account kind.
    • Especifique la Ubicación de la cuenta de almacenamiento.Specify the Location for your storage account.
    • Elija la Suscripción que quiere usar para la cuenta de almacenamiento.Choose the Subscription you want to use for your storage account.
    • Especifique si quiere crear un nuevo Grupo de recursos para la cuenta de almacenamiento o elija un grupo de recursos existente.Specify whether to create a new Resource group for your storage account, or choose an existing resource group.

    Especificación de las opciones de la cuenta de Azure Storage

  4. Cuando haya especificado las opciones enumeradas anteriormente, haga clic en Crear para crear la cuenta de almacenamiento.When you have specified the options listed above, click Create to create your storage account.

  5. Cuando Azure Portal ha creado la cuenta de almacenamiento, haga clic en Blobs y, a continuación, haga clic en +Contenedor.When the Azure portal has created your storage account, click Blobs, then click +Container.

    Creación de un contenedor de blobs

  6. Escriba un Nombre para el contenedor de blobs y, a continuación, haga clic en Aceptar.Enter a Name for your blob container, and then click OK.

    Especificación de las opciones del contenedor de blobs

  7. Azure Portal enumerará el contenedor de blobs una vez se haya creado.The Azure portal will list your blob container after is has been created.

    Revisión de la lista de contenedores de blobs

Creación de una aplicación sencilla de Spring Boot con Spring InitializrCreate a simple Spring Boot application with the Spring Initializr

  1. Vaya a https://start.spring.io/.Browse to https://start.spring.io/.

  2. Especifique las opciones siguientes:Specify the following options:

    • Genere un proyecto de Maven con Java.Generate a Maven project with Java.

    • Especifique una versión de Spring Boot igual o superior a la 2.0.Specify a Spring Boot version that is equal to or greater than 2.0.

    • Especifique los nombres de Group (Grupo) y Artifact (Artefacto) de la aplicación.Specify the Group and Artifact names for your application.

    • Agregue la dependencia Web.Add the Web dependency.

      Opciones básicas de Spring Initializr

    Nota

    Spring Initializr usa los nombres de Group (Grupo) y Artifact (Artefacto) para crear el nombre del paquete, por ejemplo: com.wingtiptoys.storage.The Spring Initializr uses the Group and Artifact names to create the package name; for example: com.wingtiptoys.storage.

  3. Cuando haya especificado las opciones enumeradas anteriormente, haga clic en Generate Project (Generar proyecto).When you have specified the options listed above, click Generate Project.

  4. Cuando se le solicite, descargue el proyecto en una ruta de acceso del equipo local.When prompted, download the project to a path on your local computer.

    Descarga del proyecto de Spring

  5. Después de extraer los archivos en el sistema local, la aplicación sencilla de Spring Boot estará lista para editarla.After you have extracted the files on your local system, your simple Spring Boot application will be ready for editing.

Configuración de la aplicación de Spring Boot para usar el iniciador de Azure StorageConfigure your Spring Boot app to use the Azure Storage starter

  1. Busque el archivo pom.xml en el directorio raíz de la aplicación, por ejemplo:Locate the pom.xml file in the root directory of your app; for example:

    C:\SpringBoot\storage\pom.xml

    O bien-or-

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

  2. Abra el archivo pom.xml en un editor de texto y agregue el iniciador Spring Cloud Azure Storage a la lista <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>
    

    Edición del archivo pom.xml

  3. Guarde y cierre el archivo pom.xml.Save and close the pom.xml file.

Creación de un archivo de credenciales de AzureCreate an Azure Credential File

  1. Abra el símbolo del sistema.Open a command prompt.

  2. Vaya al directorio resources de la aplicación de Spring Boot, por ejemplo:Navigate to the resources directory of your Spring Boot app; for example:

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

    O bien-or-

    cd /users/example/home/storage/src/main/resources
    
  3. Inicio de sesión en la cuenta de AzureSign in to your Azure account:

    az login
    
  4. Muestre las suscripciones:List your subscriptions:

    az account list
    

    Azure devolverá la lista de sus suscripciones, y tendrá que copiar el GUID de la suscripción que desea usar; por ejemplo: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. Especifique el identificador GUID de la suscripción que desea usar con Azure; por ejemplo:Specify the GUID for the subscription you want to use with Azure; for example:

    az account set -s 11111111-1111-1111-1111-111111111111
    
  6. Cree el archivo de credenciales de Azure:Create your Azure Credential file:

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

    Este comando crea un archivo my.azureauth en el directorio resources con un contenido similar al del siguiente ejemplo: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/"
    }
    

Configuración de la aplicación de Spring Boot para usar la cuenta de Azure StorageConfigure your Spring Boot app to use your Azure Storage account

  1. Busque el archivo application.properties en el directorio resources de la aplicación, por ejemplo:Locate the application.properties in the resources directory of your app; for example:

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

    O bien-or-

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

  2. Abra el archivo application.properties en un editor de texto, agregue las siguientes líneas y, a continuación, sustituya los valores de ejemplo por las propiedades adecuadas de la cuenta de almacenamiento: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
    

    Donde:Where:

    CampoField DESCRIPCIÓNDescription
    spring.cloud.azure.credential-file-path Especifica el archivo de credenciales de Azure que creó anteriormente en este tutorial.Specifies Azure credential file that you created earlier in this tutorial.
    spring.cloud.azure.resource-group Especifica el grupo de recursos de Azure que contiene la cuenta de Azure Storage.Specifies the Azure Resource Group that contains your Azure Storage account.
    spring.cloud.azure.region Especifica la región geográfica que seleccionó cuando creó la cuenta de Azure Storage.Specifies the geographical region that you specified when you created your Azure Storage account.
    spring.cloud.azure.storage.account Especifica la cuenta de Azure Storage que creó anteriormente en este tutorial.Specifies Azure Storage account that you created earlier in this tutorial.
  3. Guarde y cierre el archivo application.properties.Save and close the application.properties file.

Adición de código de ejemplo para implementar la funcionalidad básica de Azure StorageAdd sample code to implement basic Azure storage functionality

En esta sección, creará las clases de Java necesarias para almacenar un blob en la cuenta de Azure Storage.In this section, you create the necessary Java classes for storing a blob in your Azure storage account.

Modificación de la clase de aplicación principalModify the main application class

  1. Busque el archivo de Java de la aplicación principal en el directorio del paquete de la aplicación; por ejemplo: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

    O bien-or-

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

  2. Abra el archivo de Java de la aplicación principal en un editor de texto y agregue las siguientes líneas al archivo:Open the main application Java file in a text editor, and add the following lines to the file:

    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. Guarde y cierre el archivo de Java de la aplicación principal.Save and close the main application Java file.

Adición de una clase de controlador webAdd a web controller class

  1. Cree un archivo Java nuevo llamado WebController.java en el directorio del paquete de la aplicación, por ejemplo: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

    O bien-or-

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

  2. Abra el archivo de Java del controlador web en un editor de texto y agregue las siguientes líneas al archivo:Open the web controller Java file in a text editor, and add the following lines to the file:

    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";
       }
    }
    

    Donde la sintaxis @Value("blob://[container]/[blob]") define respectivamente los nombres del contenedor y el blob en los que desea almacenar los datos.Where the @Value("blob://[container]/[blob]") syntax respectively defines the names of the container and blob where you want to store the data.

  3. Guarde y cierre el archivo de Java del controlador web.Save and close the web controller Java file.

  4. Abra un símbolo del sistema y cambie el directorio a la carpeta donde se encuentra el archivo pom.xml; por ejemplo:Open a command prompt and change directory to the folder where your pom.xml file is located; for example:

    cd C:\SpringBoot\storage

    O bien-or-

    cd /users/example/home/storage

  5. Compile la aplicación de Spring Boot con Maven y ejecútela; por ejemplo:Build your Spring Boot application with Maven and run it; for example:

    mvn clean package
    mvn spring-boot:run
    
  6. Una vez que se está ejecutando la aplicación, puede usar curl para probar la aplicación, por ejemplo:Once your application is running, you can use curl to test your application; for example:

    a.a. Envíe una solicitud POST para actualizar el contenido de un archivo:Send a POST request to update a file's contents:

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

    Debería ver una respuesta que indica que se actualizó el archivo.You should see a response that the file was updated.

    b.b. Envíe una solicitud GET para comprobar el contenido del archivo:Send a GET request to verify the file's contents:

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

    Debería ver el texto "Hello World" que se envió.You should see the "Hello World" text that you posted.

ResumenSummary

En este tutorial ha creado una nueva aplicación Java con [Spring Initializr], ha agregado el iniciador de Azure Storage a la aplicación y, finalmente, ha configurado la aplicación para cargar un blob en la cuenta de Azure Storage.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.

Pasos siguientesNext steps

Para más información acerca de Spring y Azure, vaya al centro de documentación de Azure.To learn more about Spring and Azure, continue to the Spring on Azure documentation center.

Recursos adicionalesAdditional Resources

Para más información acerca de otros iniciadores de Spring Boot disponibles para Microsoft Azure, consulte Iniciadores de Spring Boot para Azure.For more information about the additional Spring Boot Starters that are available for Microsoft Azure, see Spring Boot Starters for Azure.

Para información detallada acerca de otras API de almacenamiento de Azure que puede llamar desde aplicaciones de Spring Boot, consulte los artículos siguientes:For detailed information about additional Azure storage APIs that you can call from your Spring Boot applications, see the following articles: