Receiving Shipment Plans from Members of an Agricultural Cooperative
This supports a regional agricultural cooperative in receiving the next day's shipment plans from member farmers and using them to prepare its collection center. Azure Functions on the Consumption plan is published over HTTPS, and the received plans and the state needed to run the functions are stored in a Storage Account. Staff check intake status and errors in Application Insights. The business scenario is a fictional example prepared by IceShore, not a real company or system. Source: https://github.com/Azure/azure-quickstart-templates/tree/9a286202372ff9a9a4f4465e1ef30d7b0f3650c6 (Copyright (c) 2015 Microsoft Azure; License: MIT License). The original files are reproduced without modification. The full license text is in the bundled THIRD_PARTY_NOTICES.yaml.
Actors
- Member farmers
- Farm guidance staff
Use cases
- Registering next-day shipment plans
- Staff checking intake status and errors
This diagram supports a regional agricultural cooperative that receives next-day shipment plans from member farmers and uses them to prepare its collection center. An Azure Functions function app on a Consumption (Y1) plan is exposed over HTTPS only (TLS 1.2 or later) and works with a Storage Account and Application Insights. The business scenario is a fictional example prepared by IceShore, not a real cooperative or system. The source IaC is an ARM template from Azure/azure-quickstart-templates (MIT License).
Resources behind shipment plan intake
The function app (Microsoft.Web/sites, kind: functionapp) is at the center and runs on a Consumption plan (Microsoft.Web/serverfarms, SKU: Y1, tier: Dynamic). In this scenario, the function app receives the shipment plans farmers register (member number, shipping date, items, number of boxes and grade) and stores them in the Storage Account. In the template, the Storage Account (Microsoft.Storage/storageAccounts) holds the AzureWebJobsStorage runtime state and the file share for function content. Application Insights (Microsoft.Insights/components) receives telemetry from the function app, such as logs, metrics and request traces. The diagram shows traffic from farmers to the function app, and from the function app to the Storage Account and Application Insights.
Registering plans and staff checks
The two use cases are "Registering next-day shipment plans" and "Staff checking intake status and errors". In the first, member farmers register the items and number of boxes they will ship the next day every evening from a smartphone, over HTTPS (port 443) from the internet. The function app reads and writes the Storage Account and sends telemetry to Application Insights. During the April to October harvest season, about 300 households are assumed to register each day, mostly between 17:00 and 19:00. In the second, farm guidance staff open Application Insights from the Azure portal after the 19:00 cutoff each day to check the number of registrations and any errors. Figures such as 450 farm households and 3 staff are not stated in the IaC, so the numbers in the diagram are assumptions made for the fictional example.
Source IaC
The source is quickstarts/microsoft.web/function-app-create-dynamic/azuredeploy.json in https://github.com/Azure/azure-quickstart-templates (commit 9a286202372ff9a9a4f4465e1ef30d7b0f3650c6, MIT License). It is an ARM template generated from Bicep, with four resource types: Microsoft.Storage/storageAccounts, Microsoft.Web/serverfarms, Microsoft.Web/sites and Microsoft.Insights/components. The function app sets httpsOnly: true, minTlsVersion: 1.2, ftpsState: FtpsOnly, a system-assigned managed identity and FUNCTIONS_EXTENSION_VERSION ~4. The Storage Account sets supportsHttpsTrafficOnly: true and defaultToOAuthAuthentication. A parameter selects the runtime from node, dotnet or java. The default is node. The template does not include any function code that handles shipment plans.
How this diagram was made
This diagram was built from IaC in a public repository. An AI wrote the diagram description (ADL) through IceShore's MCP, and IceShore rendered it. The ADL references the ARM template as its resources, then describes two actors (member farmers and farm guidance staff) and the two use cases above. The agricultural cooperative scenario is a fictional example prepared by IceShore.
FAQ
Can an architecture diagram be made from an ARM template (azuredeploy.json)?
Yes. This diagram was made from the ARM template azuredeploy.json. An AI wrote the diagram description through IceShore's MCP, and IceShore rendered it.
What is the Storage Account used for in this setup?
In the template, the function app's AzureWebJobsStorage setting points to it as the store for Functions runtime state. The WEBSITE_CONTENTAZUREFILECONNECTIONSTRING and WEBSITE_CONTENTSHARE settings also point to it as the file share for function content. Storing the received shipment plans there is part of this example's scenario.
Are the farm household counts and registration figures in the diagram measured values?
No. The IaC does not state the user scale, so these are assumed values set for the fictional example.
Source: Azure/azure-quickstart-templates(MIT)
Load your IaC to get a diagram like this for your own system. What is IceShore