5.5 KiB
Buffalo-Azure
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:
- Service Principal Overview: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-objects
- Using the Azure CLI 2.0 to create a Service Principal: https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli
- Using the Azure Portal: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal
- Using Azure PowerShell: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authenticate-service-principal
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.