Buffalo-Azure
![Build Status](https://travis-ci.org/Azure/buffalo-azure.svg?branch=master)
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
option 1 - curl
dep
is a pre-requisite for these installation instructions.
If you're using MacOS or Linux, you can get started by running our installation script:
curl https://raw.githubusercontent.com/Azure/buffalo-azure/master/install.sh | sh
option 2 - go get
The most global, albeit least stable, way to get started is to use go get
.
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