Armazenamento de Blobs do Azure exemplos de código com bibliotecas de cliente javaScript versão 11.x

Este artigo mostra exemplos de código que utilizam a versão 11.x da biblioteca de cliente Armazenamento de Blobs do Azure para JavaScript.

A 31 de março de 2023, retirámos o suporte para bibliotecas do SDK do Azure que não estão em conformidade com as diretrizes atuais do SDK do Azure. As novas bibliotecas do SDK do Azure são atualizadas regularmente para impulsionar experiências consistentes e reforçar a sua postura de segurança. Recomenda-se que faça a transição para as novas bibliotecas do SDK do Azure para tirar partido das novas capacidades e das atualizações de segurança críticas.

Embora as bibliotecas mais antigas ainda possam ser utilizadas para além de 31 de março de 2023, deixarão de receber suporte oficial e atualizações da Microsoft. Para obter mais informações, veja o anúncio de descontinuação do suporte.

Criar uma aplicação de elevada disponibilidade com o Armazenamento de Blobs

Artigo relacionado: Tutorial: Criar uma aplicação de elevada disponibilidade com o Armazenamento de blobs

Transferir o exemplo

Transfira o projeto de exemplo e deszipe o ficheiro. Também pode utilizar o git para transferir uma cópia da aplicação para o seu ambiente de desenvolvimento. O projeto de exemplo contém uma aplicação de Node.js básica.

git clone https://github.com/Azure-Samples/storage-node-v10-ha-ra-grs.git

Configurar o exemplo

Para executar este exemplo, tem de adicionar as credenciais da conta de armazenamento ao ficheiro e, em seguida, mudar o .env.example nome para .env.

AZURE_STORAGE_ACCOUNT_NAME=<replace with your storage account name>
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<replace with your storage account access key>

Pode encontrar estas informações no portal do Azure ao navegar para a sua conta de armazenamento e selecionar Chaves de acesso na secção Definições.

Instale as dependências necessárias ao abrir uma linha de comandos, navegar para a pasta de exemplo e, em seguida, introduzir npm install.

Executar a aplicação de consola

Para executar o exemplo, abra uma linha de comandos, navegue para a pasta de exemplo e, em seguida, introduza node index.js.

O exemplo cria um contentor na sua conta de armazenamento de Blobs, carrega HelloWorld.png para o contentor e, em seguida, verifica repetidamente se o contentor e a imagem foram replicados para a região secundária. Após a replicação, pede-lhe para introduzir D ou Q (seguido de ENTER) para transferir ou sair. O resultado deverá ter um aspeto semelhante ao seguinte exemplo:

Created container successfully: newcontainer1550799840726
Uploaded blob: HelloWorld.png
Checking to see if container and blob have replicated to secondary region.
[0] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[1] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
...
[31] Container has not replicated to secondary region yet: newcontainer1550799840726 : ContainerNotFound
[32] Container found, but blob has not replicated to secondary region yet.
...
[67] Container found, but blob has not replicated to secondary region yet.
[68] Blob has replicated to secondary region.
Ready for blob download. Enter (D) to download or (Q) to quit, followed by ENTER.
> D
Attempting to download blob...
Blob downloaded from primary endpoint.
> Q
Exiting...
Deleted container newcontainer1550799840726

Compreender o exemplo de código

Com o SDK Node.js V10, os processadores de chamadas de retorno são desnecessários. Em vez disso, o exemplo cria um pipeline configurado com opções de repetição e um ponto final secundário. Esta configuração permite que a aplicação mude automaticamente para o pipeline secundário se não conseguir aceder aos dados através do pipeline primário.

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
const storageAccessKey = process.env.AZURE_STORAGE_ACCOUNT_ACCESS_KEY;
const sharedKeyCredential = new SharedKeyCredential(accountName, storageAccessKey);

const primaryAccountURL = `https://${accountName}.blob.core.windows.net`;
const secondaryAccountURL = `https://${accountName}-secondary.blob.core.windows.net`;

const pipeline = StorageURL.newPipeline(sharedKeyCredential, {
  retryOptions: {
    maxTries: 3,
    tryTimeoutInMs: 10000,
    retryDelayInMs: 500,
    maxRetryDelayInMs: 1000,
    secondaryHost: secondaryAccountURL
  }
});