
Product
Introducing Socket MCP for Claude Desktop
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.
github.com/Azure/azure-sdk-for-go/sdk/storage/azqueue
Service Version: 2018-03-28
Azure Queue storage is a service for storing large numbers of messages that can be accessed from anywhere in the world via authenticated calls using HTTP or HTTPS. A single queue message can be up to 64 KiB in size, and a queue can contain millions of messages, up to the total capacity limit of a storage account.
Source code | API reference documentation | REST API documentation
Install the Azure Queue Storage SDK for Go with go get:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azqueue
If you're going to authenticate with Azure Active Directory (recommended), install the azidentity module.
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
A supported Go version (the Azure SDK supports the two most recent Go releases).
You need an Azure subscription and a Storage Account to use this package.
To create a new Storage Account, you can use the Azure Portal, Azure PowerShell, or the Azure CLI. Here's an example using the Azure CLI:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
In order to interact with the Azure Queue Storage service, you'll need to create an instance of the azqueue.ServiceClient
type. The azidentity module makes it easy to add Azure Active Directory support for authenticating Azure SDK clients with their corresponding Azure services.
// create a credential for authenticating with Azure Active Directory
cred, err := azidentity.NewDefaultAzureCredential(nil)
// TODO: handle err
// create an azqueue.ServiceClient for the specified storage account that uses the above credential
client, err := azqueue.NewServiceClient("https://MYSTORAGEACCOUNT.queue.core.windows.net/", cred, nil)
// TODO: handle err
Learn more about enabling Azure Active Directory for authentication with Azure Storage in our documentation and our samples.
The following components make up the Azure Queue Service:
The Azure Storage Queues client library for GO allows you to interact with each of these components through the use of a dedicated client object.
Two different clients are provided to interact with the various components of the Queue Service:
NewQueueClient
method.We guarantee that all client instance methods are goroutine-safe and independent of each other (guideline). This ensures that the recommendation of reusing client instances is always safe, even across goroutines.
Queue metadata name/value pairs are valid HTTP headers and should adhere to all restrictions governing HTTP headers. Metadata names must be valid HTTP header names, may contain only ASCII characters, and should be treated as case-insensitive. Base64-encode or URL-encode metadata values containing non-ASCII characters.
Client options | Accessing the response | Handling failures | Logging
const (
accountName = "MYSTORAGEACCOUNT"
accountKey = "ACCOUNT_KEY"
queueName = "samplequeue"
)
// shared key credential set up
cred := azqueue.NewSharedKeyCredential(accountName, accountKey)
// instantiate service client
serviceClient, err := azqueue.NewServiceClientWithSharedKeyCredential(account, cred, nil)
// TODO: handle error
// 1. create queue
queueClient := serviceClient.NewQueueClient(queueName)
_, err = queueClient.Create(context.TODO(), nil)
// TODO: handle error
// 2. enqueue message
_, err = queueClient.EnqueueMessage(context.TODO(), message, nil)
// TODO: handle error
// 3. dequeue message
_, err = queueClient.DequeueMessage(context.TODO(), nil)
// TODO: handle error
// 4. delete queue
_, err =queueClient.Delete(context.TODO(), nil)
// TODO: handle error
const (
account = "https://MYSTORAGEACCOUNT.queue.core.windows.net/"
)
// authenticate with Azure Active Directory
cred, err := azidentity.NewDefaultAzureCredential(nil)
// TODO: handle error
// create a client for the specified storage account
client, err := azqueue.NewServiceClient(account, cred, nil)
// TODO: handle error
// queue listings are returned across multiple pages
pager := client.NewListQueuesPager(nil)
// continue fetching pages until no more remain
for pager.More() {
resp, err := pager.NextPage(context.Background())
_require.NoError(err)
// print queue name
for _, queue := range resp.Queues {
fmt.Println(*queue.Name)
}
}
All queue service operations will return an
*azcore.ResponseError on failure with a
populated ErrorCode
field. Many of these errors are recoverable.
The queueerror package provides the possible Storage error codes
along with various helper facilities for error handling.
const (
connectionString = "<connection_string>"
queueName = "samplequeue"
)
// create a client with the provided connection string
client, err := azqueue.NewServiceClientFromConnectionString(connectionString, nil)
// TODO: handle error
// try to delete the queue, avoiding any potential race conditions with an in-progress or completed deletion
_, err = client.DeleteQueue(context.TODO(), queueName, nil)
if queueerror.HasCode(err, queueerror.QueueBeingDeleted, queueerror.QueueNotFound) {
// ignore any errors if the queue is being deleted or already has been deleted
} else if err != nil {
// TODO: some other error
}
Get started with our Queue samples. They contain complete examples of the above snippets and more.
See the Storage CONTRIBUTING.md for details on building, testing, and contributing to this library.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution.
If you'd like to contribute to this library, please read the [contributing guide] contributing_guide to learn more about how to build and test the code.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.
Product
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.
Application Security
/Security News
Socket CEO Feross Aboukhadijeh and a16z partner Joel de la Garza discuss vibe coding, AI-driven software development, and how the rise of LLMs, despite their risks, still points toward a more secure and innovative future.