Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/azure/buffalo-azure

A gobuffalo plugin for working with Azure.
https://github.com/azure/buffalo-azure

deployment generator gobuffalo middleware plugin

Last synced: 3 months ago
JSON representation

A gobuffalo plugin for working with Azure.

Awesome Lists containing this project

README

        




# Buffalo-Azure

[![GoDoc](https://godoc.org/github.com/Azure/buffalo-azure?status.svg)](https://godoc.org/github.com/Azure/buffalo-azure)
[![Build Status](https://travis-ci.org/Azure/buffalo-azure.svg?branch=master)](https://travis-ci.org/Azure/buffalo-azure)

By extending [gobuffalo](https://gobuffalo.io), 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.](https://aka.ms/buffalo-free-account)

#### 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](https://azure.microsoft.com/en-us/services/app-service/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.
- [Local Docker Build](./documentation/deployment/Deployment.LocalDockerBuild.md)
- [Continuous Deployment Using GitHub and Docker Hub](./documentation/deployment/Deployment.DockerHubCloudBuild.md)

#### eventgrid

`buffalo generate eventgrid {name} [flags]`

[Azure Event Grid](https://docs.microsoft.com/en-us/azure/event-grid/overview) 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](https://gobuffalo.io/en/docs/installation).

#### 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](https://github.com/golang/go/wiki/Modules).

``` bash
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](https://github.com/Azure/buffalo-azure/issues/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](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?toc=%2Fazure%2Fazure-resource-manager%2Ftoc.json&view=azure-cli-latest)
- Using the Azure Portal: [https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal?view=azure-cli-latest)
- Using Azure PowerShell: [https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authenticate-service-principal](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authenticate-service-principal?view=azure-cli-latest)

## 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](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
[[email protected]](mailto:[email protected]) with any additional questions or comments.

## Attribution
The image of Azure Gophers was drawn by [Ashley McNamara](https://medium.com/@ashleymcnamara), based on artwork by
[Renee French](https://reneefrench.blogspot.com). It is licensed under the [Creative Commons 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/).
You can find many more gophers like this one at: https://github.com/ashleymcnamara/gophers