Microsoft Azure

Contents

Azure Fundamentals

Core Concepts

  • Resource Groups
  • Subscriptions
  • Regions and Availability Zones
  • Management Groups
  • Azure Portal
# Azure CLI Login az login # List Subscriptions az account list # Set Subscription az account set --subscription "My Subscription" # Create Resource Group az group create \ --name MyResourceGroup \ --location eastus

Compute Services

Virtual Machines

# Create VM az vm create \ --resource-group MyResourceGroup \ --name MyVM \ --image UbuntuLTS \ --admin-username azureuser \ --generate-ssh-keys # VM Operations az vm start --resource-group MyResourceGroup --name MyVM az vm stop --resource-group MyResourceGroup --name MyVM az vm deallocate --resource-group MyResourceGroup --name MyVM

Azure Functions

# Create Function App az functionapp create \ --resource-group MyResourceGroup \ --name MyFunctionApp \ --storage-account MyStorageAccount \ --consumption-plan-location eastus \ --runtime node # Example Function module.exports = async function (context, req) { context.log('JavaScript HTTP trigger function processed a request.'); context.res = { body: "Hello from Azure Functions!" }; }

Storage Solutions

Blob Storage

# Create Storage Account az storage account create \ --name mystorageaccount \ --resource-group MyResourceGroup \ --location eastus \ --sku Standard_LRS # Create Container az storage container create \ --name mycontainer \ --account-name mystorageaccount # Upload File az storage blob upload \ --account-name mystorageaccount \ --container-name mycontainer \ --name remoteFile.txt \ --file localFile.txt

Azure Files

# Create File Share az storage share create \ --name myshare \ --account-name mystorageaccount # Create Directory az storage directory create \ --share-name myshare \ --name mydir \ --account-name mystorageaccount

Networking

Virtual Network

# Create VNet az network vnet create \ --resource-group MyResourceGroup \ --name MyVNet \ --address-prefix 10.0.0.0/16 \ --subnet-name MySubnet \ --subnet-prefix 10.0.0.0/24 # Create Network Security Group az network nsg create \ --resource-group MyResourceGroup \ --name MyNSG # Add NSG Rule az network nsg rule create \ --resource-group MyResourceGroup \ --nsg-name MyNSG \ --name allow-ssh \ --protocol tcp \ --priority 1000 \ --destination-port-range 22 \ --access allow

Load Balancer

# Create Load Balancer az network lb create \ --resource-group MyResourceGroup \ --name MyLoadBalancer \ --frontend-ip-name MyFrontEnd \ --backend-pool-name MyBackEndPool \ --public-ip-address MyPublicIP

Database Services

Azure SQL Database

# Create SQL Server az sql server create \ --name myserver \ --resource-group MyResourceGroup \ --location eastus \ --admin-user myadmin \ --admin-password Password123! # Create Database az sql db create \ --resource-group MyResourceGroup \ --server myserver \ --name mydb \ --service-objective S0

Cosmos DB

# Create Cosmos DB Account az cosmosdb create \ --name mycosmosdb \ --resource-group MyResourceGroup \ --kind MongoDB \ --capabilities EnableAggregationPipeline # Create Database az cosmosdb mongodb database create \ --account-name mycosmosdb \ --name mydb \ --resource-group MyResourceGroup

Identity and Security

Azure Active Directory

# Create User az ad user create \ --display-name "John Doe" \ --password Password123! \ --user-principal-name john@contoso.com # Create Group az ad group create \ --display-name "IT Department" \ --mail-nickname "itdepartment" # Add Role Assignment az role assignment create \ --assignee john@contoso.com \ --role "Contributor" \ --scope /subscriptions/{SubID}/resourceGroups/MyResourceGroup

Key Vault

# Create Key Vault az keyvault create \ --name MyKeyVault \ --resource-group MyResourceGroup \ --location eastus # Add Secret az keyvault secret set \ --vault-name MyKeyVault \ --name MySecret \ --value "SecretValue123!"

Monitoring and Management

Azure Monitor

# Create Log Analytics Workspace az monitor log-analytics workspace create \ --resource-group MyResourceGroup \ --workspace-name MyWorkspace # Create Alert Rule az monitor metrics alert create \ --name cpu_alert \ --resource-group MyResourceGroup \ --scopes "/subscriptions/{SubID}/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVM" \ --condition "max percentage CPU > 80" \ --window-size 5m \ --evaluation-frequency 1m

Application Insights

# Create App Insights az monitor app-insights component create \ --app MyAppInsights \ --location eastus \ --resource-group MyResourceGroup \ --application-type web # Get Instrumentation Key az monitor app-insights component show \ --app MyAppInsights \ --resource-group MyResourceGroup \ --query instrumentationKey

Azure DevOps

Pipeline Configuration

# azure-pipelines.yml trigger: - main pool: vmImage: 'ubuntu-latest' steps: - task: NodeTool@0 inputs: versionSpec: '14.x' - script: | npm install npm test displayName: 'npm install and test' - task: AzureWebApp@1 inputs: azureSubscription: 'Azure subscription' appName: 'mywebapp' package: '$(System.DefaultWorkingDirectory)'