-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d65b6e1
commit 97a85c2
Showing
5 changed files
with
243 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
api-version: 2024-02-02-preview | ||
location: {{ .Env.AZURE_LOCATION }} | ||
identity: | ||
type: UserAssigned | ||
userAssignedIdentities: | ||
? "{{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }}" | ||
: {} | ||
properties: | ||
environmentId: {{ .Env.AZURE_CONTAINER_APPS_ENVIRONMENT_ID }} | ||
configuration: | ||
activeRevisionsMode: single | ||
runtime: | ||
dotnet: | ||
autoConfigureDataProtection: true | ||
ingress: | ||
external: false | ||
targetPort: {{ targetPortOrDefault 8080 }} | ||
transport: http | ||
allowInsecure: true | ||
registries: | ||
- server: {{ .Env.AZURE_CONTAINER_REGISTRY_ENDPOINT }} | ||
identity: {{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }} | ||
template: | ||
containers: | ||
- image: {{ .Image }} | ||
name: apiservice | ||
env: | ||
- name: AZURE_CLIENT_ID | ||
value: {{ .Env.MANAGED_IDENTITY_CLIENT_ID }} | ||
- name: ASPNETCORE_FORWARDEDHEADERS_ENABLED | ||
value: "true" | ||
- name: OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES | ||
value: "true" | ||
- name: OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES | ||
value: "true" | ||
- name: OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY | ||
value: in_memory | ||
scale: | ||
minReplicas: 1 | ||
tags: | ||
azd-service-name: apiservice | ||
aspire-resource-name: apiservice |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
api-version: 2024-02-02-preview | ||
location: {{ .Env.AZURE_LOCATION }} | ||
identity: | ||
type: UserAssigned | ||
userAssignedIdentities: | ||
? "{{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }}" | ||
: {} | ||
properties: | ||
environmentId: {{ .Env.AZURE_CONTAINER_APPS_ENVIRONMENT_ID }} | ||
configuration: | ||
activeRevisionsMode: single | ||
runtime: | ||
dotnet: | ||
autoConfigureDataProtection: true | ||
ingress: | ||
external: true | ||
targetPort: {{ targetPortOrDefault 8080 }} | ||
transport: http | ||
allowInsecure: false | ||
registries: | ||
- server: {{ .Env.AZURE_CONTAINER_REGISTRY_ENDPOINT }} | ||
identity: {{ .Env.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }} | ||
template: | ||
containers: | ||
- image: {{ .Image }} | ||
name: webfrontend | ||
env: | ||
- name: AZURE_CLIENT_ID | ||
value: {{ .Env.MANAGED_IDENTITY_CLIENT_ID }} | ||
- name: ASPNETCORE_FORWARDEDHEADERS_ENABLED | ||
value: "true" | ||
- name: OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES | ||
value: "true" | ||
- name: OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES | ||
value: "true" | ||
- name: OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY | ||
value: in_memory | ||
- name: services__apiservice__http__0 | ||
value: http://apiservice.internal.{{ .Env.AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN }} | ||
- name: services__apiservice__https__0 | ||
value: https://apiservice.internal.{{ .Env.AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN }} | ||
scale: | ||
minReplicas: 1 | ||
tags: | ||
azd-service-name: webfrontend | ||
aspire-resource-name: webfrontend |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
targetScope = 'subscription' | ||
|
||
@minLength(1) | ||
@maxLength(64) | ||
@description('Name of the environment that can be used as part of naming resource convention, the name of the resource group for your application will use this name, prefixed with rg-') | ||
param environmentName string | ||
|
||
@minLength(1) | ||
@description('The location used for all deployed resources') | ||
param location string | ||
|
||
@description('Id of the user or app to assign application roles') | ||
param principalId string = '' | ||
|
||
|
||
var tags = { | ||
'azd-env-name': environmentName | ||
} | ||
|
||
resource rg 'Microsoft.Resources/resourceGroups@2022-09-01' = { | ||
name: 'rg-${environmentName}' | ||
location: location | ||
tags: tags | ||
} | ||
|
||
module resources 'resources.bicep' = { | ||
scope: rg | ||
name: 'resources' | ||
params: { | ||
location: location | ||
tags: tags | ||
principalId: principalId | ||
} | ||
} | ||
|
||
output MANAGED_IDENTITY_CLIENT_ID string = resources.outputs.MANAGED_IDENTITY_CLIENT_ID | ||
output MANAGED_IDENTITY_NAME string = resources.outputs.MANAGED_IDENTITY_NAME | ||
output AZURE_LOG_ANALYTICS_WORKSPACE_NAME string = resources.outputs.AZURE_LOG_ANALYTICS_WORKSPACE_NAME | ||
output AZURE_CONTAINER_REGISTRY_ENDPOINT string = resources.outputs.AZURE_CONTAINER_REGISTRY_ENDPOINT | ||
output AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID string = resources.outputs.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID | ||
output AZURE_CONTAINER_APPS_ENVIRONMENT_NAME string = resources.outputs.AZURE_CONTAINER_APPS_ENVIRONMENT_NAME | ||
output AZURE_CONTAINER_APPS_ENVIRONMENT_ID string = resources.outputs.AZURE_CONTAINER_APPS_ENVIRONMENT_ID | ||
output AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN string = resources.outputs.AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", | ||
"contentVersion": "1.0.0.0", | ||
"parameters": { | ||
"principalId": { | ||
"value": "${AZURE_PRINCIPAL_ID}" | ||
}, | ||
"environmentName": { | ||
"value": "${AZURE_ENV_NAME}" | ||
}, | ||
"location": { | ||
"value": "${AZURE_LOCATION}" | ||
} | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
@description('The location used for all deployed resources') | ||
param location string = resourceGroup().location | ||
@description('Id of the user or app to assign application roles') | ||
param principalId string = '' | ||
|
||
|
||
@description('Tags that will be applied to all resources') | ||
param tags object = {} | ||
|
||
var resourceToken = uniqueString(resourceGroup().id) | ||
|
||
resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { | ||
name: 'mi-${resourceToken}' | ||
location: location | ||
tags: tags | ||
} | ||
|
||
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2023-07-01' = { | ||
name: replace('acr-${resourceToken}', '-', '') | ||
location: location | ||
sku: { | ||
name: 'Basic' | ||
} | ||
properties: { | ||
adminUserEnabled: true | ||
} | ||
tags: tags | ||
} | ||
|
||
resource caeMiRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { | ||
name: guid(containerRegistry.id, managedIdentity.id, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '7f951dda-4ed3-4680-a7ca-43fe172d538d')) | ||
scope: containerRegistry | ||
properties: { | ||
principalId: managedIdentity.properties.principalId | ||
principalType: 'ServicePrincipal' | ||
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '7f951dda-4ed3-4680-a7ca-43fe172d538d') | ||
} | ||
} | ||
|
||
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = { | ||
name: 'law-${resourceToken}' | ||
location: location | ||
properties: { | ||
sku: { | ||
name: 'PerGB2018' | ||
} | ||
} | ||
tags: tags | ||
} | ||
|
||
resource containerAppEnvironment 'Microsoft.App/managedEnvironments@2024-02-02-preview' = { | ||
name: 'cae-${resourceToken}' | ||
location: location | ||
properties: { | ||
workloadProfiles: [{ | ||
workloadProfileType: 'Consumption' | ||
name: 'consumption' | ||
}] | ||
appLogsConfiguration: { | ||
destination: 'log-analytics' | ||
logAnalyticsConfiguration: { | ||
customerId: logAnalyticsWorkspace.properties.customerId | ||
sharedKey: logAnalyticsWorkspace.listKeys().primarySharedKey | ||
} | ||
} | ||
} | ||
tags: tags | ||
|
||
resource aspireDashboard 'dotNetComponents' = { | ||
name: 'aspire-dashboard' | ||
properties: { | ||
componentType: 'AspireDashboard' | ||
} | ||
} | ||
|
||
} | ||
|
||
resource explicitContributorUserRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = { | ||
name: guid(containerAppEnvironment.id, principalId, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c')) | ||
scope: containerAppEnvironment | ||
properties: { | ||
principalId: principalId | ||
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'b24988ac-6180-42a0-ab88-20f7382dd24c') | ||
} | ||
} | ||
|
||
output MANAGED_IDENTITY_CLIENT_ID string = managedIdentity.properties.clientId | ||
output MANAGED_IDENTITY_NAME string = managedIdentity.name | ||
output MANAGED_IDENTITY_PRINCIPAL_ID string = managedIdentity.properties.principalId | ||
output AZURE_LOG_ANALYTICS_WORKSPACE_NAME string = logAnalyticsWorkspace.name | ||
output AZURE_LOG_ANALYTICS_WORKSPACE_ID string = logAnalyticsWorkspace.id | ||
output AZURE_CONTAINER_REGISTRY_ENDPOINT string = containerRegistry.properties.loginServer | ||
output AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID string = managedIdentity.id | ||
output AZURE_CONTAINER_APPS_ENVIRONMENT_NAME string = containerAppEnvironment.name | ||
output AZURE_CONTAINER_APPS_ENVIRONMENT_ID string = containerAppEnvironment.id | ||
output AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN string = containerAppEnvironment.properties.defaultDomain |