Introdução às ferramentas de desenvolvimento de armazenamento do Azure Stack Hub

O Microsoft Azure Stack Hub fornece um conjunto de serviços de armazenamento que incluem armazenamento de blobs, tabelas e filas.

Utilize este artigo como um guia para começar a utilizar as ferramentas de desenvolvimento de armazenamento do Azure Stack Hub. Pode encontrar informações mais detalhadas e código de exemplo nos tutoriais de armazenamento do Azure correspondentes.

Nota

Existem diferenças entre o armazenamento do Azure Stack Hub e o armazenamento do Azure, incluindo requisitos específicos para cada plataforma. Por exemplo, existem bibliotecas de cliente específicas e requisitos de sufixo de ponto final para o Azure Stack Hub. Para obter mais informações, veja Armazenamento do Azure Stack Hub: Diferenças e considerações.

Bibliotecas de cliente do Azure

Para as bibliotecas de cliente de armazenamento, tenha em atenção a versão compatível com a API REST. Também tem de especificar o ponto final do Azure Stack Hub no seu código.

Atualização 2301 e mais recente

Biblioteca de cliente Versão suportada do Azure Stack Hub Ligação Especificação do ponto final
.NET Comum: 12.9.0
Blob: 12.10.0
Fila: 12.8.0
Pacote NuGet:
Comum: https://www.nuget.org/packages/Azure.Storage.common/12.9.0
Blob: https://www.nuget.org/packages/Azure.Storage.Blobs/12.10.0
Fila: https://www.nuget.org/packages/Azure.Storage.queues/12.8.0

Versão do GitHub:
Comum: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.9.0/sdk/storage/Azure.Storage.Common
Blob: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.10.0/sdk/storage/Azure.Storage.Blobs
Fila: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.8.0/sdk/storage/Azure.Storage.Queues
app.config ficheiro
Java Comum: 12.12.0
Blob: 12.14.3
Fila: 12.11.3
Pacote Maven:
Comum: https://mvnrepository.com/artifact/com.azure/azure-storage-common/12.12.0
Blob: https://mvnrepository.com/artifact/com.azure/azure-storage-blob/12.14.3
Fila: https://mvnrepository.com/artifact/com.azure/azure-storage-queue/12.11.3

Versão do GitHub:
Comum: https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-common_12.12.0/sdk/storage/azure-storage-common
Blob: https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-blob_12.14.3/sdk/storage/azure-storage-blob
Fila: https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-queue_12.11.3/sdk/storage/azure-storage-queue
Configuração da cadeia de ligação
Node.js 2.8.3 Ligação NPM:
https://www.npmjs.com/package/azure-storage
(Executar: npm install azure-storage@2.8.3)

Versão do GitHub:
https://github.com/Azure/azure-storage-node/releases/tag/v2.8.3
Declaração da instância de serviço
C++ Blob: 12.2.0
Fila: 12.0.0
Versão do GitHub:
Blob: https://github.com/Azure/azure-sdk-for-cpp/tree/azure-storage-blobs_12.2.0
Fila: https://github.com/Azure/azure-sdk-for-cpp/tree/azure-storage-queues_12.0.0
Configuração da cadeia de ligação
PHP 1.2.0 Versão do GitHub:
Comum: https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-common
Blob: https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-blob
Fila:
https://github.com/Azure/azure-storage-php/releases/tag/v1.1.1-queue
Tabela: https://github.com/Azure/azure-storage-php/releases/tag/v1.1.0-table

Instalar através do Composer (Para saber mais, veja os detalhes abaixo.)
Configuração da cadeia de ligação
Python Blob: 12.9.0
Fila: 12.1.6
Versão do GitHub:
Blob:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-blob_12.9.0/sdk/storage/azure-storage-blob
Fila:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-queue_12.1.6/sdk/storage/azure-storage-queue
Declaração da instância de serviço
Ruby 1.0.1 Pacote RubyGems:
Comum:
https://rubygems.org/gems/azure-storage-common/versions/1.0.1
Blob: https://rubygems.org/gems/azure-storage-blob/versions/1.0.1
Fila: https://rubygems.org/gems/azure-storage-queue/versions/1.0.1
Tabela: https://rubygems.org/gems/azure-storage-table/versions/1.0.1

Versão do GitHub:
Comum: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-common
Blob: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-blob
Fila: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-queue
Tabela: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-table
Configuração da cadeia de ligação

Nota

Existe uma vulnerabilidade de alta gravidade na versão antiga da biblioteca de cliente .NET e Java, devido às dependências numa versão vulnerável do pacote Jackson. É fortemente sugerido utilizar a versão suportada mais recente da biblioteca de cliente .NET e Java para evitar problemas de segurança.

Instalar o cliente PHP através do Composer – atual

Para instalar através do Composer: (veja o blob como exemplo).

  1. Crie um ficheiro com o nome composer.json na raiz do projeto com o seguinte código:

    {
      "require": {
      "Microsoft/azure-storage-blob":"1.2.0"
      }
    }
    
  2. Transfira composer.phar para a raiz do projeto.

  3. Execute: php composer.phar install.

Especificar a versão da API

Para utilizar a nova biblioteca de cliente .NET (Comum: v12.9.0/ Blob: v12.10.0 / Fila: v12.8.0) e biblioteca de cliente Java (Comum: v12.12.0 / Blob: v12.13.0 / Fila: v12.10.0), tem de especificar explicitamente o serviceVersion em cada classe de cliente (incluindo BlobServiceClient, BlobContainerClient, BlobClient, QueueServiceClient e QueueClient), uma vez que a versão predefinida na classe de cliente não é atualmente suportada pelo Azure Stack Hub.

Exemplos

.NET
BlobClientOptions options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2019_07_07);
BlobServiceClient client = new BlobServiceClient("<connection_string>", options);
Java
BlobServiceVersion version = BlobServiceVersion.V2019_07_07; 
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
    .endpoint("<your_endpoint>")
    .sasToken("<your_SAS_token>")
    .serviceVersion(version)
    .buildClient();

Atualização de 2008 e mais recente

Biblioteca de cliente Versão suportada do Azure Stack Hub Ligação Especificação do ponto final
.NET Comum: 12.9.0
Blob: 12.10.0
Fila: 12.8.0
Pacote NuGet:
Comum: https://www.nuget.org/packages/Azure.Storage.common/12.9.0
Blob: https://www.nuget.org/packages/Azure.Storage.Blobs/12.10.0
Fila: https://www.nuget.org/packages/Azure.Storage.queues/12.8.0

Versão do GitHub:
Comum: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.9.0/sdk/storage/Azure.Storage.Common
Blob: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.10.0/sdk/storage/Azure.Storage.Blobs
Fila: https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.8.0/sdk/storage/Azure.Storage.Queues
app.config ficheiro
Java Comum: 12.12.0
Blob: 12.13.0
Fila: 12.10.0
Pacote Maven:
Comum: https://mvnrepository.com/artifact/com.azure/azure-storage-common/12.12.0
Blob: https://mvnrepository.com/artifact/com.azure/azure-storage-blob/12.13.0
Fila: https://mvnrepository.com/artifact/com.azure/azure-storage-queue/12.10.0

Versão do GitHub:
Comum: https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-common_12.12.0/sdk/storage/azure-storage-common
Blob: https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-blob_12.13.0/sdk/storage/azure-storage-blob
Fila: https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-queue_12.10.0/sdk/storage/azure-storage-queue
Configuração da cadeia de ligação
Node.js 2.8.3 Ligação NPM:
https://www.npmjs.com/package/azure-storage
(Executar: npm install azure-storage@2.8.3)

Versão do GitHub:
https://github.com/Azure/azure-storage-node/releases/tag/v2.8.3
Declaração da instância de serviço
C++ 7.2.0 Versão do GitHub:
https://github.com/Azure/azure-storage-cpp/releases/tag/v7.2.0
Configuração da cadeia de ligação
PHP 1.2.0 Versão do GitHub:
Comum: https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-common
Blob: https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-blob
Fila:
https://github.com/Azure/azure-storage-php/releases/tag/v1.1.1-queue
Tabela: https://github.com/Azure/azure-storage-php/releases/tag/v1.1.0-table

Instalar através do Composer (Para saber mais, veja os detalhes abaixo.)
Configuração da cadeia de ligação
Python Blob: 12.3.1
Fila: 12.1.6
Versão do GitHub:
Blob:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-blob_12.3.1/sdk/storage/azure-storage-blob
Fila:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-queue_12.1.6/sdk/storage/azure-storage-queue
Declaração da instância de serviço
Ruby 1.0.1 Pacote RubyGems:
Comum:
https://rubygems.org/gems/azure-storage-common/versions/1.0.1
Blob: https://rubygems.org/gems/azure-storage-blob/versions/1.0.1
Fila: https://rubygems.org/gems/azure-storage-queue/versions/1.0.1
Tabela: https://rubygems.org/gems/azure-storage-table/versions/1.0.1

Versão do GitHub:
Comum: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-common
Blob: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-blob
Fila: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-queue
Tabela: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-table
Configuração da cadeia de ligação

Instalar o cliente PHP através do Composer – atual

Para instalar através do Composer: (veja o blob como exemplo).

  1. Crie um ficheiro com o nome composer.json na raiz do projeto com o seguinte código:

    {
      "require": {
      "Microsoft/azure-storage-blob":"1.2.0"
      }
    }
    
  2. Transfira composer.phar para a raiz do projeto.

  3. Execute: php composer.phar install.

Especificar a versão da API

Para utilizar a nova biblioteca de cliente .NET (Comum: v12.9.0/ Blob: v12.10.0 / Fila: v12.8.0) e biblioteca de cliente Java (Comum: v12.12.0 / Blob: v12.13.0 / Fila: v12.10.0), tem de especificar explicitamente o serviceVersion em cada classe de cliente (incluindo BlobServiceClient, BlobContainerClient, BlobClient, QueueServiceClient e QueueClient), uma vez que a versão predefinida na classe de cliente não é atualmente suportada pelo Azure Stack Hub.

Exemplos

.NET
BlobClientOptions options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2019_07_07);
BlobServiceClient client = new BlobServiceClient("<connection_string>", options);
Java
BlobServiceVersion version = BlobServiceVersion.V2019_07_07; 
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
    .endpoint("<your_endpoint>")
    .sasToken("<your_SAS_token>")
    .serviceVersion(version)
    .buildClient();

Atualização de 2005

Biblioteca de cliente Versão suportada do Azure Stack Hub Ligação Especificação do ponto final
.NET 11.0.0 Pacote NuGet:
Comum: https://www.nuget.org/packages/Microsoft.Azure.Storage.Common/11.0.0
Blob: https://www.nuget.org/packages/Microsoft.Azure.Storage.Blob/11.0.0
Fila:
https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/11.0.0

Versão do GitHub:
https://github.com/Azure/azure-storage-net/releases/tag/v11.0.0
app.config ficheiro
Java 12.0.0-preview.3 Pacote Maven:
https://mvnrepository.com/artifact/com.azure/azure-storage-blob/12.0.0-preview.3

Versão do GitHub:
https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/storage
Configuração da cadeia de ligação
Node.js 2.8.3 Ligação NPM:
https://www.npmjs.com/package/azure-storage
(Executar: npm install azure-storage@2.8.3)

Versão do GitHub:
https://github.com/Azure/azure-storage-node/releases/tag/v2.8.3
Declaração da instância de serviço
C++ 7.1.0 Versão do GitHub:
https://github.com/Azure/azure-storage-cpp/releases/tag/v7.1.0
Configuração da cadeia de ligação
PHP 1.2.0 Versão do GitHub:
Comum: https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-common
Blob: https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-blob
Fila:
https://github.com/Azure/azure-storage-php/releases/tag/v1.1.1-queue
Tabela: https://github.com/Azure/azure-storage-php/releases/tag/v1.1.0-table

Instalar através do Composer (Para saber mais, veja os detalhes abaixo.)
Configuração da cadeia de ligação
Python 2.1.0 Versão do GitHub:
Comum:
https://github.com/Azure/azure-storage-python/releases/tag/v2.1.0-common
Blob:
https://github.com/Azure/azure-storage-python/releases/tag/v2.1.0-blob
Fila:
https://github.com/Azure/azure-storage-python/releases/tag/v2.1.0-queue
Declaração da instância de serviço
Ruby 1.0.1 Pacote RubyGems:
Comum:
https://rubygems.org/gems/azure-storage-common/versions/1.0.1
Blob: https://rubygems.org/gems/azure-storage-blob/versions/1.0.1
Fila: https://rubygems.org/gems/azure-storage-queue/versions/1.0.1
Tabela: https://rubygems.org/gems/azure-storage-table/versions/1.0.1

Versão do GitHub:
Comum: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-common
Blob: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-blob
Fila: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-queue
Tabela: https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-table
Configuração da cadeia de ligação

Instalar o cliente PHP através do Composer – atual

Para instalar através do Composer: (veja o blob como exemplo).

  1. Crie um ficheiro com o nome composer.json na raiz do projeto com o seguinte código:

    {
      "require": {
      "Microsoft/azure-storage-blob":"1.2.0"
      }
    }
    
  2. Transfira composer.phar para a raiz do projeto.

  3. Execute: php composer.phar install.

Declaração de ponto final

Um ponto final do Azure Stack Hub inclui duas partes: o nome de uma região e o domínio do Azure Stack Hub. No Azure Stack Development Kit, o ponto final predefinido é local.azurestack.external. Contacte o administrador da cloud se não tiver a certeza sobre o ponto final.

Exemplos

.NET

Para o Azure Stack Hub, o sufixo de ponto final é especificado no ficheiro de app.config:

<add key="StorageConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;
EndpointSuffix=local.azurestack.external;" />

Java

Para o Azure Stack Hub, o sufixo de ponto final é especificado na configuração do cadeia de ligação:

public static final String storageConnectionString =
    "DefaultEndpointsProtocol=http;" +
    "AccountName=your_storage_account;" +
    "AccountKey=your_storage_account_key;" +
    "EndpointSuffix=local.azurestack.external";

Node.js

Para o Azure Stack Hub, o sufixo de ponto final é especificado na instância de declaração:

var blobSvc = azure.createBlobService('myaccount', 'mykey',
'myaccount.blob.local.azurestack.external');

C++

Para o Azure Stack Hub, o sufixo de ponto final é especificado na configuração do cadeia de ligação:

const utility::string_t storage_connection_string(U("DefaultEndpointsProtocol=https;
AccountName=your_storage_account;
AccountKey=your_storage_account_key;
EndpointSuffix=local.azurestack.external"));

PHP

Para o Azure Stack Hub, o sufixo de ponto final é especificado na configuração do cadeia de ligação:

$connectionString = 'BlobEndpoint=https://<storage account name>.blob.local.azurestack.external/;
QueueEndpoint=https:// <storage account name>.queue.local.azurestack.external/;
TableEndpoint=https:// <storage account name>.table.local.azurestack.external/;
AccountName=<storage account name>;AccountKey=<storage account key>'

Python

Para o Azure Stack Hub, o sufixo de ponto final é especificado na instância de declaração:

block_blob_service = BlockBlobService(account_name='myaccount',
account_key='mykey',
endpoint_suffix='local.azurestack.external')

Ruby

Para o Azure Stack Hub, o sufixo de ponto final é especificado na configuração do cadeia de ligação:

set
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;
AccountName=myaccount;
AccountKey=mykey;
EndpointSuffix=local.azurestack.external

Armazenamento de blobs

Os seguintes tutoriais de armazenamento de Blobs do Azure são aplicáveis ao Azure Stack Hub. Tenha em atenção o requisito de sufixo de ponto final específico para o Azure Stack Hub descrito na secção Exemplos anterior.

Armazenamento de filas

Os seguintes tutoriais de armazenamento de Filas do Azure são aplicáveis ao Azure Stack Hub. Tenha em atenção o requisito de sufixo de ponto final específico para o Azure Stack Hub descrito na secção Exemplos anterior.

Table Storage

Os seguintes tutoriais de armazenamento de Tabelas do Azure são aplicáveis ao Azure Stack Hub. Tenha em atenção o requisito de sufixo de ponto final específico para o Azure Stack Hub descrito na secção Exemplos anterior.

Passos seguintes