Implementar en Azure
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:
En Visual Studio Code, seleccione el icono Extensiones.
En el campo Extensiones de búsqueda, escriba App Service.
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.
En Visual Studio Code, en la barra de herramientas, seleccione el icono Azure .
Seleccione Iniciar sesión para iniciar sesión en Azure con la misma cuenta que ha usado para crear el espacio aislado.
En la barra RECURSOS de la extensión de Azure, mantenga el puntero y seleccione el icono + (signo más) para crear un recurso.
Si se le pide que elija una suscripción, elija su suscripción de Azure.
Seleccione Crear aplicación web de App Service....
Proporcione un nombre único para la aplicación.
Seleccione Python 3.9 como pila en tiempo de ejecución.
Seleccione un plan de tarifa.
La extensión crea la aplicación web. Este proceso tardará un poco.
Cuando se crea la aplicación web, se le pedirá que la implemente en App Service; seleccione Implementar.
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.
En la barra RECURSOS de la extensión de Azure, mantenga el puntero y seleccione el icono + (signo más) para crear un recurso.
Si se le pide que elija una suscripción, elija su suscripción de Azure.
Seleccione Crear servidor de base de datos...
Para Servidor de base de datos de Azure, seleccione Servidor flexible PostgreSQL.
Escriba un nombre único para el servidor de bases de datos.
Importante
Anote el nombre que use en el servidor de bases de datos.
Seleccione la SKU y las opciones de Postgres.
Escriba shelter_admin como nombre del usuario administrador.
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.Escriba la contraseña una segunda vez para confirmarla.
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.
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.
Abra la paleta de comandos de Visual Studio Code con F1 o la combinación de teclas Ctrl + Mayús + P.
Busque "PostgreSQL: Configurar el firewall" y selecciónelo.
Cuando se le solicite que el recurso aplique el firewall, seleccione la base de datos Postgres que ha creado.
Un cuadro de diálogo final pide continuar y muestra la dirección IP que él mismo agregará. Seleccione Sí.
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.
En los RECURSOS de la extensión Azure Tools, expanda el nodo Servidores PostgreSQL (flexible) y busque el servidor que creó.
Haga clic con el botón derecho en el nombre del servidor de bases de datos y seleccione Crear base de datos.
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.
En VS Code, en losRECURSOS de la extensión Azure Tools, expanda el nodo Servidores PostgreSQL (flexible) y busque el servidor que creó.
Haga clic con el botón derecho en el nombre del servidor de bases de datos y seleccione Abrir en Portal.
Seleccione el recurso Redes del servidor Postgres.
SeleccionePermitir acceso público desde cualquier servicio de Azure a este servidor, active en el portal la pestaña de Redes y seleccioneGuardar.
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.
En App Service, expanda la suscripción del espacio aislado. Después, expanda la aplicación.
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.
En el primer campo, escriba el nombre DBUSER.
En el segundo campo, escriba el valor shelter_admin.
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.
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).
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.
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
Cree el superusuario mediante la ejecución del comando siguiente.
python manage.py createsuperuser
Proporcione un nombre, una dirección de correo electrónico y una contraseña para el superusuario.
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.
Ahora aparece el sitio web. La página predeterminada no muestra ningún refugio. Para agregar refugios:
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.
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:
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.