From 521880846e9d325ca380a6e2e651c48f6edd8ba0 Mon Sep 17 00:00:00 2001 From: Songbo Wang Date: Tue, 17 Dec 2024 16:35:32 +0800 Subject: [PATCH] refinements on wording (#156) ## Purpose ## Does this introduce a breaking change? ``` [ ] Yes [x] No ``` ## Pull Request Type What kind of change does this Pull Request introduce? ``` [ ] Bugfix [ ] Feature [ ] Code style update (formatting, local variables) [ ] Refactoring (no functional changes, no api changes) [x] Documentation content changes [ ] Other... Please describe: ``` --- docs/01_lab_plan/0102.md | 2 +- docs/01_lab_plan/{0105.md => 0103.md} | 4 ++-- docs/02_lab_launch/0201.md | 2 +- docs/02_lab_launch/0202.md | 16 ++++++++-------- docs/02_lab_launch/0203.md | 8 ++++---- docs/02_lab_launch/0204.md | 2 +- docs/02_lab_launch/0205.md | 8 ++++---- docs/02_lab_launch/0206.md | 8 ++++---- docs/02_lab_launch/0207.md | 5 +++-- docs/02_lab_launch/02_openlab_setup_aca.md | 8 ++++---- docs/03_lab_monitor/0301.md | 5 ++--- docs/03_lab_monitor/0302.md | 6 +++--- docs/03_lab_monitor/0303.md | 8 ++++---- docs/03_lab_monitor/0304.md | 4 ++-- docs/03_lab_monitor/03_openlab_monitoring_aca.md | 2 +- docs/04_lab_secrets/0401.md | 6 +++--- docs/04_lab_secrets/0402.md | 4 ++-- docs/04_lab_secrets/0403.md | 4 ++-- docs/04_lab_secrets/0404.md | 2 +- docs/04_lab_secrets/04_openlab_secrets_aca.md | 6 +++--- docs/06_lab_automation/06_openlab_automation.md | 16 +++++++++------- docs/07_lab_security/0704.md | 8 ++++---- docs/09_lab_messaging/0902.md | 2 +- index.md | 4 ++-- tools/update-apps-appinsights.sh | 2 +- 25 files changed, 72 insertions(+), 70 deletions(-) rename docs/01_lab_plan/{0105.md => 0103.md} (98%) diff --git a/docs/01_lab_plan/0102.md b/docs/01_lab_plan/0102.md index 2988e90..78c416d 100644 --- a/docs/01_lab_plan/0102.md +++ b/docs/01_lab_plan/0102.md @@ -1,5 +1,5 @@ --- -title: '2. Consider Azure compute services' +title: '2. Azure services used' layout: default nav_order: 2 parent: 'Lab 1: Plan the microservices to Azure' diff --git a/docs/01_lab_plan/0105.md b/docs/01_lab_plan/0103.md similarity index 98% rename from docs/01_lab_plan/0105.md rename to docs/01_lab_plan/0103.md index 2a9cd80..fd94410 100644 --- a/docs/01_lab_plan/0105.md +++ b/docs/01_lab_plan/0103.md @@ -1,7 +1,7 @@ --- -title: '5. Tooling' +title: '3. Tooling' layout: default -nav_order: 5 +nav_order: 3 parent: 'Lab 1: Plan the microservices to Azure' --- diff --git a/docs/02_lab_launch/0201.md b/docs/02_lab_launch/0201.md index 0739652..3cc7842 100644 --- a/docs/02_lab_launch/0201.md +++ b/docs/02_lab_launch/0201.md @@ -1,5 +1,5 @@ --- -title: '1. User info' +title: '1. User information' layout: default nav_order: 1 parent: 'Lab 2: Launch to Azure Container Apps' diff --git a/docs/02_lab_launch/0202.md b/docs/02_lab_launch/0202.md index 3fe0efc..c8e5290 100644 --- a/docs/02_lab_launch/0202.md +++ b/docs/02_lab_launch/0202.md @@ -1,15 +1,15 @@ --- -title: '2. Create ACA Environment' +title: '2. Container Apps Environment' layout: default nav_order: 2 parent: 'Lab 2: Launch to Azure Container Apps' --- -# Create an Azure Container Apps environment +# Create an Azure Container Apps Environment -As a first step you will need to create your Azure Container Apps (ACA) environment. Make sure you also pre-create the virtual network for your ACA service. This will make it easier in the following labs to add additional networking features. You can use the following guidance: +As a first step you will need to create your Azure Container Apps environment. Make sure you also pre-create the virtual network for your Azure Container Apps service. This will make it easier in the following labs to add additional networking features. You can use the following guidance: -- [Guidance on ACA environment and app creation](https://learn.microsoft.com/azure/container-apps/tutorial-deploy-first-app-cli?tabs=bash) +- [Tutorial: Deploy your first container app](https://learn.microsoft.com/azure/container-apps/tutorial-deploy-first-app-cli?tabs=bash) ## Step by step guidance @@ -31,7 +31,7 @@ As a first step you will need to create your Azure Container Apps (ACA) environm {: .note } > This lab uses quite some environment variables. In case you are using a codespace for running this lab, your environment variables will be lost if the codespace restarts. You can find a couple of methods for persisting these environment variables across codespace restarts in the [LabTips]({% link tips.md %}). -1. Create a virtual network and subnet for your ACA. +1. Create a virtual network and subnet for your Container Apps environment. ```bash VIRTUAL_NETWORK_NAME=vnet-$APPNAME-$UNIQUEID @@ -50,13 +50,13 @@ As a first step you will need to create your Azure Container Apps (ACA) environm --delegations Microsoft.App/environments ``` -1. You will need the ID of this subnet when you create the ACA environment. +1. You will need the ID of this subnet when you create the Container Apps environment. ```bash SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VIRTUAL_NETWORK_NAME --name aca-subnet --query id -o tsv) ``` -1. Create your ACA environment and link it to the subnet you just created. We will be creating the environment in the dedicated plan. This plan is also called `workload profiles` plan. This plan gives you more advanced features as opposed to the consumption plan. In this plan you can choose whether you want to run your workload on dedicated hardware or consumption based. It basically gives you the choice. +1. Create your Container Apps Environment and link it to the subnet you just created. We will be creating the environment in the dedicated plan. This plan is also called `workload profiles` plan. This plan gives you more advanced features as opposed to the consumption plan. In this plan you can choose whether you want to run your workload on dedicated hardware or consumption based. It basically gives you the choice. ```bash ACA_ENVIRONMENT=acalab-env-$APPNAME-$UNIQUEID @@ -87,4 +87,4 @@ As a first step you will need to create your Azure Container Apps (ACA) environm > In case you don't see the container apps environment in the overview list of the resource group, hit the Refresh button a couple of times, until they show up. {: .note } - > You may also notice an additional resource group in your subscription, which name will start with ME_. This resource group got created by the ACA creation process. It holds the resources of the vnet and your ACA environment. For learning purposes it might be good to check this resource group from time to time and to see what got created there. + > You may also notice an additional resource group in your subscription, which name will start with ME_. This resource group got created by the Azure Container Apps Environment creation process. It holds the resources of the vnet and your environment. For learning purposes it might be good to check this resource group from time to time and to see what got created there. diff --git a/docs/02_lab_launch/0203.md b/docs/02_lab_launch/0203.md index db2c1e3..fbc8601 100644 --- a/docs/02_lab_launch/0203.md +++ b/docs/02_lab_launch/0203.md @@ -7,18 +7,18 @@ parent: 'Lab 2: Launch to Azure Container Apps' # Create an Azure MySQL Database service -You now have the compute service that will host your applications. Before you start deploying individual microservices as Azure Container Apps, you need to first create an Azure Database for MySQL Flexible Server-hosted database for them. To accomplish this, you can use the following guidance: +You now have the compute service that will host your applications. Before you start deploying individual microservices as container apps, you need to first create an Azure Database for MySQL Flexible Server-hosted database for them. To accomplish this, you can use the following guidance: - [Quickstart: Create an Azure Database for MySQL Flexible Server using Azure CLI](https://learn.microsoft.com/azure/mysql/flexible-server/quickstart-create-server-cli). -Your MySQL database will also have a firewall enabled. This firewall will by default block all incoming calls. You will need to open this firewall in case you want to connect to it from your microservices running in the ACA environment. +Your MySQL database will also have a firewall enabled. This firewall will by default block all incoming calls. You will need to open this firewall in case you want to connect to it from your microservices running in the Container Apps environment. ## Step by step guidance 1. Run the following commands to create an instance of MySQL Flexible server. Note that the name of the server must be globally unique, so adjust it accordingly in case the randomly generated name is already in use. Keep in mind that the name can contain only lowercase letters, numbers and hyphens. In addition, replace the `` placeholder with a complex password and record its value. {: .note } - > Here we use mysql admin password for apps to connect to sql server, this is not recommanded in production environment. Please refer to [Lab 04: Connect to Database securely using identity]({% link docs/04_lab_secrets/04_openlab_secrets_aca.md %}) for the secured managed identity solution. + > Here we use mysql admin password for apps to connect to sql server, this is not recommanded in production environment. Please refer to [Lab 04: Connect to database securely using identity]({% link docs/04_lab_secrets/04_openlab_secrets_aca.md %}) for the secured managed identity solution. Replace the `` with your own password. @@ -52,7 +52,7 @@ Your MySQL database will also have a firewall enabled. This firewall will by def -d $DATABASE_NAME ``` -1. You will also need to allow connections to the server from your ACA environment. For now, you will create a server firewall rule to allow inbound traffic from all Azure Services. +1. You will also need to allow connections to the server from your Container Apps environment. For now, you will create a server firewall rule to allow inbound traffic from all Azure Services. Check the status of your sql server ![SQL Server Networking](../../images/sql-server-manage-firewall.png) diff --git a/docs/02_lab_launch/0204.md b/docs/02_lab_launch/0204.md index 13b58bb..23bae73 100644 --- a/docs/02_lab_launch/0204.md +++ b/docs/02_lab_launch/0204.md @@ -1,5 +1,5 @@ --- -title: '4. Config repo' +title: '4. Config repository' layout: default nav_order: 4 parent: 'Lab 2: Launch to Azure Container Apps' diff --git a/docs/02_lab_launch/0205.md b/docs/02_lab_launch/0205.md index 83f8eef..2f89e6d 100644 --- a/docs/02_lab_launch/0205.md +++ b/docs/02_lab_launch/0205.md @@ -7,7 +7,7 @@ parent: 'Lab 2: Launch to Azure Container Apps' # Create the java components for your config and discovery server -As a next step, you will configure some of the Spring Cloud components on your ACA environment, like the config server and the discovery server. These are available as build-in components on ACA. You can follow the below guidance to do so. +As a next step, you will configure some of the Spring Cloud components on your Container Apps environment, like the config server and the discovery server. These are available as build-in components on Container Apps Environment. You can follow the below guidance to do so. - [Tutorial: Connect to a managed Config Server for Spring in Azure Container Apps](https://learn.microsoft.com/azure/container-apps/java-config-server) - [Tutorial: Connect to a managed Eureka Server for Spring in Azure Container Apps](https://learn.microsoft.com/azure/container-apps/java-eureka-server) @@ -35,7 +35,7 @@ As a next step, you will configure some of the Spring Cloud components on your A --name $JAVA_CONFIG_COMP_NAME ``` -1. As a next step you now create the Spring Cloud Eureka Java component. This will create a standard eureka or discovery endpoint within your ACA environment for your Java microservices to use. +1. As a next step you now create the Spring Cloud Eureka Java component. This will create a standard eureka or discovery endpoint within your Container Apps environment for your Java microservices to use. ```bash JAVA_EUREKA_COMP_NAME=eureka @@ -61,9 +61,9 @@ As a next step, you will configure some of the Spring Cloud components on your A 1. Check the managed components in Azure Container Apps environment from portal. - In your browser, navigate to the Azure Portal and your Container Apps Environment, open Services > Services, you may see the components you just created. + In your browser, navigate to the Azure Portal and your Container Apps environment, open Services > Services, you may see the components you just created. ![managed components](../../images/managed-components.png) {: .note } -> Azure Container Apps also has an internal naming mechanism for microservices to call into each other. The usage of the Eureka component is handy in case you are migrating an existing spring cloud application and you want to keep leveraging your current naming mechanism between microservices. In other cases you might use the internal naming mechanism ACA is already providing you. +> Azure Container Apps also has an internal naming mechanism for microservices to call into each other. The usage of the Eureka component is handy in case you are migrating an existing spring cloud application and you want to keep leveraging your current naming mechanism between microservices. In other cases you might use the internal naming mechanism Container Apps is already providing you. diff --git a/docs/02_lab_launch/0206.md b/docs/02_lab_launch/0206.md index 5fbf1e3..ea0a503 100644 --- a/docs/02_lab_launch/0206.md +++ b/docs/02_lab_launch/0206.md @@ -1,5 +1,5 @@ --- -title: '6. Acr and Managed Identity' +title: '6. Container Registry and Managed Identity' layout: default nav_order: 6 parent: 'Lab 2: Launch to Azure Container Apps' @@ -7,14 +7,14 @@ parent: 'Lab 2: Launch to Azure Container Apps' # Prepare Azure Container Registry and Managed Identity for the applications -Before deploy the microservices application as Container Apps instance to Azure Container Apps environment, you will need an Azure Container Registry (ACR) instance to build and save your application images. And you will allow the new Container Apps instances to pull images from the ACR. In this step, we create a user Managed Identity (MI), assign required privilege to the MI, and in the next step the new container apps can pull images from ACR with this MI. +Before deploy the microservices application as Container Apps instance to Azure Container Apps environment, you will need an Azure Container Registry instance to build and save your application images. And you will allow the new Container Apps instances to pull images from the ACR. In this step, we create a user Managed Identity (MI), assign required privilege to the MI, and in the next step the new container apps can pull images from ACR with this MI. * [Azure Container Registry](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-intro) to save the build images -* [Managed Identity](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview) for secure connection between apps and ACR, SQL server etc. +* [Managed Identity](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview) for secure connection between apps and Container Registry, SQL server etc. ## Step by step guidance -1. Create a Azure Container Registry (ACR) instance to build and save your container images. +1. Create a Azure Container Registry instance to build and save your container images. ```bash MYACR=acr$APPNAME$UNIQUEID diff --git a/docs/02_lab_launch/0207.md b/docs/02_lab_launch/0207.md index 40a3865..6cf071e 100644 --- a/docs/02_lab_launch/0207.md +++ b/docs/02_lab_launch/0207.md @@ -1,5 +1,5 @@ --- -title: '7. Deploy app' +title: '7. Deploy applications' layout: default nav_order: 7 parent: 'Lab 2: Launch to Azure Container Apps' @@ -7,7 +7,7 @@ parent: 'Lab 2: Launch to Azure Container Apps' # Deploy the microservices to Azure Container Apps -You now have an ACA environment deployed in your resource group and it has been enabled with some of the internal components. You are now ready to deploy your microservices to your ACA environment. +You now have a Container Apps environment deployed in your resource group and it has been enabled with some of the internal components. You are now ready to deploy your microservices to your environment. You will first get the sample code from upstream git repository, build the projects to generate the jar file for each application. Then you will prepare the `Dockerfile` to build container image. @@ -34,6 +34,7 @@ Azure Container Apps can collect JVM metrics for java applications, see [Java me FROM mcr.microsoft.com/openjdk/jdk:17-distroless # Prepare the Application Insights Java agent + # This is optional for Lab 2. It's prepared for the Application Insights monitoring in Lab 3. ARG AI_VERSION=3.6.2 ADD https://github.com/microsoft/ApplicationInsights-Java/releases/download/$AI_VERSION/applicationinsights-agent-$AI_VERSION.jar /applicationinsights-agent.jar diff --git a/docs/02_lab_launch/02_openlab_setup_aca.md b/docs/02_lab_launch/02_openlab_setup_aca.md index 618d732..535d83e 100644 --- a/docs/02_lab_launch/02_openlab_setup_aca.md +++ b/docs/02_lab_launch/02_openlab_setup_aca.md @@ -11,7 +11,7 @@ has_children: true ## Lab scenario -You have a general description about the microservice application. It is time to launch the components to Azure Container Apps (ACA). +You have a general description about the microservice application. It is time to launch the components to Azure Container Apps. ## Objectives @@ -20,8 +20,8 @@ After you complete this lab, you will be able to: - Create an Azure Container Apps environment - Set up a configuration repository - Create an Azure MySQL Database service -- Create the ACA managed java components for your services -- Deploy the microservices of the Spring Petclinic app to ACA and bind them to managed java components +- Create the Container Apps Environment managed java components for your services +- Deploy the microservices of the Spring Petclinic applications to Azure Container Apps environment and bind them to managed java components - Test the application through the publicly available endpoint The below image illustrates the end state you will be building in this lab. @@ -30,7 +30,7 @@ The below image illustrates the end state you will be building in this lab. ## Lab Duration -- **Estimated Time**: 120 minutes +- **Estimated Time**: 60 minutes {: .note } > The Azure-Samples/java-microservices-aca-lab repository contains a dev container for Java development. This container contains all the needed tools for running this lab. In case you want to use this dev container you can either use a [GitHub CodeSpace](https://github.com/features/codespaces) in case your GitHub account is enabled for Codespaces. Or you can use the [Visual Studio Code Remote Containers option](https://code.visualstudio.com/docs/remote/containers). You can find all steps to get this set up in the [installation instructions]({% link install.md %}). diff --git a/docs/03_lab_monitor/0301.md b/docs/03_lab_monitor/0301.md index 5dcea57..0537c95 100644 --- a/docs/03_lab_monitor/0301.md +++ b/docs/03_lab_monitor/0301.md @@ -7,16 +7,15 @@ parent: 'Lab 3: Enable monitoring' # Inspect your Azure Container Apps in the Azure Portal -By default the Azure Portal already gives you quite some info on the current status of the ACA instance. In this first part of this module, open the Azure Portal, navigate to one of your ACA instances and inspect what info you can find on the instance. Try and find information on: +By default the Azure Portal already gives you quite some info on the current status of the Container Apps instance. In this first part of this module, open the Azure Portal, navigate to one of your Container Apps instances and inspect what info you can find on the instance. Try and find information on: -- The ACA revison status. +- The container apps revison status. - The live logs (console and system) of the `customers-service`. You can follow the below guidance to do so. - [log streams in Azure Container Apps](https://learn.microsoft.com/azure/container-apps/log-streaming?tabs=bash) - ## Step by step guidance 1. In your browser navigate to the Azure Portal, and to the resource group where you deployed your Azure Container Apps environment. Select the customers-service container app. diff --git a/docs/03_lab_monitor/0302.md b/docs/03_lab_monitor/0302.md index f0ff04a..1ac6143 100644 --- a/docs/03_lab_monitor/0302.md +++ b/docs/03_lab_monitor/0302.md @@ -1,11 +1,11 @@ --- -title: '2. ACA monitoring' +title: '2. Log Analytics' layout: default nav_order: 2 parent: 'Lab 3: Enable monitoring' --- -# Configure Azure Container Apps environment monitoring +# Set Log Analytics to Azure Container Apps environment Point in time info of your application is nice, however, it is also beneficial to have overall monitoring data available. For this you can enable logs on your Azure Container Apps environment. Container Apps application logs consist of two different categories: @@ -44,7 +44,7 @@ Enable logging on your Azure Container Apps environment. You can follow the belo --logs-workspace-key $WORKSPACE_KEY ``` -1. To verify that monitoring data is available in your Log Analytics workspace, in your browser, navigate to your ACA instance in the Azure Portal. Under `Monitoring`, select `Logs`. You can inspect here the monitoring data in your app. If you double click `ContainerAppConsoleLogs_CL` or `ContainerAppSystemLogs_CL` and press `Run`, it will show you the data in this log table. +1. To verify that monitoring data is available in your Log Analytics workspace, in your browser, navigate to your container apps instance in the Azure Portal. Under `Monitoring`, select `Logs`. You can inspect here the monitoring data in your app. If you double click `ContainerAppConsoleLogs_CL` or `ContainerAppSystemLogs_CL` and press `Run`, it will show you the data in this log table. Get logs for all apps diff --git a/docs/03_lab_monitor/0303.md b/docs/03_lab_monitor/0303.md index bbafaec..50970e4 100644 --- a/docs/03_lab_monitor/0303.md +++ b/docs/03_lab_monitor/0303.md @@ -57,7 +57,7 @@ You can follow the below guidance to do so. az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ - --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING=$APP_INSIGHTS_CONN APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' + --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING="$APP_INSIGHTS_CONN" APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' ``` 1. Once the app **api-gateway** deployment has succeeded, execute the same statements for the other microservices **customers-service**, **vets-service** and **visits-service**. @@ -79,19 +79,19 @@ You can follow the below guidance to do so. az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ - --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING=$APP_INSIGHTS_CONN APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' + --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING="$APP_INSIGHTS_CONN" APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' APP_NAME="vets-service" az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ - --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING=$APP_INSIGHTS_CONN APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' + --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING="$APP_INSIGHTS_CONN" APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' APP_NAME="visits-service" az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ - --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING=$APP_INSIGHTS_CONN APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' + --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING="$APP_INSIGHTS_CONN" APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' ``` {: .note } diff --git a/docs/03_lab_monitor/0304.md b/docs/03_lab_monitor/0304.md index 358f1bd..86aa549 100644 --- a/docs/03_lab_monitor/0304.md +++ b/docs/03_lab_monitor/0304.md @@ -7,7 +7,7 @@ parent: 'Lab 3: Enable monitoring' # Build Java metrics dashboard with Azure Managed Grafana -Grafana is a popular tool for centralized metrics visualization and monitoring in the observability industry. Azure Managed Grafana is a fully managed Azure service that allows you to deploy and manage Grafana dashboards with seamless Azure integration. +Grafana is a popular tool for centralized metrics visualization and monitoring in the observability industry. Azure Managed Grafana is a fully managed Azure service that allows you to deploy and manage Grafana dashboards with seamless Azure integration. You can use Azure Managed Grafana to visualize Azure Container Apps exposed Java metrics, or flow Java metrics to your existing Grafana dashboards. @@ -66,7 +66,7 @@ You can use Azure Managed Grafana to visualize Azure Container Apps exposed Java 1. View Java metrics dashboard with Grafana - Now you can view all the ACA supported Java metrics, by inputting your ACA resource infomation. + Now you can view all the container apps supported Java metrics, by inputting your container apps resource infomation. The dashboard provides live metric data: diff --git a/docs/03_lab_monitor/03_openlab_monitoring_aca.md b/docs/03_lab_monitor/03_openlab_monitoring_aca.md index d5eb1dc..1143b94 100644 --- a/docs/03_lab_monitor/03_openlab_monitoring_aca.md +++ b/docs/03_lab_monitor/03_openlab_monitoring_aca.md @@ -28,7 +28,7 @@ The below image illustrates the end state you will be building in this lab. ## Lab Duration -- **Estimated Time**: 60 minutes +- **Estimated Time**: 30 minutes ## Instructions diff --git a/docs/04_lab_secrets/0401.md b/docs/04_lab_secrets/0401.md index f105f55..590cc57 100644 --- a/docs/04_lab_secrets/0401.md +++ b/docs/04_lab_secrets/0401.md @@ -1,11 +1,11 @@ --- -title: '1. Create db admin account' +title: '1. Create database admin account' layout: default nav_order: 1 -parent: 'Lab 4: Connect to Database securely using identity' +parent: 'Lab 4: Connect to database securely using identity' --- -# Create a database administrator account +# Create database administrator account You are already using a managed Identity to connect to the Azure Container Registry. You can use this same identity to also connect to the database. This will allow you to remove the username and password from the config repository. diff --git a/docs/04_lab_secrets/0402.md b/docs/04_lab_secrets/0402.md index d18a7d3..6b7ddba 100644 --- a/docs/04_lab_secrets/0402.md +++ b/docs/04_lab_secrets/0402.md @@ -1,8 +1,8 @@ --- -title: '2. Code changes' +title: '2. Update codes' layout: default nav_order: 2 -parent: 'Lab 4: Connect to Database securely using identity' +parent: 'Lab 4: Connect to database securely using identity' --- # Update the applications to use passwordless connectivity diff --git a/docs/04_lab_secrets/0403.md b/docs/04_lab_secrets/0403.md index abc2dad..615dca1 100644 --- a/docs/04_lab_secrets/0403.md +++ b/docs/04_lab_secrets/0403.md @@ -1,8 +1,8 @@ --- -title: '3. Update Container Apps' +title: '3. Update Container Apps applications' layout: default nav_order: 3 -parent: 'Lab 4: Connect to Database securely using identity' +parent: 'Lab 4: Connect to database securely using identity' --- # Connect container Apps to database with Service Connector diff --git a/docs/04_lab_secrets/0404.md b/docs/04_lab_secrets/0404.md index fb03de1..3edfef1 100644 --- a/docs/04_lab_secrets/0404.md +++ b/docs/04_lab_secrets/0404.md @@ -2,7 +2,7 @@ title: '4. Review' layout: default nav_order: 4 -parent: 'Lab 4: Connect to Database securely using identity' +parent: 'Lab 4: Connect to database securely using identity' --- # Review diff --git a/docs/04_lab_secrets/04_openlab_secrets_aca.md b/docs/04_lab_secrets/04_openlab_secrets_aca.md index 5094d94..6454886 100644 --- a/docs/04_lab_secrets/04_openlab_secrets_aca.md +++ b/docs/04_lab_secrets/04_openlab_secrets_aca.md @@ -1,11 +1,11 @@ --- -title: 'Lab 4: Connect to Database securely using identity' +title: 'Lab 4: Connect to database securely using identity' layout: default nav_order: 6 has_children: true --- -# Lab 04: Connect to Database securely using identity +# Lab 04: Connect to database securely using identity # Student manual @@ -29,7 +29,7 @@ The below image illustrates the end state you will be building in this lab. ## Lab Duration -- **Estimated Time**: 40 minutes +- **Estimated Time**: 30 minutes {: .note } > The instructions provided in this exercise assume that you successfully completed the previous exercise and are using the same lab environment, including your commandline session with the relevant environment variables already set. diff --git a/docs/06_lab_automation/06_openlab_automation.md b/docs/06_lab_automation/06_openlab_automation.md index 9efe937..e283365 100644 --- a/docs/06_lab_automation/06_openlab_automation.md +++ b/docs/06_lab_automation/06_openlab_automation.md @@ -22,7 +22,7 @@ In this lab, we introduce a new tool [azd](https://learn.microsoft.com/en-us/azu After you complete this lab, you will be able to: - Get familiar with the azd tool. -- Deploy the petclinic solution (with AI) to new ACA environment. +- Deploy the petclinic solution (with AI) to your Azure Container Apps environment. - Test your setup. ![lab 6 overview](../../images/acalab6.png) @@ -41,14 +41,16 @@ During this lab, you will: ## Others - This version of azd templates includes most operations in: - - [Lab 2: Launch a Spring Apps microservices application to Azure Container Apps]({% link docs/02_lab_launch/02_openlab_setup_aca.md %}) - - [Lab 3: Enable monitoring and end-to-end tracing]({% link docs/03_lab_monitor/03_openlab_monitoring_aca.md %}) - - [Lab 4: Connect to Database securely using identity]({% link docs/04_lab_secrets/04_openlab_secrets_aca.md %}) - - [Lab 5: Integrate with Azure OpenAI]({% link docs/05_lab_openai/05_openlab_openai_aca.md %}) + + - [Lab 2: Launch a Spring Apps microservices application to Azure Container Apps]({% link docs/02_lab_launch/02_openlab_setup_aca.md %}) + - [Lab 3: Enable monitoring and end-to-end tracing]({% link docs/03_lab_monitor/03_openlab_monitoring_aca.md %}) + - [Lab 4: Connect to Database securely using identity]({% link docs/04_lab_secrets/04_openlab_secrets_aca.md %}) + - [Lab 5: Integrate with Azure OpenAI]({% link docs/05_lab_openai/05_openlab_openai_aca.md %}) - By default, the automation process will create MySQL server admin password with random string, you can reset the admin password in either way: - - Portal: Go to your MySQL server instance page, navigate to `Overview` and click Reset password - - CLI: `az mysql flexible-server update -g -n --admin-password ""` + + - Portal: Go to your MySQL server instance page, navigate to `Overview` and click Reset password + - CLI: `az mysql flexible-server update -g -n --admin-password ""` {: .note } > The instructions provided in this exercise assume that you successfully completed the previous exercise and are using the same lab environment, including your commandline session with the relevant environment variables already set. diff --git a/docs/07_lab_security/0704.md b/docs/07_lab_security/0704.md index 50b2c14..0ac477f 100644 --- a/docs/07_lab_security/0704.md +++ b/docs/07_lab_security/0704.md @@ -1,5 +1,5 @@ --- -title: '4. Internal ACA' +title: '4. Internal Azure Container Environment' layout: default nav_order: 4 parent: 'Lab 7: Protect endpoints using Web Application Firewalls' @@ -7,7 +7,7 @@ parent: 'Lab 7: Protect endpoints using Web Application Firewalls' # Redeploy your Azure Container Apps environment with internal networking -For making use of internal networking and getting a private inbound IP address for your Azure Container Apps environment, you will need to recreate it to use internal networking. You can use the following guidance to perform this task: +For making use of internal networking and getting a private inbound IP address for your Azure Container Apps environment, you will need to recreate it to use internal networking. You can use the following guidance to perform this task: - [Provide a virtual network to an internal Azure Container Apps environment](https://learn.microsoft.com/azure/container-apps/vnet-custom-internal?tabs=bash&pivots=azure-cli) @@ -33,8 +33,8 @@ For making use of internal networking and getting a private inbound IP address f ### Create new internal Azure Container Apps environment -* If you have an existing lab environment created by the step by step operations, please re-create with internal ACA flag enabled follow the guide [Rebuild with manual steps](#rebuild-with-manual-steps). -* If you have an existing lab environment generated by automation steps in Lab 6, please follow the guide [Rebuild with azd automation](#rebuild-with-azd-automation). +- If you have an existing lab environment created by the step by step operations, please re-create with internal flag enabled follow the guide [Rebuild with manual steps](#rebuild-with-manual-steps). +- If you have an existing lab environment generated by automation steps in Lab 6, please follow the guide [Rebuild with azd automation](#rebuild-with-azd-automation). #### Rebuild with manual steps diff --git a/docs/09_lab_messaging/0902.md b/docs/09_lab_messaging/0902.md index 03bb6d2..54cfe07 100644 --- a/docs/09_lab_messaging/0902.md +++ b/docs/09_lab_messaging/0902.md @@ -7,7 +7,7 @@ parent: 'Lab 9: Send messages between microservices' # Try out an existing microservice -In the java-microservices-aca-lab repository's src directory, the `spring-petclinic-messaging-emulator` microservice is already prepared to send messages to an Azure Service Bus namespace. You can add this microservice to your current Spring Petclinic project in the parent `pom.xml` file, deploy it as an extra microservice in your ACA environment and use this microservice's public endpoint to send messages to your Service Bus namespace. Test this functionality and inspect whether messages end up in the Service Bus namespace you just created by using the Service Bus Explorer for the `visits-requests` queue. You can use the following guidance to implement these changes: +In the java-microservices-aca-lab repository's src directory, the `spring-petclinic-messaging-emulator` microservice is already prepared to send messages to an Azure Service Bus namespace. You can add this microservice to your current Spring Petclinic project in the parent `pom.xml` file, deploy it as an extra microservice in your Container Apps environment and use this microservice's public endpoint to send messages to your Service Bus namespace. Test this functionality and inspect whether messages end up in the Service Bus namespace you just created by using the Service Bus Explorer for the `visits-requests` queue. You can use the following guidance to implement these changes: - [Use Service Bus Explorer to run data operations on Service Bus (Preview)](https://docs.microsoft.com/azure/service-bus-messaging/explorer). diff --git a/index.md b/index.md index 5d4a8cc..b4c3e62 100644 --- a/index.md +++ b/index.md @@ -1,5 +1,5 @@ --- -title: Introduction +title: Overview layout: home nav_order: 1 --- @@ -38,7 +38,7 @@ For running this lab you will need: 1. The template uses [Azure Database for MySQL - Flexible Server](https://learn.microsoft.com/en-us/azure/mysql/flexible-server/overview). You may select a region suite for this service. {: .note } -> We recommend running the lab in regions **East US**, **East US 2**, **North Central US**, **Sweden Central**. +> We recommend running the lab in regions **West US**, **West US 2**, **East US 2**, **North Central US**, **Sweden Central**. ### Installation diff --git a/tools/update-apps-appinsights.sh b/tools/update-apps-appinsights.sh index 95e5daf..7232d0a 100755 --- a/tools/update-apps-appinsights.sh +++ b/tools/update-apps-appinsights.sh @@ -10,7 +10,7 @@ update_app_with_ai() { az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ - --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING=$APP_INSIGHTS_CONN APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' \ + --set-env-vars JAVA_TOOL_OPTIONS='-javaagent:/applicationinsights-agent.jar' APPLICATIONINSIGHTS_CONNECTION_STRING="$APP_INSIGHTS_CONN" APPLICATIONINSIGHTS_CONFIGURATION_CONTENT='{"role": {"name": "'$APP_NAME'"}}' \ > $DIR/$APP_NAME.update.log 2>&1 if [[ $? -ne 0 ]]; then