Skip to content

Commit 41678e2

Browse files
committed
Add solution file for AspireSample project structure
1 parent f0eec34 commit 41678e2

File tree

404 files changed

+236
-513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

404 files changed

+236
-513
lines changed

11-azure-keyvault/AzureKeyvault.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<ItemGroup>
1111
<PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" />
1212
<PackageReference Include="Azure.Identity" />
13+
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" />
1314
<PackageReference Include="Microsoft.Azure.AppConfiguration.AspNetCore" />
1415
<PackageReference Include="Microsoft.Extensions.Configuration.AzureAppConfiguration" />
1516
<PackageReference Include="Microsoft.FeatureManagement.AspNetCore" />

11-azure-keyvault/Program.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
using Azure.Security.KeyVault.Secrets;
66

77
var builder = WebApplication.CreateBuilder(args);
8+
9+
// Add Application Insights telemetry
10+
builder.Services.AddApplicationInsightsTelemetry();
11+
812
var keyVaultName = builder.Configuration.GetValue<string>("AzureKeyVault:Name");
913
if (string.IsNullOrWhiteSpace(keyVaultName))
1014
{

11-azure-keyvault/setup.ps1

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,53 @@
11
# PowerShell script to set up Azure Key Vault
2+
Param(
3+
[string]$Location = "eastus",
4+
[string]$ResourceGroup = "rg-dotnet",
5+
[string]$KeyVaultName = "cayersdotnetkv",
6+
[string]$LogAnalyticsName = "law-dotnet",
7+
[string]$AppInsightsName = "appi-dotnet"
8+
)
29

3-
$location = "eastus"
4-
$rg = "rg-dotnet"
5-
$kvName = "cayersdotnetkv"
10+
$ErrorActionPreference = 'Stop'
611

7-
az group create --name $rg --location $location
12+
# Ensure required extensions are installed without prompts
13+
az config set extension.use_dynamic_install=yes_without_prompt 2>$null
814

9-
az keyvault create --location $location --name $kvName --resource-group $rg
15+
Write-Host "Creating resource group '$ResourceGroup'..."
16+
az group create --name $ResourceGroup --location $Location --only-show-errors | Out-Null
17+
18+
Write-Host "Creating Log Analytics workspace '$LogAnalyticsName'..."
19+
$lawId = az monitor log-analytics workspace create --workspace-name $LogAnalyticsName --resource-group $ResourceGroup --location $Location --query id -o tsv --only-show-errors
20+
21+
Write-Host "Creating Application Insights '$AppInsightsName'..."
22+
az monitor app-insights component create --app $AppInsightsName --resource-group $ResourceGroup --location $Location --workspace $lawId --only-show-errors | Out-Null
23+
$appiConnectionString = az monitor app-insights component show --app $AppInsightsName --resource-group $ResourceGroup --query connectionString -o tsv --only-show-errors
24+
25+
Write-Host "Creating Key Vault '$KeyVaultName'..."
26+
az keyvault create --location $Location --name $KeyVaultName --resource-group $ResourceGroup --only-show-errors | Out-Null
1027

1128
# Assign the Key Vault Administrator role to the current user
1229
$userId = az ad signed-in-user show --query id --output tsv
13-
$kvResourceId = az keyvault show --name $kvName --resource-group $rg --query id --output tsv
14-
az role assignment create --assignee $userId --role "Key Vault Administrator" --scope $kvResourceId
30+
$kvResourceId = az keyvault show --name $KeyVaultName --resource-group $ResourceGroup --query id --output tsv
31+
az role assignment create --assignee $userId --role "Key Vault Administrator" --scope $kvResourceId --only-show-errors 2>$null | Out-Null
32+
33+
# Configure diagnostic settings
34+
Write-Host "Creating diagnostic settings for Key Vault..."
35+
az monitor diagnostic-settings create `
36+
--name "$KeyVaultName-diag" `
37+
--resource $kvResourceId `
38+
--workspace $lawId `
39+
--logs '[{"category":"AuditEvent","enabled":true},{"category":"AzurePolicyEvaluationDetails","enabled":true}]' `
40+
--metrics '[{"category":"AllMetrics","enabled":true}]' `
41+
--only-show-errors | Out-Null
42+
43+
az keyvault secret set --name Message --vault-name $KeyVaultName --value "Hello from KV" --only-show-errors | Out-Null
44+
45+
# Store Application Insights connection string in user secrets
46+
$projectPath = Join-Path $PSScriptRoot 'AzureKeyvault.csproj'
47+
if (Test-Path $projectPath)
48+
{
49+
dotnet user-secrets init --project $projectPath 2>$null | Out-Null
50+
dotnet user-secrets set --project $projectPath 'ApplicationInsights:ConnectionString' $appiConnectionString | Out-Null
51+
}
1552

16-
az keyvault secret set --name Message --vault-name $kvName --value "Hello from KV"
53+
Write-Host "Setup complete. User secrets configured."

11-azure-keyvault/setup.sh

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,52 @@
11
#!/bin/sh
2+
set -euo pipefail
23

3-
location=eastus
4-
rg=rg-dotnet
5-
kvName=cayersdotnetkv
4+
location=${LOCATION:-eastus}
5+
rg=${RESOURCE_GROUP:-rg-dotnet}
6+
kvName=${KEYVAULT_NAME:-cayersdotnetkv}
7+
lawName=${LOG_ANALYTICS_NAME:-law-dotnet}
8+
appiName=${APP_INSIGHTS_NAME:-appi-dotnet}
69

7-
az group create --name ${rg} --location ${location}
10+
script_dir="$(cd "$(dirname "$0")" && pwd)"
11+
project_path="${script_dir}/AzureKeyvault.csproj"
812

9-
az keyvault create --location ${location} --name ${kvName} --resource-group ${rg}
13+
# Ensure required extensions are installed without prompts
14+
az config set extension.use_dynamic_install=yes_without_prompt 2>/dev/null || true
1015

16+
echo "Creating resource group '${rg}'..."
17+
az group create --name "${rg}" --location "${location}" --only-show-errors >/dev/null
18+
19+
echo "Creating Log Analytics workspace '${lawName}'..."
20+
lawId=$(az monitor log-analytics workspace create --workspace-name "${lawName}" --resource-group "${rg}" --location "${location}" --query id -o tsv --only-show-errors)
21+
22+
echo "Creating Application Insights '${appiName}'..."
23+
az monitor app-insights component create --app "${appiName}" --resource-group "${rg}" --location "${location}" --workspace "${lawId}" --only-show-errors >/dev/null
24+
appiConnectionString=$(az monitor app-insights component show --app "${appiName}" --resource-group "${rg}" --query connectionString -o tsv --only-show-errors)
25+
26+
echo "Creating Key Vault '${kvName}'..."
27+
az keyvault create --location "${location}" --name "${kvName}" --resource-group "${rg}" --only-show-errors >/dev/null
1128

1229
# Assign the Key Vault Administrator role to the current user
1330
userId=$(az ad signed-in-user show --query id --output tsv)
14-
kvResourceId=$(az keyvault show --name ${kvName} --resource-group ${rg} --query id --output tsv)
15-
az role assignment create --assignee ${userId} --role "Key Vault Administrator" --scope ${kvResourceId}
31+
kvResourceId=$(az keyvault show --name "${kvName}" --resource-group "${rg}" --query id --output tsv)
32+
az role assignment create --assignee "${userId}" --role "Key Vault Administrator" --scope "${kvResourceId}" --only-show-errors 2>/dev/null || true
33+
34+
# Configure diagnostic settings
35+
echo "Creating diagnostic settings for Key Vault..."
36+
az monitor diagnostic-settings create \
37+
--name "${kvName}-diag" \
38+
--resource "${kvResourceId}" \
39+
--workspace "${lawId}" \
40+
--logs '[{"category":"AuditEvent","enabled":true},{"category":"AzurePolicyEvaluationDetails","enabled":true}]' \
41+
--metrics '[{"category":"AllMetrics","enabled":true}]' \
42+
--only-show-errors >/dev/null
43+
44+
az keyvault secret set --name Message --vault-name "${kvName}" --value "Hello from KV" --only-show-errors >/dev/null
45+
46+
# Store Application Insights connection string in user secrets
47+
if [ -f "${project_path}" ]; then
48+
dotnet user-secrets init --project "${project_path}" >/dev/null 2>&1 || true
49+
dotnet user-secrets set --project "${project_path}" "ApplicationInsights:ConnectionString" "${appiConnectionString}" >/dev/null
50+
fi
1651

17-
az keyvault secret set --name Message --vault-name ${kvName} --value "Hello from KV"
52+
echo "Setup complete. User secrets configured."
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)