Azure SDK for Go - Samples

azure-sdk-for-go-samples provides easy-to-understand, continuously-tested samples for using Azure services via Azure/azure-sdk-for-go. These are currently targeting Go SDK For Azure v14.0.0.

The goal of this project is to provide a library of code snippets for common and not-so-common operations in Azure via the Go SDK. Code is organized by services as well as snippet type. The repo will continue to be testable to ensure our samples reflect current recommendations and best practices!

Read the main SDK README for more help getting started with the Go SDK.

To run tests

  1. Set the following environment variables (those marked * are required). Use the following instructions to find or create these values if necessary.


    Using the Azure CLI, you can get your subscription ID by running az account list. You can check your tenant ID and get a client ID and secret by running az ad sp create-for-rbac -n "<yourAppName>".

    If AZ_RESOURCE_GROUP_PREFIX isn't specified, azure-samples-go will be used.

    If AZ_LOCATION isn't specified westus2 will be used.

    If AZ_KEEP_SAMPLE_RESOURCES is set to 1 tests won't clean up resources they create when done. This can be helpful if you want to further experiment with those resources.

    AZ_SP_OBJECT_ID represents a service principal ObjectID. It is needed to run the Create VM with encrypted managed disks sample.

    NOTE: the environment variables are listed in .env.tpl so you can copy that to .env (e.g. cp .env.tpl .env) and update for convenience. The samples pick up environment variables from .env files automatically.

  2. Run dep ensure to get dependencies.

  3. Run tests with go test as follows:

    1. To run individual samples, refer to that folder, e.g. go test ./storage/, go test ./network/.
      • If you use a .env file, copy it into the folder first, e.g. cp .env ./network/.
    2. If you're feeling lucky and want to test all the samples, try go test ./...
      • This only requires the root .env file.



This code is provided under the MIT license. See LICENSE for details.


We welcome your contributions! For instructions and our code of conduct see And thank you!