{"id":23046931,"url":"https://github.com/matsest/dapr-container-apps-demo","last_synced_at":"2026-04-28T00:33:29.829Z","repository":{"id":106353428,"uuid":"494626398","full_name":"matsest/dapr-container-apps-demo","owner":"matsest","description":"Learning DAPR and Azure Container Apps","archived":false,"fork":false,"pushed_at":"2024-02-15T21:25:35.000Z","size":62,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T18:20:39.521Z","etag":null,"topics":["az-cli","azcli","azure","azure-bicep","azure-bicep-samples","azure-container-apps","bicep","containerapps","demo","powershell","pwsh"],"latest_commit_sha":null,"homepage":"","language":"Bicep","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matsest.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-20T22:54:27.000Z","updated_at":"2022-05-22T23:17:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"c21c5941-7922-499b-b7c0-98b6d64aea32","html_url":"https://github.com/matsest/dapr-container-apps-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/matsest/dapr-container-apps-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsest%2Fdapr-container-apps-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsest%2Fdapr-container-apps-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsest%2Fdapr-container-apps-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsest%2Fdapr-container-apps-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matsest","download_url":"https://codeload.github.com/matsest/dapr-container-apps-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matsest%2Fdapr-container-apps-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32361477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["az-cli","azcli","azure","azure-bicep","azure-bicep-samples","azure-container-apps","bicep","containerapps","demo","powershell","pwsh"],"created_at":"2024-12-15T22:30:05.438Z","updated_at":"2026-04-28T00:33:29.814Z","avatar_url":"https://github.com/matsest.png","language":"Bicep","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DAPR Container Apps in Azure\n\n\u003e Learning Azure Container Apps based on [this guide](https://docs.microsoft.com/en-us/azure/container-apps/microservices-dapr-azure-resource-manager?tabs=powershell\u0026pivots=container-apps-bicep) from Microsoft\n\nThis repo contains code to deploy the [Dapr hello-world application](https://github.com/dapr/quickstarts/tree/master/tutorials/hello-world) on [Azure Container Apps](https://docs.microsoft.com/en-us/azure/container-apps/overview) with [Dapr](https://dapr.io/) using Azure Storage Account for storing state.\n\n### Technologies\n\n- :hammer: Azure PowerShell for interaction with Azure\n- :gear: PowerShell for deployment script\n- :muscle: Bicep for Infrastructure as Code\n\n### Overview\n\n![diagram](static/azure-container-apps-microservices-dapr.png)\n([diagram by Microsoft](https://docs.microsoft.com/en-us/azure/container-apps/microservices-dapr-azure-resource-manager?tabs=powershell\u0026pivots=container-apps-bicep#prerequisites) - [CC BY 4.0](https://github.com/MicrosoftDocs/azure-docs/blob/main/LICENSE))\n\n\n## Usage\n\n### Prerequisites\n\n1. [Install/update Azure PowerShell module](https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=latest) (Tested with Az 6.15.0)\n2. [Install/update Bicep CLI](https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/install#install-manually=) (Tested with 0.25.53)\n3. Connect to Azure: `Connect-AzAccount`\n4. Set Context: `Set-AzContext -SubscriptionName \u003csubscription name\u003e`\n5. Register resource provider: `Register-AzResourceProvider -ProviderNamespace Microsoft.App`\n\n### Deploy\n\nOpen PowerShell and run [deploy.ps1](./deploy.ps1) to deploy the resources:\n\n```powershell\n./deploy.ps1\n\n# Example output\n🚀 Deploying container apps...(this will take a few minutes)\n\n✔️  Deploy succeeded! API url:\nhttps://nodeapp.\u003cunique name\u003e.canadacentral.azurecontainerapps.io/order\n\n⌛ Waiting for a minute before querying api and logs...\n\n🔎 Querying /order API...\n{\n  \"orderId\": 99\n}\n\n🗒️  Querying logs from Log Analytics Workspace. Listing 5 latest entries...\n[\n  {\n    \"ContainerAppName_s\": \"nodeapp\",\n    \"Log_s\": \"Got a new order! Order ID: 83\",\n    \"TimeGenerated\": \"2022-05-20T21:36:37.839Z\"\n  },\n  {\n    \"ContainerAppName_s\": \"nodeapp\",\n    \"Log_s\": \"Got a new order! Order ID: 84\",\n    \"TimeGenerated\": \"2022-05-20T21:36:37.839Z\"\n  },\n  {\n    \"ContainerAppName_s\": \"nodeapp\",\n    \"Log_s\": \"Got a new order! Order ID: 85\",\n    \"TimeGenerated\": \"2022-05-20T21:36:39.674Z\"\n  },\n  {\n    \"ContainerAppName_s\": \"nodeapp\",\n    \"Log_s\": \"Got a new order! Order ID: 60\",\n    \"TimeGenerated\": \"2022-05-20T21:36:13.533Z\"\n  },\n  {\n    \"ContainerAppName_s\": \"nodeapp\",\n    \"Log_s\": \"Got a new order! Order ID: 64\",\n    \"TimeGenerated\": \"2022-05-20T21:36:17.643Z\"\n  }\n]\n```\n\n## Clean up resources\n\nThe services deployed are designed for demo purposes and they are quite chatty, which will result in Azure cost (mostly compute, logging, storage). Around $2-$3 daily.\n\nTo clean up resources run the following command:\n\n```powershell\nRemove-AzResourceGroup -Name dapr-containerapps-demo -Force\n```\n\n## Notice\n\nThe steps needed for this demo are closely based on [this guide](https://docs.microsoft.com/en-us/azure/container-apps/microservices-dapr-azure-resource-manager?tabs=powershell\u0026pivots=container-apps-bicep) from Microsoft. The deployment logic and Bicep templates have been updated by me to fit an end-to-end demo deployment scenario and to use latest versions of tooling/providers.\n\nThe application deployed is the [Dapr hello-world application](https://github.com/dapr/quickstarts/tree/master/tutorials/hello-world).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatsest%2Fdapr-container-apps-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatsest%2Fdapr-container-apps-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatsest%2Fdapr-container-apps-demo/lists"}