Compartilhar via


QueueServiceClientBuilder Classe

  • java.lang.Object
    • com.azure.storage.queue.QueueServiceClientBuilder

Implementações

public final class QueueServiceClientBuilder
implements TokenCredentialTrait<QueueServiceClientBuilder>, ConnectionStringTrait<QueueServiceClientBuilder>, AzureNamedKeyCredentialTrait<QueueServiceClientBuilder>, AzureSasCredentialTrait<QueueServiceClientBuilder>, HttpTrait<QueueServiceClientBuilder>, ConfigurationTrait<QueueServiceClientBuilder>, EndpointTrait<QueueServiceClientBuilder>

Essa classe fornece uma API de construtor fluente para ajudar na configuração e na instanciação do QueueServiceClient e QueueServiceAsyncClient, chamar buildClient() constrói uma instância de QueueServiceClient e chamar buildAsyncClient() constrói uma instância de QueueServiceAsyncClient.

O cliente precisa do ponto de extremidade do serviço fila de armazenamento do Azure, o nome do compartilhamento e a credencial de autorização. endpoint(String endpoint) fornece ao construtor o ponto de extremidade e pode dar ao construtor um token SAS que autoriza o cliente.

Instanciando um cliente de serviço de fila síncrono com o token SAS

QueueServiceClient client = new QueueServiceClientBuilder()
     .endpoint("https://${accountName}.queue.core.windows.net?${SASToken}")
     .buildClient();

Instanciando um cliente de serviço de fila assíncrona com token SAS

QueueServiceAsyncClient client = new QueueServiceClientBuilder()
     .endpoint("https://{accountName}.queue.core.windows.net?{SASToken}")
     .buildAsyncClient();

Se o endpoint não contiver os parâmetros de consulta para construir um token SAS, eles poderão ser definidos usando sasToken(String sasToken) junto com o ponto de extremidade.

Instanciando um cliente de serviço de fila síncrono com o token SAS

QueueServiceAsyncClient client = new QueueServiceClientBuilder()
     .endpoint("https://{accountName}.queue.core.windows.net")
     .sasToken("{SASTokenQueryParams}")
     .buildAsyncClient();

Instanciando um cliente de serviço de fila assíncrona com token SAS

QueueServiceAsyncClient client = new QueueServiceClientBuilder()
     .endpoint("https://{accountName}.queue.core.windows.net")
     .sasToken("{SASTokenQueryParams}")
     .buildAsyncClient();

Outra maneira de autenticar o cliente é usando um StorageSharedKeyCredential. Para criar um StorageSharedKeyCredential, uma cadeia de conexão do serviço Fila de Armazenamento deve ser usada. Defina StorageSharedKeyCredential com connectionString(String connectionString). Se o construtor tiver um token SAS e StorageSharedKeyCredential, o StorageSharedKeyCredential será preferencial ao autorizar solicitações enviadas ao serviço.

Instanciando um cliente de serviço de fila síncrono com a cadeia de conexão.

String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
     + "AccountKey={key};EndpointSuffix={core.windows.net}";
 QueueServiceClient client = new QueueServiceClientBuilder()
     .connectionString(connectionString)
     .buildClient();

Instanciando um Cliente de Serviço de Fila Assíncrona com cadeia de conexão.

String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
     + "AccountKey={key};EndpointSuffix={core.windows.net}";
 QueueServiceAsyncClient client = new QueueServiceClientBuilder()
     .connectionString(connectionString)
     .buildAsyncClient();

Resumo do Construtor

Construtor Description
QueueServiceClientBuilder()

Cria uma instância do construtor que é capaz de configurar e construir QueueServiceClient e QueueServiceAsyncClient.

Resumo do método

Modificador e tipo Método e descrição
QueueServiceClientBuilder addPolicy(HttpPipelinePolicy pipelinePolicy)

Adiciona um HttpPipelinePolicy para aplicar em cada solicitação enviada.

QueueServiceAsyncClient buildAsyncClient()

Cria um QueueServiceAsyncClient com base nas opções definidas no construtor.

QueueServiceClient buildClient()

Cria um QueueServiceClient com base nas opções definidas no construtor.

QueueServiceClientBuilder clientOptions(ClientOptions clientOptions)

Permite definir propriedades comuns, como ID do aplicativo, cabeçalhos, configuração de proxy etc.

QueueServiceClientBuilder configuration(Configuration configuration)

Define o objeto de configuração usado para recuperar valores de configuração de ambiente durante a criação do cliente.

QueueServiceClientBuilder connectionString(String connectionString)

Define a cadeia de conexão para se conectar ao serviço.

QueueServiceClientBuilder credential(AzureNamedKeyCredential credential)

Define o AzureNamedKeyCredential usado para autorizar solicitações enviadas ao serviço.

QueueServiceClientBuilder credential(AzureSasCredential credential)

Define o AzureSasCredential usado para autorizar solicitações enviadas ao serviço.

QueueServiceClientBuilder credential(TokenCredential credential)

Define o TokenCredential usado para autorizar solicitações enviadas ao serviço.

QueueServiceClientBuilder credential(StorageSharedKeyCredential credential)

Define o StorageSharedKeyCredential usado para autorizar solicitações enviadas ao serviço.

QueueServiceClientBuilder endpoint(String endpoint)

Define o ponto de extremidade para a instância da Fila de Armazenamento do Azure com a qual o cliente interagirá.

static HttpLogOptions getDefaultHttpLogOptions()

Obtém os cabeçalhos de log e os parâmetros de consulta padrão da lista de permissões de armazenamento.

QueueServiceClientBuilder httpClient(HttpClient httpClient)

Define o HttpClient a ser usado para enviar e receber solicitações de e para o serviço.

QueueServiceClientBuilder httpLogOptions(HttpLogOptions logOptions)

Define o HttpLogOptions a ser usado ao enviar e receber solicitações de e para o serviço.

QueueServiceClientBuilder messageEncoding(QueueMessageEncoding messageEncoding)

Define a codificação de mensagens da fila.

QueueServiceClientBuilder pipeline(HttpPipeline httpPipeline)

Define o HttpPipeline a ser usado para o cliente de serviço.

QueueServiceClientBuilder processMessageDecodingError(Consumer<QueueMessageDecodingError> processMessageDecodingErrorHandler)

Define o manipulador que executa as tarefas necessárias quando uma mensagem é recebida ou atingiu o pico da fila, mas não pode ser decodificada.

QueueServiceClientBuilder processMessageDecodingErrorAsync(Function<QueueMessageDecodingError,Mono<Void>> processMessageDecodingErrorAsyncHandler)

Define o manipulador assíncrono que executa as tarefas necessárias quando uma mensagem é recebida ou atingiu o pico da fila, mas não pode ser decodificada.

QueueServiceClientBuilder retryOptions(RetryOptions retryOptions)

Define o RetryOptions para todas as solicitações feitas por meio do cliente.

QueueServiceClientBuilder retryOptions(RequestRetryOptions retryOptions)

Define as opções de repetição de solicitação para todas as solicitações feitas por meio do cliente.

QueueServiceClientBuilder sasToken(String sasToken)

Define o token SAS usado para autorizar solicitações enviadas ao serviço.

QueueServiceClientBuilder serviceVersion(QueueServiceVersion version)

Define o QueueServiceVersion que é usado ao fazer solicitações de API.

Métodos herdados de java.lang.Object

Detalhes do construtor

QueueServiceClientBuilder

public QueueServiceClientBuilder()

Cria uma instância do construtor que é capaz de configurar e construir QueueServiceClient e QueueServiceAsyncClient.

Detalhes do método

addPolicy

public QueueServiceClientBuilder addPolicy(HttpPipelinePolicy pipelinePolicy)

Adiciona um HttpPipelinePolicy para aplicar em cada solicitação enviada.

Nota: É importante entender a ordem de precedência das APIs HttpTrait. Em particular, se um HttpPipeline for especificado, isso terá precedência sobre todas as outras APIs na característica e elas serão ignoradas. Se nenhum HttpPipeline for especificado, um pipeline HTTP será construído internamente com base nas configurações fornecidas a essa característica. Além disso, pode haver outras APIs em tipos que implementam essa característica que também serão ignoradas se um HttpPipeline for especificado, portanto, consulte a documentação de tipos que implementam essa característica para entender o conjunto completo de implicações.

Parameters:

pipelinePolicy - Uma HttpPipelinePolicy.

Returns:

o objeto QueueServiceClientBuilder atualizado

buildAsyncClient

public QueueServiceAsyncClient buildAsyncClient()

Cria um QueueServiceAsyncClient com base nas opções definidas no construtor. Toda vez que isso é chamado de uma nova instância de QueueServiceAsyncClient é criado.

Se pipeline(HttpPipeline httpPipeline) for definido, o pipeline e endpoint(String endpoint) serão usados para criar o QueueServiceAsyncClient. Todas as outras configurações do construtor são ignoradas.

Returns:

Um QueueServiceAsyncClient com as opções definidas do construtor.

buildClient

public QueueServiceClient buildClient()

Cria um QueueServiceClient com base nas opções definidas no construtor. Toda vez que isso é chamado de uma nova instância de QueueServiceClient é criado.

Se pipeline(HttpPipeline httpPipeline) for definido, o pipeline e endpoint(String endpoint) serão usados para criar o QueueServiceClient. Todas as outras configurações do construtor são ignoradas.

Returns:

Um QueueServiceClient com as opções definidas do construtor.

clientOptions

public QueueServiceClientBuilder clientOptions(ClientOptions clientOptions)

Permite definir propriedades comuns, como ID do aplicativo, cabeçalhos, configuração de proxy etc. Observe que é recomendável que esse método seja chamado com uma instância da HttpClientOptions classe (uma subclasse da ClientOptions classe base). A subclasse HttpClientOptions fornece mais opções de configuração adequadas para clientes HTTP, que é aplicável a qualquer classe que implemente essa interface HttpTrait.

Nota: É importante entender a ordem de precedência das APIs HttpTrait. Em particular, se um HttpPipeline for especificado, isso terá precedência sobre todas as outras APIs na característica e elas serão ignoradas. Se nenhum HttpPipeline for especificado, um pipeline HTTP será construído internamente com base nas configurações fornecidas a essa característica. Além disso, pode haver outras APIs em tipos que implementam essa característica que também serão ignoradas se um HttpPipeline for especificado, portanto, consulte a documentação de tipos que implementam essa característica para entender o conjunto completo de implicações.

Parameters:

clientOptions - Uma instância configurada do HttpClientOptions.

Returns:

o objeto QueueServiceClientBuilder atualizado

configuration

public QueueServiceClientBuilder configuration(Configuration configuration)

Define o objeto de configuração usado para recuperar valores de configuração de ambiente durante a criação do cliente.

Parameters:

configuration - Repositório de configuração usado para recuperar configurações de ambiente.

Returns:

o objeto QueueServiceClientBuilder atualizado

connectionString

public QueueServiceClientBuilder connectionString(String connectionString)

Define a cadeia de conexão para se conectar ao serviço.

Parameters:

connectionString - Cadeia de conexão da conta de armazenamento.

Returns:

o QueueServiceClientBuilder atualizado

credential

public QueueServiceClientBuilder credential(AzureNamedKeyCredential credential)

Define o AzureNamedKeyCredential usado para autorizar solicitações enviadas ao serviço.

Parameters:

credential - AzureNamedKeyCredential.

Returns:

o QueueServiceClientBuilder atualizado

credential

public QueueServiceClientBuilder credential(AzureSasCredential credential)

Define o AzureSasCredential usado para autorizar solicitações enviadas ao serviço.

Parameters:

credential - AzureSasCredential usado para autorizar solicitações enviadas ao serviço.

Returns:

o QueueServiceClientBuilder atualizado

credential

public QueueServiceClientBuilder credential(TokenCredential credential)

Define o TokenCredential usado para autorizar solicitações enviadas ao serviço. Consulte a documentação de identidade e autenticação do SDK do Azure para Java para obter mais detalhes sobre o uso adequado do TokenCredential tipo.

Parameters:

credential - TokenCredential usado para autorizar solicitações enviadas ao serviço.

Returns:

o QueueServiceClientBuilder atualizado

credential

public QueueServiceClientBuilder credential(StorageSharedKeyCredential credential)

Define o StorageSharedKeyCredential usado para autorizar solicitações enviadas ao serviço.

Parameters:

Returns:

o QueueServiceClientBuilder atualizado

endpoint

public QueueServiceClientBuilder endpoint(String endpoint)

Define o ponto de extremidade para a instância da Fila de Armazenamento do Azure com a qual o cliente interagirá.

Os parâmetros de consulta do ponto de extremidade serão analisados na tentativa de gerar um token SAS para autenticar solicitações enviadas ao serviço.

Parameters:

endpoint - A URL da instância da Fila de Armazenamento do Azure para a qual enviar solicitações de serviço e receber respostas.

Returns:

o objeto QueueServiceClientBuilder atualizado

getDefaultHttpLogOptions

public static HttpLogOptions getDefaultHttpLogOptions()

Obtém os cabeçalhos de log e os parâmetros de consulta padrão da lista de permissões de armazenamento.

Returns:

as opções de log http padrão.

httpClient

public QueueServiceClientBuilder httpClient(HttpClient httpClient)

Define o HttpClient a ser usado para enviar e receber solicitações de e para o serviço.

Nota: É importante entender a ordem de precedência das APIs HttpTrait. Em particular, se um HttpPipeline for especificado, isso terá precedência sobre todas as outras APIs na característica e elas serão ignoradas. Se não HttpPipeline for especificado, um pipeline HTTP será construído internamente com base nas configurações fornecidas a essa característica. Além disso, pode haver outras APIs em tipos que implementam essa característica que também são ignoradas se um HttpPipeline for especificado, portanto, consulte a documentação de tipos que implementam essa característica para entender o conjunto completo de implicações.

Parameters:

httpClient - O HttpClient a ser usado para solicitações.

Returns:

o objeto QueueServiceClientBuilder atualizado

httpLogOptions

public QueueServiceClientBuilder httpLogOptions(HttpLogOptions logOptions)

Define o HttpLogOptions a ser usado ao enviar e receber solicitações de e para o serviço. Se um logLevel não for fornecido, o valor padrão de HttpLogDetailLevel#NONE será definido.

Nota: É importante entender a ordem de precedência das APIs HttpTrait. Em particular, se um HttpPipeline for especificado, isso terá precedência sobre todas as outras APIs na característica e elas serão ignoradas. Se não HttpPipeline for especificado, um pipeline HTTP será construído internamente com base nas configurações fornecidas a essa característica. Além disso, pode haver outras APIs em tipos que implementam essa característica que também são ignoradas se um HttpPipeline for especificado, portanto, consulte a documentação de tipos que implementam essa característica para entender o conjunto completo de implicações.

Parameters:

logOptions - O HttpLogOptions a ser usado ao enviar e receber solicitações de e para o serviço.

Returns:

o objeto QueueServiceClientBuilder atualizado

messageEncoding

public QueueServiceClientBuilder messageEncoding(QueueMessageEncoding messageEncoding)

Define a codificação de mensagens da fila.

Parameters:

messageEncoding - QueueMessageEncoding.

Returns:

o objeto QueueServiceClientBuilder atualizado

pipeline

public QueueServiceClientBuilder pipeline(HttpPipeline httpPipeline)

Define o HttpPipeline a ser usado para o cliente de serviço.

Nota: É importante entender a ordem de precedência das APIs HttpTrait. Em particular, se um HttpPipeline for especificado, isso terá precedência sobre todas as outras APIs na característica e elas serão ignoradas. Se não HttpPipeline for especificado, um pipeline HTTP será construído internamente com base nas configurações fornecidas a essa característica. Além disso, pode haver outras APIs em tipos que implementam essa característica que também são ignoradas se um HttpPipeline for especificado, portanto, consulte a documentação de tipos que implementam essa característica para entender o conjunto completo de implicações.

O endpoint(String endpoint) não é ignorado quando pipeline é definido.

Parameters:

httpPipeline - HttpPipeline a ser usado para enviar solicitações de serviço e receber respostas.

Returns:

o objeto QueueServiceClientBuilder atualizado

processMessageDecodingError

public QueueServiceClientBuilder processMessageDecodingError(Consumer processMessageDecodingErrorHandler)

Define o manipulador que executa as tarefas necessárias quando uma mensagem é recebida ou atingiu o pico da fila, mas não pode ser decodificada.

Essa mensagem pode ser recebida ou atingiu o pico quando a fila está esperando certa QueueMessageEncoding , mas há outro produtor que não está codificando mensagens da maneira esperada. Ou seja, a fila contém mensagens com codificação diferente.

QueueMessageDecodingError contém QueueClient para a fila que recebeu a mensagem, bem como getQueueMessageItem() ou getPeekedMessageItem() com o corpo bruto, ou seja, nenhuma decodificação será tentada para que o corpo possa ser inspecionado como foi recebido da fila.

O manipulador não tentará remover a mensagem da fila. Portanto, esse tratamento deve ser incluído no próprio manipulador.

O manipulador será compartilhado por todos os clientes de QueueServiceClient fila criados ou QueueServiceAsyncClient criados por esse construtor.

É recomendável que esse manipulador seja usado para o síncrono QueueClient.

Exemplos de código

String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
     + "AccountKey={key};EndpointSuffix={core.windows.net}";

 Consumer<QueueMessageDecodingError> processMessageDecodingErrorHandler =
     (queueMessageDecodingFailure) -> {
         QueueMessageItem queueMessageItem = queueMessageDecodingFailure.getQueueMessageItem();
         PeekedMessageItem peekedMessageItem = queueMessageDecodingFailure.getPeekedMessageItem();
         if (queueMessageItem != null) {
             System.out.printf("Received badly encoded message, messageId=%s, messageBody=%s",
                 queueMessageItem.getMessageId(),
                 queueMessageItem.getBody().toString());
             queueMessageDecodingFailure
                 .getQueueClient()
                 .deleteMessage(queueMessageItem.getMessageId(), queueMessageItem.getPopReceipt());
         } else if (peekedMessageItem != null) {
             System.out.printf("Peeked badly encoded message, messageId=%s, messageBody=%s",
                 peekedMessageItem.getMessageId(),
                 peekedMessageItem.getBody().toString());
         }
     };

 QueueServiceClient client = new QueueServiceClientBuilder()
     .connectionString(connectionString)
     .processMessageDecodingError(processMessageDecodingErrorHandler)
     .buildClient();

Parameters:

processMessageDecodingErrorHandler - o manipulador.

Returns:

o objeto QueueServiceClientBuilder atualizado

processMessageDecodingErrorAsync

public QueueServiceClientBuilder processMessageDecodingErrorAsync(Function> processMessageDecodingErrorAsyncHandler)

Define o manipulador assíncrono que executa as tarefas necessárias quando uma mensagem é recebida ou atingiu o pico da fila, mas não pode ser decodificada.

Essa mensagem pode ser recebida ou atingiu o pico quando a fila está esperando certa QueueMessageEncoding , mas há outro produtor que não está codificando mensagens da maneira esperada. Ou seja, a fila contém mensagens com codificação diferente.

QueueMessageDecodingError contém QueueAsyncClient para a fila que recebeu a mensagem, bem como getQueueMessageItem() ou getPeekedMessageItem() com o corpo bruto, ou seja, nenhuma decodificação será tentada para que o corpo possa ser inspecionado como foi recebido da fila.

O manipulador não tentará remover a mensagem da fila. Portanto, esse tratamento deve ser incluído no próprio manipulador.

O manipulador será compartilhado por todos os clientes de QueueServiceClient fila criados ou QueueServiceAsyncClient criados por esse construtor.

É recomendável que esse manipulador seja usado para o assíncrono QueueAsyncClient.

Exemplos de código

String connectionString = "DefaultEndpointsProtocol=https;AccountName={name};"
     + "AccountKey={key};EndpointSuffix={core.windows.net}";

 Function<QueueMessageDecodingError, Mono<Void>> processMessageDecodingErrorHandler =
     (queueMessageDecodingFailure) -> {
         QueueMessageItem queueMessageItem = queueMessageDecodingFailure.getQueueMessageItem();
         PeekedMessageItem peekedMessageItem = queueMessageDecodingFailure.getPeekedMessageItem();
         if (queueMessageItem != null) {
             System.out.printf("Received badly encoded message, messageId=%s, messageBody=%s",
                 queueMessageItem.getMessageId(),
                 queueMessageItem.getBody().toString());
             return queueMessageDecodingFailure
                 .getQueueAsyncClient()
                 .deleteMessage(queueMessageItem.getMessageId(), queueMessageItem.getPopReceipt());
         } else if (peekedMessageItem != null) {
             System.out.printf("Peeked badly encoded message, messageId=%s, messageBody=%s",
                 peekedMessageItem.getMessageId(),
                 peekedMessageItem.getBody().toString());
             return Mono.empty();
         } else {
             return Mono.empty();
         }
     };

 QueueServiceClient client = new QueueServiceClientBuilder()
     .connectionString(connectionString)
     .processMessageDecodingErrorAsync(processMessageDecodingErrorHandler)
     .buildClient();

Parameters:

processMessageDecodingErrorAsyncHandler - o manipulador.

Returns:

o objeto QueueServiceClientBuilder atualizado

retryOptions

public QueueServiceClientBuilder retryOptions(RetryOptions retryOptions)

Define o RetryOptions para todas as solicitações feitas por meio do cliente.

Nota: É importante entender a ordem de precedência das APIs HttpTrait. Em particular, se um HttpPipeline for especificado, isso terá precedência sobre todas as outras APIs na característica e elas serão ignoradas. Se não HttpPipeline for especificado, um pipeline HTTP será construído internamente com base nas configurações fornecidas a essa característica. Além disso, pode haver outras APIs em tipos que implementam essa característica que também são ignoradas se um HttpPipeline for especificado, portanto, consulte a documentação de tipos que implementam essa característica para entender o conjunto completo de implicações.

Definir isso é mutuamente exclusivo com o uso de retryOptions(RequestRetryOptions retryOptions). Considere usar retryOptions(RequestRetryOptions retryOptions) para também definir opções específicas de armazenamento.

Parameters:

retryOptions - O RetryOptions a ser usado para todas as solicitações feitas por meio do cliente.

Returns:

o objeto QueueServiceClientBuilder atualizado

retryOptions

public QueueServiceClientBuilder retryOptions(RequestRetryOptions retryOptions)

Define as opções de repetição de solicitação para todas as solicitações feitas por meio do cliente. Definir isso é mutuamente exclusivo com o uso de retryOptions(RetryOptions retryOptions).

Parameters:

retryOptions - RequestRetryOptions.

Returns:

o objeto QueueServiceClientBuilder atualizado.

sasToken

public QueueServiceClientBuilder sasToken(String sasToken)

Define o token SAS usado para autorizar solicitações enviadas ao serviço.

Parameters:

sasToken - O token SAS a ser usado para autenticar solicitações. Essa cadeia de caracteres deve ser apenas os parâmetros de consulta (com ou sem um '?' à esquerda) e não uma URL completa.

Returns:

o QueueServiceClientBuilder atualizado

serviceVersion

public QueueServiceClientBuilder serviceVersion(QueueServiceVersion version)

Define o QueueServiceVersion que é usado ao fazer solicitações de API.

Se uma versão de serviço não for fornecida, a versão do serviço que será usada será a versão de serviço conhecida mais recente com base na versão da biblioteca de clientes que está sendo usada. Se nenhuma versão de serviço for especificada, a atualização para uma versão mais recente da biblioteca de clientes terá o resultado da possível mudança para uma versão de serviço mais recente.

Direcionar uma versão de serviço específica também pode significar que o serviço retornará um erro para APIs mais recentes.

Parameters:

version - QueueServiceVersion do serviço a ser usado ao fazer solicitações.

Returns:

o objeto QueueServiceClientBuilder atualizado

Aplica-se a