GitHub AT-AT v1.0.19 Release Notes: Target Event-Driven Microservices toil — fire at will! For the glory of the Automation Empire!
Executive Summary
This version of the GitHub AT-AT (Automate the Automation with Terraform) module introduce Azure cloud native EventGrid-based messaging empowers teams to rapidly build true event-driven microservices using Microsoft Azure serverless infrastructure with minimal toil.
- Enhanced Event-Driven Capabilities: Seamlessly provision EventGrid Topics and Subscriptions to rapidly implement or scale serverless, event-driven solutions. A ready-to-use C# .NET reference implementation for publishing and subscribing to events simplifies inter-service communication and accelerates development.
- Improved Application Resilience: Each regional-stamp of the Azure Function now has its own storage resources, reducing data bottlenecks and increasing overall performance, reliability, and high availability.
- Frictionless DevOps Experience: New GitHub Actions automatically deploy .NET code after Terraform completes provisioning, minimizing downtime and reducing deployment errors. Leveraging Terraform’s for_each further lowers operational overhead, simplifying maintenance and updates.
Check out the module on the Terraform Module Registry:
link
Check out the source code on GitHub:
link
Module Updates
v1.0.19 terraform-github-atat v1.0.37 terraform-github-codebase-terraform-azure-fn-app-dotnet v1.0.32 terraform-github-action-azure-application v1.0.24 terraform-github-codebase-terraform-azure-fn-app
Enhancements
- Azure Function App module azure-fn-app deploys an EventGrid Topic and EventGrid Subscription that can be turned on and off using the flag eventgrid_subscriptions_enabled. This allows you to deploy the initial version of your Azure Function Code that has an EventGridTrigger which is a pre-requisite before provisioning an Event Grid Subscription targettting an Azure Function.
- Azure Function App module azure-fn-app deploys .NET code for a working EventGrid event publisher and EventGrid event subscriber. There are two new functions “InternalPublisher” and “InternalSubscriber” that publish and subscribe to the internal EventGrid Topic. You can invoke the “InternalPublisher” function via it’s HTTP Trigger and watch the “InternalSubscriber” process the event as its published.
- Azure Function App module azure-fn-app deploys a Storage Account intended to be used for Application persisted storage. This will allow you to use Blob, Queue, and Table storage within each regional stamp of your Azure Function. Additional Object Replication might be necessary to setup to ensure data is replicated across storage accounts in an active-active deployment scenario.
- Azure Function App module azure-fn-app deploys new GitHub Actions Workflows that trigger when the “Terraform Apply on PUSH” workflow completes. This allows the .NET code deployment to succeed successful infrastructure updates applied by Terraform.
Break Fixes
- GitHub source code files created by the GitHub AT-AT codebase and actions modules now use for_each to reduce churn if you choose to perform updates.
- Function App now overrides the default use_32_bit_worker which defaults to true for some reason. We now set this to fault.
- Function App now has application setting WEBSITE_USE_PLACEHOLDER_DOTNETISOLATED set to 1 in order to properly support .NET Isolated hosting mode.
- Function App now has application setting FUNCTION_MANAGED_IDENTITY to pass the User Assigned Identity to the application code.
- Function App now has application setting STORAGE_BLOB_CONNECTION_STRING to access the regional-stamp’s Azure Storage Account intended for data storage.
- Function App now has application setting STORAGE_QUEUE_CONNECTION_STRING to access the regional-stamp’s Azure Storage Account intended for data storage. This currently points to the same storage account that is used for Blob Storage. A separate application setting is provided to allow you to separate them easily if you want dedicated storage accounst for Queue and Blob Storage.
- Function App now has application setting EVENTGRID_INTERNAL_ENDPOINT to access the regional-stamp’s EventGrid Topic for internal Pub/Sub event-based messaging within the microservice.
- Function App now has both a User Assigned Managed identity and a System Assigned Identity. The application code is setup to use the User Assigned Identity. The System Assigned Identity is used by the EventGridTrigger. WARNING: The EventGridTrigger will not work without a System Assigned Identity on the Function App.
- Terraform State Break Lease GitHub Action has a corrected job name to more accurately represent what it does.
Happy Azure Terraforming!