README

Microsoft Azure SDK for Go

This project provides various Go packages to perform operations on Microsoft Azure REST APIs.

GoDoc Build Status

See list of implemented API clients here.

NOTE: This repository is under heavy ongoing development and is likely to break over time. We currently do not have any releases yet. If you are planning to use the repository, please consider vendoring the packages in your project and update them when a stable tag is out.

Installation

go get -d github.com/Azure/azure-sdk-for-go/management

Usage

Read Godoc of the repository at: http://godoc.org/github.com/Azure/azure-sdk-for-go/

The client currently supports authentication to the Service Management API with certificates or Azure .publishSettings file. You can download the .publishSettings file for your subscriptions here.

Example: Creating a Linux Virtual Machine
package main

import (
	"encoding/base64"
	"fmt"

	"github.com/Azure/azure-sdk-for-go/management"
	"github.com/Azure/azure-sdk-for-go/management/hostedservice"
	"github.com/Azure/azure-sdk-for-go/management/virtualmachine"
	"github.com/Azure/azure-sdk-for-go/management/vmutils"
)

func main() {
	dnsName := "test-vm-from-go"
	storageAccount := "mystorageaccount"
	location := "West US"
	vmSize := "Small"
	vmImage := "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04-LTS-amd64-server-20140724-en-us-30GB"
	userName := "testuser"
	userPassword := "Test123"

	client, err := management.ClientFromPublishSettingsFile("path/to/downloaded.publishsettings", "")
	if err != nil {
		panic(err)
	}

	// create hosted service
	if err := hostedservice.NewClient(client).CreateHostedService(hostedservice.CreateHostedServiceParameters{
		ServiceName: dnsName,
		Location:    location,
		Label:       base64.StdEncoding.EncodeToString([]byte(dnsName))}); err != nil {
		panic(err)
	}

	// create virtual machine
	role := vmutils.NewVMConfiguration(dnsName, vmSize)
	vmutils.ConfigureDeploymentFromPlatformImage(
		&role,
		vmImage,
		fmt.Sprintf("http://%s.blob.core.windows.net/sdktest/%s.vhd", storageAccount, dnsName),
		"")
	vmutils.ConfigureForLinux(&role, dnsName, userName, userPassword)
	vmutils.ConfigureWithPublicSSH(&role)

	operationID, err := virtualmachine.NewClient(client).
		CreateDeployment(role, dnsName, virtualmachine.CreateDeploymentOptions{})
	if err != nil {
		panic(err)
	}
	if err := client.WaitForOperation(operationID, nil); err != nil {
		panic(err)
	}
}

License

This project is published under Apache 2.0 License.

Expand ▾ Collapse ▴

Directories

Path Synopsis
arm/authorization
arm/compute
arm/dns
arm/examples
arm/examples/helpers
arm/features
arm/logic
arm/network
arm/redis
arm/resources
arm/scheduler
arm/search
arm/storage
arm/subscriptions
arm/web
core/http Package http provides HTTP client and server implementations.
core/http/cgi Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875.
core/http/cookiejar Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar.
core/http/fcgi Package fcgi implements the FastCGI protocol.
core/http/httptest Package httptest provides utilities for HTTP testing.
core/http/httputil Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package.
core/http/pprof Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool.
core/tls Package tls partially implements TLS 1.2, as specified in RFC 5246.
management Package management provides the main API client to construct other clients and make requests to the Microsoft Azure Service Management REST API.
management/affinitygroup
management/hostedservice Package hostedservice provides a client for Hosted Services.
management/location Package location provides a client for Locations.
management/networksecuritygroup Package networksecuritygroup provides a client for Network Security Groups.
management/osimage Package osimage provides a client for Operating System Images.
management/sql
management/storageservice Package storageservice provides a client for Storage Services.
management/testutils Package testutils contains some test utilities for the Azure SDK
management/virtualmachine Package virtualmachine provides a client for Virtual Machines.
management/virtualmachinedisk Package virtualmachinedisk provides a client for Virtual Machine Disks.
management/virtualmachineimage Package virtualmachineimage provides a client for Virtual Machine Images.
management/virtualnetwork Package virtualnetwork provides a client for Virtual Networks.
management/vmutils Package vmutils provides convenience methods for creating Virtual Machine Role configurations.
storage Package storage provides clients for Microsoft Azure Storage Services.
MODULE sdk/armcore
MODULE sdk/azcore
MODULE sdk/azidentity
MODULE sdk/internal
MODULE sdk/to