{"id":17924486,"url":"https://github.com/itpropro/serverlessworkshop","last_synced_at":"2025-06-17T08:33:31.686Z","repository":{"id":37991956,"uuid":"183586480","full_name":"itpropro/ServerlessWorkshop","owner":"itpropro","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-15T05:55:43.000Z","size":2514,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T00:11:32.169Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itpropro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-04-26T08:08:57.000Z","updated_at":"2021-11-03T09:23:52.000Z","dependencies_parsed_at":"2024-10-28T20:49:03.302Z","dependency_job_id":"d227513b-fbdb-4e83-a2ce-b3ade285f983","html_url":"https://github.com/itpropro/ServerlessWorkshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itpropro%2FServerlessWorkshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itpropro%2FServerlessWorkshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itpropro%2FServerlessWorkshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itpropro%2FServerlessWorkshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itpropro","download_url":"https://codeload.github.com/itpropro/ServerlessWorkshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245204418,"owners_count":20577347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-28T20:48:57.952Z","updated_at":"2025-03-24T03:30:52.484Z","avatar_url":"https://github.com/itpropro.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ServerlessWorkshop\n\n# 1. Setup/Preparation\n## 1. VMs\n![Log Analytics parameters](/images/ServerlessWorkshop-0010.jpg)\n![Log Analytics parameters](/images/ServerlessWorkshop-0009.jpg)\n![Log Analytics parameters](/images/ServerlessWorkshop-0008.jpg)\n![Log Analytics parameters](/images/ServerlessWorkshop-0007.jpg)\n![Log Analytics parameters](/images/ServerlessWorkshop-0006.jpg)\n![Log Analytics parameters](/images/ServerlessWorkshop-0005.jpg)\n![Log Analytics parameters](/images/ServerlessWorkshop-0004.jpg)\n## 2. Azure Function\n\n## 3. Logic App\n![Log Analytics parameters](/images/ServerlessWorkshop-0000.jpg)\n# 2. Network Watcher configuration\n\nTo configure Azure Network Watcher, you need to enable Network Watcher on your subscription for the designated region first.\nTo activate Network Watcher\n1. Search for Network Watcher in the Azure Portal\n2. Select and expand the region you want to activate\n3. Click on the three dots to the right and select \"Enable network watcher\"\n\n![Network Watcher](/images/ServerlessWorkshop-0002.jpg) \n\n# 3. Azure Functions configuration\n## 1. Configure MSI\n\nTo configure the Azure Function to use an managed service identity browse to the Function Apps pane in the Azure Portal and select the Function App where you want to enable a MSI\n1. On the platform features pane of your function app select the Identity option found under the category Networking\n![fapp1](/images/ServerlessWorkshop-0012.jpg) \n\n2. Set the status for a system assigned identity to On and save\n\n![fapp2](/images/ServerlessWorkshop-0013.jpg) \n\n3. Configure permissions by adding the role !role! at the subscription scope for the MSI\n\n## 2. Write Azure Functions Code\n\nTo run and debug Azure functions locally with Visual Studio Code, you need the following requirements:\n- Install PowerShell Core (https://github.com/PowerShell/PowerShell/releases)[https://github.com/PowerShell/PowerShell/releases]\n- Install the .NET Core SDK 2.1+ (https://dotnet.microsoft.com/download)[https://dotnet.microsoft.com/download]\n- Install Azure Functions Core Tools version 2.4.299 or later `npm i -g azure-functions-core-tools@2`\n- Install Azure Functions extension in Visual Studio Code (https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions)[https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions]\n\n# 6. Event Grid configuration\nAzure Logic Apps have built-in Azure integration. Therefore the Event Grid Subscription for blob creation is created during Logig App Configuration.\n\n# 7. Logic App configuration\nAzure Logig Apps can handles the events that are generated by the Event Grid Subscription. To create a Logic App that sends an email every time a new blob on a specific storage account is created perform the following steps:\n\n1. Create a new empty Logic App\n2. Start with the common trigger 'When an Event Grid resource event occurs'\n3. Connect the Logic App to Event Grid using ur Azure Credentials\n4. Open the Logic Apps Designer\n5. Configure the common trigger as shown in the screenshot:\n![lapp1](/images/ServerlessWorkshop-0011.jpg)\n6. Create an action using the Standard: Office 365 Outlook ation template\n7. Choose as action Send an email and connect a valid O365 account\n8. Supply recipient, subject and body for the automatic mail\n9. Save the configuration\n\n# 8. Simulate VM traffic\n1. Clone this repo: https://github.com/ubeeri/Invoke-UserSimulator\n2. Import the script modules:\n`PS\u003eImport-Module .\\Invoke-UserSimulator.ps1`\n3. Run only the Internet Explorer function on the local host:\n`PS\u003eInvoke-UserSimulator -StandAlone -IE`\n# 9. Bring everything together\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitpropro%2Fserverlessworkshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitpropro%2Fserverlessworkshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitpropro%2Fserverlessworkshop/lists"}