buffalo-azure/README.md

5.5 KiB

Buffalo-Azure

GoDoc Build Status

By extending gobuffalo, we seek to empower rapid web developers to deploy to Azure easily, and even generate code that will integrate well with Azure services.

Don't have an Azure account? Get started right now for free.

provision

buffalo azure provision [flags]

It's fun to tinker with a website locally, but at some point you've got to get it hosted. Use the provision command to create the necessary infrastructure and services to run your website on Microsoft's Cloud. All you need is to use the Dockerfile already generated by Buffalo to create an image that will be run in an Azure Web App for Containers.

eventgrid

buffalo generate eventgrid {name} [flags]

Azure Event Grid is an HTTP based messaging solution, that seeks to empower you while writing event-driven reactive web applications. Many Azure Services are already wired up to start informing you when their events happen using Event Grid.

Running this command will add an action to your buffalo application that can be registered with an Event Grid Topic. It automatically responds to Subscription Validation events, and dispatches to different methods based on the Event Type string in an Event definition.

Installation

This is an extension, so before you install Buffalo-Azure, make sure you've already installed Buffalo.

Build from Source

option 1 - go get

The easiest, albeit least stable, way to get started is to use go get.

go get -u github.com/Azure/buffalo-azure
option 2 - git clone

dep is a pre-requisite for these installation instructions.

Building yourself isn't too arduous, and enables a reproducible build stamped with the git revision you're using.

mkdir -p $GOPATH/src/github.com/Azure/buffalo-azure
cd $GOPATH/src/github.com/Azure/buffalo-azure
git clone https://github.com/Azure/buffalo-azure.git .
dep ensure
go install -ldflags "-X github.com/Azure/buffalo-azure/cmd.version=$(git rev-parse HEAD)"

Binary Distribution

This isn't supported yet, but if you'd like to see it, go get it moved up our backlog by thumbs-upping or commenting on Azure/buffalo-azure#37.

Authentication

While working with Buffalo-Azure, there are two options for establishing an identity that should be used for any operation requiring Azure authentication:

Device Authentication

This option requires manual attention, but is simple. Just add --use-device-auth to the command line and you'll be prompted to login with your identity. If you omit data that can be inferred, it may be slow, but Buffalo-Azure will just figure it out for you.

Service Principals

Using the command-line arguments --client-id, --client-secret, and --tenant-id, or the corresponding environment variables AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, one can specify a Service Principal's identity.

To learn more about getting started with Service Principals you can look here:

Disclaimer

This is an experiment by the Azure Developer Experience team to expand our usefulness to Go developers beyond generating SDKs. This is not officially supported by the Azure DevEx team, Azure, or Microsoft.

Contributing

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. For details, visit https://cla.microsoft.com.

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.