Overview
This guide walks you through deploying Alert Plus into your Azure environment using the provided automation scripts.
Alert Plus is deployed as a set of Azure resources including:
- Azure Function Apps (API, Manager, Workers)
- Azure Storage (Queues and Tables)
- Azure Key Vault (for secure configuration)
- Optional: Azure API Management
The deployment is fully automated using PowerShell and Azure CLI.
Prerequisites
Before beginning the installation, the required tools and permissions must be available in the environment.
PowerShell 7, SQL Powershell Module, Bicep PowerShell Module and Azure CLI are required to execute the deployment scripts. In addition, appropriate access to an Azure subscription (Contributor + User Access Administrator or Owner role) is necessary to create and configure resources.
Required Tools:
- PowerShell 7 (pwsh)
- Azure CLI
- SQL Powershell module
- Bicep Powershell module
Required Access:
- Azure subscription with Contributor + User Access Administrator or Owner role
Ensuring these prerequisites are met helps avoid common deployment failures related to missing dependencies or insufficient permissions.
Sign in to Azure
Authentication to Azure is required before running the deployment scripts. The active subscription should be verified to ensure that resources are created in the intended environment.
Clearing any existing session helps prevent conflicts with cached credentials. After signing in, the correct subscription should be selected. The steps to sign into azure are given below
Step 1: Clear any existing session
az logout
az account clear
Ensures no stale credentials interfere with deployment.
Step 2: Sign in
az login
Opens a browser window for authentication.
Step 3: Select the subscription
az account set --subscription "<SUBSCRIPTION_ID>"
Ensures resources are deployed to the correct subscription.
Optional: Use helper script
pwsh .\01-login-and-set-context.ps1 `
-SubscriptionId "<SUBSCRIPTION_ID>"
Logs in and sets the active subscription automatically.
Deploy Alert Plus
The deployment script provisions all required Azure resources and applies the necessary configuration.
This process includes creating infrastructure resources, configuring application settings, and establishing secure access to Key Vault and Storage. Running the deployment through the script ensures consistency and reduces the likelihood of configuration errors.
pwsh .\00-deploy-and-configure-alertplus.ps1 `
-Action Install `
-ResourceGroupName "<RESOURCE_GROUP>" `
-Location "eastus" `
-ParamsFilePath ".\infra\params\prod.parameters.json" `
-ConfigPath ".\release\config\appsettings.customer.json" `
-TemporarilyEnablePublicAccess `
-TemporarilyAllowCurrentIp
Parameters
The deployment script accepts parameters that control how resources are created and configured. These parameters define the target resource group and region, infrastructure configuration, application behavior, and temporary access settings required during deployment.
| Parameter | Description |
| - Action Install | Deploys resources |
| - Action Uninstall | Removes all the installed resources |
| - ResourceGroupName | Target resource group |
| - Location | Azure region |
| - ParamsFilePath | Infrastructure configuration |
| - ConfigPath | Application configuration |
| - TemporarilyEnablePublicAccess | Enables Key Vault access during deployment |
| - TemporarilyAllowCurrentIp | Allows your IP to access Key Vault |
Providing correct values ensures that resources are deployed in the intended configuration and environment.
Deployment Options
Optional parameters can be used to adjust the deployment based on performance and cost requirements. Different hosting plans and SKU selections affect scaling behavior, throughput, and pricing. These options allow the deployment to be aligned with the needs of development, testing, or production environments.
Use Premium Plan (recommended):
-PlanSkuName "P1v3”
Use smaller Premium plan:
-PlanSkuName "P0v3"
Use Dedicated plan:
-HostingPlanType "Dedicated"
Use Key Vault for storage:
-UseKeyVaultReferenceForStorage
-StorageSecretName "AlertPlus-StorageConnectionString"
Post-Deployment Validation
After deployment, the provisioned resources should be verified to ensure that the system is operating as expected. This includes confirming that Function Apps are running, Storage resources are accessible, Key Vault secrets are configured, and logs are being generated in Application Insights.
Validating the environment helps identify any configuration issues early.
Configuration Reference: Infrastructure Parameters (prod.parameters.json)
| Parameter | Example Value | Description |
| namePrefix | ap-script | Prefix used for all Azure resources (naming convention). |
| location | eastus | Azure region where all resources are deployed. |
| planName | ap-script-asp | Name of the App Service Plan hosting the Function Apps. |
| hostingPlanType | Dedicated | Defines hosting model (Dedicated or Premium). |
| planSkuName | P1v3 | Defines compute size and performance tier. |
| planSkuTier | PremiumV3 | Specifies pricing tier for the App Service Plan. |
| workerShardCount | 2 | Number of worker instances for parallel processing. |
| storageAccountName | apscriptstg01 | Storage account for queues, tables, and artifacts. |
| keyVaultName | apscript-kv01 | Key Vault used to store secrets securely. |
| appInsightsName | ap-script-appi | Application Insights instance for logging and monitoring. |
| functionsWorkerRuntime | dotnet-isolated | Runtime model used by Azure Functions. |
| enablePrivateNetworking | true | Enables private endpoints and VNET integration. |
| vnetName | ap-script-vnet | Virtual Network used for integration and private access. |
Configuration Reference: Application Settings (appsettings.customer.json)
| Setting | Example Value | Description |
| ALERTS_TABLE_NAME | Alerts | Table storing alert definitions. |
| CORS_ALLOWED_ORIGINS | * | Defines allowed origins for API access. |
| SENDGRID_KEY | SendGridApiKey | Key Vault reference for default SendGrid API key. |
| SENDGRID_FROM | alerts@alerts.bamboosolutions.com | Default sender email address. |
| LOGS_TABLE_NAME | logs | Table used for logging API and worker operations. |
| SHAREPOINT_TENANTS_TABLE_NAME | tenants | Stores tenant configuration data. |
| ASAP_INTERVAL_CRON_EXPRESSION | 0 */2 * * * * | Cron expression for frequent processing jobs. |
| DAILY_INTERVAL_CRON_EXPRESSION | 0 1 * * * * | Cron expression for daily jobs. |
| BATCH_SIZE | 2 | Custom batch size for processing alerts. |
| AzureFunctionsJobHost__extensions__queues__batchSize | 1 | Processes one queue message at a time. |
| AzureFunctionsJobHost__extensions__queues__newBatchThreshold | 0 | Fetches new messages immediately. |
| CLIENT_ID | Client ID for authentication (e.g., Graph API). | |
| CLIENT_SECRET | Client secret for authentication. |
Comments
0 comments
Please sign in to leave a comment.