Compartir a través de


Implementación manual de una aplicación Java con Open Liberty o WebSphere Liberty en un clúster de Azure Kubernetes Service (AKS)

Este artículo proporciona una guía manual paso a paso para ejecutar Open/WebSphere Liberty en Azure.

En concreto, en este artículo se explica cómo realizar las siguientes tareas:

  • Ejecutar una aplicación Java, Java EE, Yakarta EE o Microprofile en el runtime en Open Liberty o WebSphere Liberty.
  • Compile la imagen de Docker de la aplicación con az acr build imágenes de contenedor de Liberty.
  • Implementar la aplicación contenedorizada en un clúster de Azure Kubernetes Service (AKS) mediante el operador de Liberty.

El operador de Liberty simplifica la implementación y administración de las aplicaciones que se ejecutan en clústeres de Kubernetes. Con el operador de Open Liberty o WebSphere Liberty, también puede realizar operaciones más avanzadas, como recopilar seguimientos y volcados.

Para obtener una solución más automatizada que acelere el recorrido a AKS, consulte Implementación de una aplicación Java con Open Liberty/WebSphere Liberty en un clúster de Azure Kubernetes Service (AKS).

Para más información sobre Open Liberty, consulte la página del proyecto Open Liberty. Para más información sobre IBM WebSphere Liberty, consulte la página del producto de WebSphere Liberty.

Este artículo está diseñado para ayudarle a llegar rápidamente a la implementación. Antes de ir a producción, debe explorar Tuning Liberty.

Si está interesado en proporcionar comentarios o trabajar estrechamente en sus escenarios de migración con el equipo de ingeniería que desarrolla WebSphere en soluciones de Azure, rellene esta breve encuesta sobre la migración de WebSphere e incluya la información de contacto. El equipo de administradores de programas, arquitectos e ingenieros se pondrá en contacto rápidamente con usted para iniciar una estrecha colaboración.

Requisitos previos

  • Instale la CLI de Azure 2.61.0 o posterior para ejecutar comandos de la CLI de Azure.
    • Inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión en Azure con la CLI de Azure.
    • En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
    • Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.

Inicio de sesión en Azure

Si no lo ha hecho aún, inicie sesión en la suscripción de Azure con el comando az login y siga las instrucciones de la pantalla.

az login

Nota:

Puede ejecutar la mayoría de los comandos de la CLI de Azure en PowerShell igual que en Bash. La diferencia solo existe cuando se usan variables. En las secciones siguientes, la diferencia se aborda en diferentes pestañas cuando sea necesario.

Si hay varios inquilinos de Azure asociados a sus credenciales de Azure, debe indicar en qué inquilino desea iniciar sesión. Puede hacerlo con la opción --tenant. Por ejemplo, az login --tenant contoso.onmicrosoft.com.

Crear un grupo de recursos

Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure.

Cree un grupo de recursos llamado java-liberty-project mediante el comando az group create en la eastus2 ubicación. Este grupo de recursos se usa más adelante para crear la instancia de Azure Container Registry y el clúster de AKS.

export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus2

Creación de una instancia de Container Registry

Use el comando az acr create para crear una instancia de Container Registry. En el ejemplo siguiente se crea una instancia de Container Registry denominada youruniqueacrname. Asegúrese de que youruniqueacrname es único en Azure.

Nota:

En este artículo se usa el mecanismo de autenticación sin contraseña recomendado para Container Registry. Todavía es posible usar el nombre de usuario y la contraseña con docker login después de usar az acr credential show para obtener el nombre de usuario y la contraseña. El uso de nombre de usuario y contraseña es menos seguro que la autenticación sin contraseña.

export REGISTRY_NAME=youruniqueacrname
az acr create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $REGISTRY_NAME \
    --sku Basic

Después de un corto tiempo, debería ver una salida JSON que contiene las siguientes líneas:

  "provisioningState": "Succeeded",
  "publicNetworkAccess": "Enabled",
  "resourceGroup": "java-liberty-project",

A continuación, recupere el servidor de inicio de sesión de la instancia de Container Registry. Necesitará este valor al implementar la imagen de aplicación en el clúster de AKS más adelante.

export LOGIN_SERVER=$(az acr show \
    --name $REGISTRY_NAME \
    --query 'loginServer' \
    --output tsv)

Creación de un clúster de AKS

Use el comando az aks create para crear un clúster de AKS. En el ejemplo siguiente se crea un clúster denominado myAKSCluster con un nodo. El comando tarda varios minutos en completarse.

export CLUSTER_NAME=myAKSCluster
az aks create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --node-count 1 \
    --generate-ssh-keys \
    --enable-managed-identity

Transcurridos unos minutos, el comando se completa y devuelve información en formato JSON sobre el clúster, incluida la siguiente salida:

  "nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
  "privateFqdn": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "java-liberty-project",

Asociación de la instancia de Container Registry al clúster de AKS

Ejecute el comando az aks update para adjuntar la instancia de Container Registry al clúster de AKS para que el clúster de AKS se autentique para extraer imágenes de la instancia de Container Registry, como se muestra en el ejemplo siguiente:

az aks update \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --attach-acr $REGISTRY_NAME

Conexión al clúster de AKS

Para administrar un clúster de Kubernetes, usará kubectl, el cliente de línea de comandos de Kubernetes. Para instalar kubectl localmente, use el comando az aks install-cli, como se muestra en el ejemplo siguiente:

az aks install-cli

Para configurar kubectl para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.

az aks get-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --overwrite-existing \
    --admin

Nota:

El comando anterior usa la ubicación predeterminada para el archivo de configuración de Kubernetes, ~/.kube/config. Puede especificar otra ubicación para el archivo de configuración de Kubernetes con la opción --file.

Para comprobar la conexión al clúster, use el comando kubectl get para devolver una lista de los nodos del clúster.

kubectl get nodes

La salida del ejemplo siguiente muestra el nodo único creado en los pasos anteriores. Asegúrese de que el estado del nodo es Listo:

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy   Ready    <none>  76s     v1.29.9

Crear una instancia de Azure SQL Database

En esta sección, creará una base de datos única de Azure SQL Database para usarla con la aplicación.

En primer lugar, establezca variables de entorno relacionadas con la base de datos. Reemplace <your-unique-sql-server-name> por un nombre único para el servidor de Azure SQL Database.

export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb

Ejecute el siguiente comando en el terminal para crear una base de datos única en Azure SQL Database y establecer el usuario que ha iniciado sesión actual como administrador de Microsoft Entra. Para más información, consulte Inicio rápido: Creación de una base de datos única: Azure SQL Database.

export ENTRA_ADMIN_NAME=$(az ad signed-in-user show --query userPrincipalName --output tsv)

az sql server create \
    --name $SQL_SERVER_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --enable-ad-only-auth \
    --external-admin-principal-type User \
    --external-admin-name $ENTRA_ADMIN_NAME \
    --external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name $DB_NAME \
    --edition GeneralPurpose \
    --compute-model Serverless \
    --family Gen5 \
    --capacity 2

A continuación, agregue la dirección IP local a las reglas de firewall del servidor de Azure SQL Database para permitir que la máquina local se conecte a la base de datos para realizar pruebas locales más adelante.

export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name AllowLocalIP \
    --start-ip-address $AZ_LOCAL_IP_ADDRESS \
    --end-ip-address $AZ_LOCAL_IP_ADDRESS

Nota:

Cree un servidor de Azure SQL server con la autenticación de SQL deshabilitada para conocer las consideraciones de seguridad. Solo microsoft Entra ID se usa para autenticarse en el servidor. Si necesita habilitar la autenticación de SQL, consulte az sql server create para obtener más información.

Creación de una conexión de servicio en AKS con Service Connector

Ejecute los comandos siguientes para crear una conexión entre el clúster de AKS y la base de datos SQL mediante Id. de carga de trabajo de Microsoft Entra con Service Connector. Para más información, consulte Creación de una conexión de servicio en AKS con Service Connector (versión preliminar).

# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait

# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true

# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --query id \
    --output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $SQL_SERVER_NAME \
    --query id \
    --output tsv)

# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${USER_ASSIGNED_IDENTITY_NAME}

# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${USER_ASSIGNED_IDENTITY_NAME} \
    --query id \
    --output tsv)

# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
    --connection akssqlconn \
    --client-type java \
    --source-id $AKS_CLUSTER_RESOURCE_ID \
    --target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
    --workload-identity $UAMI_RESOURCE_ID

Nota:

Se recomienda usar Id. de carga de trabajo de Microsoft Entra para el acceso seguro a azure SQL Database sin usar la autenticación de SQL. Si necesita usar la autenticación de SQL, omita los pasos anteriores de esta sección y use el nombre de usuario y la contraseña para conectarse a Azure SQL Database.

Obtención de la cuenta de servcie y el secreto creados por Service Connector

Para autenticarse en Azure SQL Database, debe obtener la cuenta de servicio y el secreto creados por Service Connector. Siga la sección Actualización del contenedor. Tome la opción Crear directamente una implementación mediante el fragmento de código de ejemplo de YAML proporcionado y ejecute los pasos siguientes:

  1. En las secciones resaltadas del ejemplo de YAML de implementación de Kubernetes, copie los serviceAccountName valores y secretRef.name , como se muestra en el ejemplo siguiente:

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  2. Reemplace <service-account-name> y <secret-name> por los valores que copió en el paso anterior para definir las siguientes variables de entorno:

    export SERVICE_ACCOUNT_NAME=<service-account-name>
    export SECRET_NAME=<secret-name>
    

    Estos valores se usan en la sección siguiente para implementar la aplicación Liberty en el clúster de AKS.

Nota:

El secreto creado por Service Connector contiene , AZURE_SQL_CONNECTIONSTRINGque es una contraseña gratuita cadena de conexión a Azure SQL Database. Consulte el valor de ejemplo de autenticación de identidad administrada asignada por el usuario para obtener más información.

Instalación de Operator de Open Liberty

En esta sección, instalará el operador open Liberty en el clúster de AKS para hospedar la aplicación Liberty.

Instale el operador de Open Liberty ejecutando los siguientes comandos:

# Install cert-manager Operator
CERT_MANAGER_VERSION=v1.11.2
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml

# Install Open Liberty Operator
export OPERATOR_VERSION=1.4.0
mkdir -p overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/olo-all-namespaces.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/cluster-roles.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/kustomization.yaml -q -P ./overlays/watch-all-namespaces
mkdir base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/kustomization.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-crd.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-operator.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-roles.yaml -q -P ./base
kubectl create namespace open-liberty
kubectl apply --server-side -k overlays/watch-all-namespaces

Configuración y compilación de la imagen de aplicación

Para implementar y ejecutar la aplicación de Liberty en un clúster de AKS, incluya en un contenedor la aplicación como una imagen de Docker mediante las imágenes de contenedor de Open Liberty o las imágenes de contenedor de WebSphere Liberty.

Siga los pasos que aparecen en esta sección para implementar la aplicación de ejemplo en el entorno de ejecución de Liberty. Esos pasos usan Maven.

Extracción de la aplicación

Clone el código de ejemplo de esta guía. El ejemplo se encuentra en GitHub. Hay algunos ejemplos en el repositorio. En este artículo se usa el java-app ejemplo. A continuación se muestran los archivos importantes.

git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241029

Si se ve un mensaje sobre estar en estado "HEAD desasociado", es seguro ignorar este mensaje. Solo significa que ha extraído una etiqueta del repositorio.

java-app
├─ src/main/
│  ├─ aks/
│  │  ├─ openlibertyapplication-passwordless-db.yaml
│  ├─ docker/
│  │  ├─ Dockerfile
│  │  ├─ Dockerfile-wlp
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml

Los directorios java, resources y webapp contienen el código fuente de la aplicación de ejemplo. El código declara y usa un origen de datos denominado jdbc/JavaEECafeDB.

En el directorio aks , el archivo openlibertyapplication-passwordless-db.yaml se usa para implementar la imagen de aplicación. En el directorio docker, hay dos archivos para crear la imagen de aplicación con Open Liberty o WebSphere Liberty.

En el directorio liberty/config, server.xml se usa para configurar la conexión a la base de datos para el clúster de Open Liberty y WebSphere Liberty. Define una variable azure.sql.connectionstring que se usa para conectarse a Azure SQL Database.

El archivo pom.xml es el archivo del modelo de objetos de proyecto (POM) de Maven que contiene la información de configuración del proyecto. El archivo pom-azure-identity.xml declara azure-identity dependencia, que se usa para autenticarse en los servicios de Azure mediante el identificador de Microsoft Entra.

Nota:

En este ejemplo se usa azure-identity la biblioteca para autenticarse en Azure SQL Database mediante la autenticación de Microsoft Entra, que se recomienda para tener en cuenta las consideraciones de seguridad. Si necesita usar la autenticación de SQL en la aplicación Liberty, consulte Relational conexione de base de datos with JDBC (Conexione de base de datos relacional con JDBC) para obtener más información.

Compilación del proyecto

Ahora que ha recopilado las propiedades necesarias, puede compilar la aplicación. El archivo POM del proyecto lee muchas variables del entorno. Como parte de la compilación de Maven, estas variables se usan para rellenar los valores de los archivos YAML ubicados en src/main/aks. Si lo prefiere, puede hacer algo similar para la aplicación fuera de Maven.

cd $BASE_DIR/java-app

# The following variables are used for deployment file generation into target/
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}

mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources

Prueba local del proyecto

Ahora puede ejecutar y probar el proyecto localmente antes de implementarlo en Azure. Para mayor comodidad, use liberty-maven-plugin. Para más información sobre liberty-maven-plugin, consulte Creación de una aplicación web con Maven. Para la aplicación, puede hacer algo similar mediante cualquier otro mecanismo, como el IDE local. También puede considerar el uso de la opción liberty:devc destinada al desarrollo con contenedores. Puede obtener más información sobre liberty:devc en la documentación de Liberty.

Nota:

Si seleccionó una implementación de base de datos "sin servidor", compruebe que la base de datos SQL no ha entrado en modo de pausa. Una manera de hacerlo es iniciar sesión en el editor de consultas de la base de datos como se describe en Inicio rápido: Uso del editor de consultas de Azure Portal (versión preliminar) para consultar Azure SQL Database.

  1. Inicie la aplicación mediante liberty:run.

    cd $BASE_DIR/java-app
    
    # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml
    export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault"
    mvn liberty:run
    
  2. Compruebe que la aplicación funciona según lo previsto. Si el resultado de la operación es satisfactorio, debería ver un mensaje similar a [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. en la salida del comando. Vaya a http://localhost:9080/ en el explorador para comprobar que la aplicación es accesible y que todas las funciones hacen su trabajo.

  3. Presione Ctrl+C para detener. Seleccione Y si está aksed para finalizar el trabajo por lotes.

Cuando haya terminado, elimine la regla de firewall que permite que la dirección IP local acceda a Azure SQL Database mediante el comando siguiente:

az sql server firewall-rule delete \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name AllowLocalIP

Compilación de la imagen para la implementación de AKS

Ahora puede ejecutar el comando az acr build para compilar la imagen, como se muestra en el ejemplo siguiente:

cd $BASE_DIR/java-app/target

az acr build \
    --registry ${REGISTRY_NAME} \
    --image javaee-cafe:v1 \
    .

El az acr build comando carga los artefactos especificados en el Dockerfile en la instancia de Container Registry, compila la imagen y la almacena en la instancia de Container Registry.

Implemente la aplicación en el clúster de AKS.

Siga estos pasos para implementar la aplicación de Liberty en el clúster de AKS.

  1. Ejecute los comandos siguientes para aplicar el archivo de implementación:

    cd $BASE_DIR/java-app/target
    
    # Apply deployment file
    kubectl apply -f openlibertyapplication-passwordless-db.yaml
    
  2. Determine si la instancia de OpenLibertyApplication se crea mediante la ejecución del comando siguiente:

    kubectl get openlibertyapplication javaee-cafe-cluster
    

    Debería ver una salida similar al ejemplo siguiente:

    NAME                  IMAGE                                        EXPOSED   RECONCILED   RESOURCESREADY   READY   WARNING   AGE
    javaee-cafe-cluster   jiangma102924acr.azurecr.io/javaee-cafe:v1             True         True             True              57s
    
  3. Para determinar si la implementación creada por el operador está lista, ejecute el siguiente comando:

    kubectl get deployment javaee-cafe-cluster --watch
    

    Debería ver una salida similar al ejemplo siguiente:

    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    javaee-cafe-cluster         0/3     3            0           20s
    
  4. Espere hasta ver 3/3 en la columna READY y 3 en la columna AVAILABLE y, luego, use Ctrl+C para detener el proceso de inspección de kubectl.

Prueba de la aplicación

Cuando se ejecuta la aplicación, un servicio de equilibrador de carga de Kubernetes expone el front-end de la aplicación a Internet. Este proceso puede tardar en completarse.

Para supervisar el progreso, use el comando kubectl get service con el argumento --watch, como se muestra en el ejemplo siguiente:

kubectl get service javaee-cafe-cluster --watch

Debería ver una salida similar al ejemplo siguiente:

NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
javaee-cafe-cluster         LoadBalancer   10.0.251.169   52.152.189.57   80:31732/TCP     68s

Cuando la dirección EXTERNAL-IP cambie de pendiente a una dirección IP pública real, use Ctrl+C para detener el proceso de inspección de kubectl.

Si se pasa algún tiempo entre ejecutar los pasos de esta sección y el anterior, asegúrese de que la base de datos está activa, si es necesario. Consulte la nota anterior sobre la pausa de la base de datos.

Abra un explorador web en la dirección IP externa del servicio (52.152.189.57 en el ejemplo anterior) para ver la página principal de la aplicación. Si la página no se carga correctamente, esto se debe a que la aplicación se está iniciando. Puede esperar un tiempo y actualizar la página más adelante. Debería ver el nombre de pod de las réplicas de la aplicación en la parte superior izquierda de la página. Espere unos minutos y actualice la página para ver otro nombre de pod debido al equilibrio de carga proporcionado por el clúster de AKS.

Aplicación de Liberty de Java implementada correctamente en AKS.

Nota:

Actualmente, la aplicación no usa HTTPS. Se recomienda habilitar TLS con sus propios certificados. Para obtener más información, consulte Uso de TLS con un controlador de entrada en Azure Kubernetes Service (AKS).

Limpieza de recursos

Para evitar los cargos de Azure, se recomienda limpiar los recursos que no sean necesarios. Cuando ya no sea necesario el clúster, use el comando az group delete para quitar el grupo de recursos, el servicio de contenedor, el registro de contenedor, la base de datos y todos los recursos relacionados.

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait

Pasos siguientes

Puede obtener más información en las referencias que se usan en esta guía:

Para incorporar Azure Cache for Redis en una aplicación de Java, consulte Uso de Azure Cache for Redis en Java con el cliente Redis de Redisson.

Si desea explorar las opciones para ejecutar los productos WebSphere en Azure, consulte ¿Cuáles son las soluciones para ejecutar la familia de productos WebSphere en Azure?