+ Create Infrastructure with Terraform + Deploy the Azure Function(Private Endpoint) with GitHub Actions + A Function App with a basic .NET HTTP triggered Azure Function. + An Azure Virtual Network and Private Endpoint + PrivateLink DNZ + Service Bus + Storage Account + Deployment with GitHub Actions + Create client id, client secret, subscription and tenant id ``` az ad sp create-for-rbac --name "github-deployment" --role contributor /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP> --sdk-auth ``` + Add AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID and AZURE_TENANT_ID into Secret of GitHub Repo(Using Terraform) + Add AZURE_CREDENTIALS into Secret of GitHub Repo (using Azure Login) ``` { "clientSecret": "", "subscriptionId": "", "tenantId": "", "clientId": "" } ``` + Create a storage account and a container. It will be save terraform state file. + Create Azure Virtual Machine(the same virtual network of Azure Function App) - Install Azure CLI - Install self-hosted runner - Create a public Azure Function in the Azure Portal
- Set SCM Basic Authentication
- Get Publish Profile and add into secret of GitHub repo settings
- Deployment (az-deployment.yml or azure-deployment.yml)








