Implementar en Azure

Completado

En este ejercicio se requiere un espacio aislado. Un espacio aislado le da acceso a recursos gratuitos. La suscripción personal no se le cobrará.

Puede usar el espacio aislado solo para completar el entrenamiento de Microsoft Learn. Está prohibido el uso con cualquier otro fin y puede dar lugar a la pérdida permanente del acceso al espacio aislado.

A fin de que el sitio esté disponible para el público, lo implementará en Azure. Usará la extensión de Azure App Service en Visual Studio Code para simplificar el proceso.

Instalación de la extensión de Azure App Service

Empiece por instalar la extensión de Azure App Service en Visual Studio Code:

  1. En Visual Studio Code, seleccione el icono Extensiones.

    Screenshot showing the Extensions icon.

  2. En el campo Extensiones de búsqueda, escriba App Service.

  3. En Azure App Service, seleccione Instalar.

Si ya tiene la extensión Azure App Service, asegúrese de que se actualiza a la versión más reciente. Consulte la última fecha actualizada en la página de extensión. Si está trabajando con la versión más reciente, debería ver un nodo RESOURCES con un nodo de App Services.

Implementación de la aplicación

Al seguir los pasos para clonar el repositorio de inicio, también debe haber cambiado el directorio a la carpeta starter antes de abrir VS Code. El directorio starter contiene el archivo manage.py que indica a App Service que va a implementar una aplicación web de Django.

  1. En Visual Studio Code, en la barra de herramientas, seleccione el icono Azure .

    Screenshot showing the Azure icon.

  2. Seleccione Iniciar sesión para iniciar sesión en Azure con la misma cuenta que ha usado para crear el espacio aislado.

  3. En la barra RECURSOS de la extensión de Azure, mantenga el puntero y seleccione el icono + (signo más) para crear un recurso.

    Screenshot showing the App Service bar. The Deploy icon is highlighted.

  4. Si se le pide que elija una suscripción, elija su suscripción de Azure.

  5. Seleccione Crear aplicación web de App Service....

    Screenshot showing how to create a new web app.

  6. Proporcione un nombre único para la aplicación.

    Screenshot showing where to provide an app name.

  7. Seleccione Python 3.9 como pila en tiempo de ejecución.

    Screenshot showing the runtime stack selection.

  8. Seleccione un plan de tarifa.

    Screenshot showing the the pricing tier selection.

    La extensión crea la aplicación web. Este proceso tardará un poco.

  9. Cuando se crea la aplicación web, se le pedirá que la implemente en App Service; seleccione Implementar.

    Screenshot showing the deployment configuration option.

    Si pierde el aviso para implementarla o cerrarla, también puede implementarla mediante la búsqueda de App Service que ha creado. Haga clic con el botón derecho en ella y seleccione Implementar en aplicación web.

El sitio se implementará.

Crear el servidor de bases de datos

Ahora cree la base de datos PostgreSQL.

  1. En la barra RECURSOS de la extensión de Azure, mantenga el puntero y seleccione el icono + (signo más) para crear un recurso.

    Screenshot of the Databases extension, showing the Create Server icon.

  2. Si se le pide que elija una suscripción, elija su suscripción de Azure.

  3. Seleccione Crear servidor de base de datos...

    Screenshot showing how to create a new database server.

  4. Para Servidor de base de datos de Azure, seleccione Servidor flexible PostgreSQL.

    Screenshot showing a list of available database servers.

  5. Escriba un nombre único para el servidor de bases de datos.

    Importante

    Anote el nombre que use en el servidor de bases de datos.

  6. Seleccione la SKU y las opciones de Postgres.

  7. Escriba shelter_admin como nombre del usuario administrador.

  8. Escriba una contraseña segura, como "86i^z5#emSk6wu3t10nC*".

    Importante

    Cuando cree la contraseña, no use un signo de dólar ($). Este símbolo puede provocar incidencias en las conexiones desde Python. Anote la contraseña que use.

  9. Escriba la contraseña una segunda vez para confirmarla.

  10. Para el grupo de recursos, seleccione el mismo grupo de recursos en el que se creó la aplicación web.

    Para buscar el nombre y la ubicación del grupo de recursos que se usan para crear la aplicación web, busque el App Service en la extensión de Azure, haga clic con el botón derecho en el nombre y seleccione Ver propiedades. En la clave "id", el nombre del grupo de recursos es la parte siguiente "/resourceGroups/". La clave "location" muestra la ubicación.

    También puede hacer clic con el botón derecho en el nombre del App Service y seleccionar Abrir en el portal para buscar el nombre y la ubicación del grupo de recursos.

  11. Para la ubicación de los nuevos recursos, seleccione la misma ubicación del grupo de recursos y la aplicación web.

    Importante

    Al crear varios recursos de Azure que se comunicarán entre sí, colóquelos siempre en la misma región. Esta colocación garantiza el mejor rendimiento.

Ahora se creará el servidor. Este proceso tardará unos minutos.

Creación de una regla de firewall de base de datos para permitir el acceso desde el entorno de desarrollo

Una vez creada la base de datos, debe crear una regla de firewall para permitir que el entorno de desarrollador acceda a la base de datos. Espere hasta que la base de datos exista antes de continuar con los pasos siguientes para crear la regla.

  1. Abra la paleta de comandos de Visual Studio Code con F1 o la combinación de teclas Ctrl + Mayús + P.

  2. Busque "PostgreSQL: Configurar el firewall" y selecciónelo.

    Screenshot showing the firewall rule field.

  3. Cuando se le solicite que el recurso aplique el firewall, seleccione la base de datos Postgres que ha creado.

  4. Un cuadro de diálogo final pide continuar y muestra la dirección IP que él mismo agregará. Seleccione .

La regla tarda unos minutos en agregarse. Vea la ventana de notificación de VS Code para conocer el estado.

Cree una base de datos en el servidor de bases de datos

Ahora que ha configurado App Service y creado el servidor, puede crear la base de datos en el servidor de base de datos Postgres.

  1. En los RECURSOS de la extensión Azure Tools, expanda el nodo Servidores PostgreSQL (flexible) y busque el servidor que creó.

  2. Haga clic con el botón derecho en el nombre del servidor de bases de datos y seleccione Crear base de datos.

    Screenshot showing the Create Database selection.

  3. Escriba shelters.

Se creará la base de datos.

Permitir el acceso al servidor de bases de datos desde App Service

En este ejercicio, también necesitará la aplicación web dog shelters hospedada en Azure App Service para conectarse al servidor flexible de Azure Database for PostgreSQL. Cuando una aplicación intenta conectarse desde Azure al servidor de bases de datos, el firewall comprueba que se permiten las conexiones de Azure. Anteriormente se permitían conexiones desde el entorno local. Ahora, también debe permitir conexiones desde App Service.

  1. En VS Code, en losRECURSOS de la extensión Azure Tools, expanda el nodo Servidores PostgreSQL (flexible) y busque el servidor que creó.

  2. Haga clic con el botón derecho en el nombre del servidor de bases de datos y seleccione Abrir en Portal.

  3. Seleccione el recurso Redes del servidor Postgres.

  4. SeleccionePermitir acceso público desde cualquier servicio de Azure a este servidor, active en el portal la pestaña de Redes y seleccioneGuardar.

    Screenshot showing the how to allow public access to database server.

Configurar los valores de una aplicación para la aplicación web

App Service usa la configuración de la aplicación para configurar las variables de entorno. La configuración es una manera cómoda de almacenar información que no se debe incluir en el código, como cadenas de conexión de base de datos.

  1. En App Service, expanda la suscripción del espacio aislado. Después, expanda la aplicación.

  2. Para crear la primera configuración de la aplicación, haga clic con el botón derecho en Configuración de la aplicación y luego seleccione Agregar nueva configuración.

    Screenshot showing how to add a new setting.

  3. En el primer campo, escriba el nombre DBUSER.

  4. En el segundo campo, escriba el valor shelter_admin.

  5. Repita los pasos anteriores para crear el resto de la configuración:

    Nombre Value
    DBHOST <The server name you created previously>
    DBPASS <The password you created previously>
    DBUSER shelter_admin
    DBNAME shelters
    SECRET_KEY <Generate a secure password>

    Nota:

    Reemplace los valores DBHOST y DBPASS por los que ha creado anteriormente en este ejercicio. En SECRET_KEY, cree una contraseña.

Ahora se crean todas las variables de entorno necesarias en el servicio de aplicaciones.

Creación del esquema y del superusuario

El último paso de la implementación es configurar la base de datos. En el desarrollo local, ejecute python manage.py migrate y python manage.py createsuperuser para crear el esquema de la base de datos y el superusuario. En Azure hará lo mismo.

Se conectará al servidor web en Azure mediante Secure Shell (SSH). Puede establecer la conexión en Visual Studio Code como se muestra abajo.

  1. En la extensión de App Service, haga clic con el botón derecho en el servicio de aplicaciones y luego seleccione SSH into Web App (SSH en aplicación web).

    Screenshot of the menu for SSH.

    Se realizará una conexión SSH en el servidor web en Azure. Este proceso puede tardar unos minutos. Aparece un panel de terminal en Visual Studio Code. Este terminal es la conexión SSH con el servidor web. Si tiene problemas para conectarse, consulte los pasos de solución de problemas siguientes.

    Importante

    Si recibe un mensaje de error que indica que debe habilitar SSL para la base de datos, asegúrese de que ha creado correctamente todas las variables de entorno.

  2. En el panel de terminal SSH, ejecute los comandos siguientes para asegurarse de que se instalan las bibliotecas adecuadas y crear la base de datos.

    # Run database migrations
    python manage.py makemigrations dog_shelters
    python manage.py migrate
    
  3. Cree el superusuario mediante la ejecución del comando siguiente.

    python manage.py createsuperuser
    
  4. Proporcione un nombre, una dirección de correo electrónico y una contraseña para el superusuario.

  5. Después de crear el superusuario, ejecute el comando exit para cerrar la conexión.

La base de datos ya está configurada en Azure y tiene un superusuario para el sitio.

Solucionar problemas de SSH

Si no puede conectarse a SSH desde VS Code, estos son algunos pasos que puede probar:

  • Vaya a la página Azure Portal del App Service y acceda a SSH allí. En VS Code, haga clic con el botón derecho en el nombre del App Service y seleccione Abrir en el portal. En la página del portal del App Service, vaya a los recursos SSH en el panel de recursos izquierdo.

  • Compruebe que App Service está alojando correctamente la aplicación web. Si se produjo un error de implementación o un problema de codificación, es posible que el App Service no se haya iniciado y no se pueda usar SSH en él. En la página del portal del App Service, vaya al panel Diagnosticar y resolver problemas en el panel de recursos izquierdo para buscar problemas.

  • Obtenga más información sobre SSH en App Service.

Acceso al sitio

Ahora que ha implementado y configurado todo, puede ver el sitio web en Azure.

En la extensión de App Service, haga clic con el botón derecho en el nombre de su sitio y, después, seleccione Examinar sitio web.

Screenshot showing where to select Browse Website.

Ahora aparece el sitio web. La página predeterminada no muestra ningún refugio. Para agregar refugios:

  1. Vaya a la parte de administración de Django del sitio agregando "/admin" a la dirección URL del sitio web.

    Se le pedirá que se autentique con el nombre del superusuario y la contraseña que creó anteriormente.

  2. Agregue un refugio y vuelva a la página principal y podrá registrar un perro para ese refugio.

Esta es una captura de pantalla de ejemplo del sitio:

Screenshot showing Django admin and how to add shelters.

Si intenta ir a una ubicación que no existe en el sitio, obtendrá un error genérico No encontrado porque DEBUG está deshabilitado.

Ya ha implementado un sitio web en Azure.