Tools / Buffalo-azure

Buffalo-azure

A gobuffalo plugin for working with Azure.

Forks: 4
Watchers: 20
Stars: 22

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.

Read a comprehensive walk-through of using Docker and the buffalo azure provision command to have your Buffalo application running on Azure in no-time.

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

go get

Use go get to acquire and install from source. Versions of the project after v0.2.0 use Go modules exclusively, which means you'll need Go 1.11 or later.

For more information on modules, see the Go modules wiki.

go get -u github.com/Azure/buffalo-azure

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.

Attribution

The image of Azure Gophers was drawn by Ashley McNamara, based on artwork by Renee French. It is licensed under the Creative Commons 4.0 License. You can find many more gophers like this one at: https://github.com/ashleymcnamara/gophers

License: MIT License - A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.