Compartir a través de


Solución de problemas de la CLI para desarrolladores de Azure

En este artículo se proporcionan soluciones a problemas comunes que pueden surgir al usar la CLI para desarrolladores de Azure (azd).

Obtener ayuda y enviar comentarios

Si no puede encontrar lo que busca en este artículo o desea proporcionar comentarios, puede publicar preguntas en discusiones de la CLI para desarrolladores de Azure.

También puede notificar errores abriendo Problemas de GitHub en el repositorio de GitHub de la CLI para desarrolladores de Azure.

Uso del --debug modificador

Si se produce un problema inesperado al trabajar con azd, vuelva a ejecutar el comando con la opción --debug para habilitar información adicional de depuración y diagnóstico.

azd up --debug

También puede enviar la salida de depuración a un archivo de texto local para mejorar la facilidad de uso. Este enfoque permite que otros sistemas de supervisión incorporen la depuración y también puede ser útil al reportar un problema en GitHub.

Importante

Asegúrese de censurar cualquier información confidencial al enviar registros de depuración en GitHub o guardarlos en otros sistemas de diagnóstico.

azd deploy --debug > "<your-file-path>.txt"

Directorio .azure

La CLI para desarrolladores de Azure asume que cualquier directorio almacenado en el directorio .azure es un entorno de la CLI para desarrolladores de Azure. No ejecute comandos de la CLI para desarrolladores de Azure desde el directorio principal de un usuario que tenga instalada la CLI de Azure.

No ha iniciado sesión en Azure o ha expirado el token en Visual Studio

Después de ejecutar azd init -t <template-name> en Visual Studio, obtendrá el siguiente error: "Para acceder a remote: este repositorio, debe volver a autorizar la aplicación Visual StudioOAuth ".

Solución

Ejecute azd auth login para actualizar el token de acceso.

Los permisos de cuenta de Azure actualizados no se actualizan en azd

De forma predeterminada, azd almacena en caché las credenciales y los permisos de Azure. Si a su cuenta de Azure se le asignan nuevos roles y permisos, o se agrega a más suscripciones, es posible que estos cambios no se reflejen inmediatamente en azd. Para resolver este problema, cierre sesión y luego vuelva a iniciar sesión en azd con los siguientes comandos:

azd auth logout

azd auth login

Siga las indicaciones del azd auth login comando para completar el proceso de inicio de sesión y actualizar las credenciales almacenadas en caché.

Limitaciones de Cloud Shell para azd

Hay algunas limitaciones para ejecutar azd en Cloud Shell.

Compatibilidad con Docker en Cloud Shell

Cloud Shell no admite la ejecución de comandos Docker build o run porque el demonio de Docker no se está ejecutando. Para más información, consulte Solución de problemas de Cloud Shell.

Límite de tiempo de Cloud Shell

Cloud Shell puede agotar el tiempo de espera durante una implementación larga u otras tareas de larga duración. Asegúrese de que la sesión no esté inactiva. Consulte Límites de uso de Cloud Shell.

Interfaz de Cloud Shell

Cloud Shell es principalmente una interfaz de línea de comandos y tiene menos características que un entorno de desarrollo integrado como Visual Studio Code.

No se puede establecer conexión con el demonio de Docker en Cloud Shell

Cloud Shell usa un contenedor para hospedar el entorno de consola, por lo que no se permiten las tareas que requieren ejecutar el demonio de Docker.

Instalación de una versión diferente de azd en Cloud Shell

En algunos casos, puede ser necesario instalar una versión diferente de azd que la versión que ya está en uso en Cloud Shell. Para hacerlo en Bash:

  1. Ejecute mkdir -p ~/bin para asegurarse de que la ~/bin carpeta está presente
  2. Ejecute mkdir -p ~/azd para asegurarse de que hay una carpeta local ~/azd presente
  3. Ejecutar curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version> (<version> sería stable de forma predeterminada, pero también se puede especificar una versión publicada específica como 1.0.0 ).

Una vez instalada, la versión de azd vinculada simbólicamente en ~/bin tiene prioridad sobre la versión de azd vinculada simbólicamente en /usr/local/bin.

Para volver a usar la versión de azd ya instalada en Cloud Shell en Bash:

  1. Ejecutar rm ~/bin/azd
  2. Ejecutar rm -rf ~/azd

Solución

Utiliza otro host para realizar tareas que necesiten del daemon de Docker. Una opción es usar docker-machine, como se describe en la documentación de solución de problemas de Cloud Shell .

Requisito para la herramienta CLI de Azure Bicep

azd up y azd provision requieren la versión más reciente de la CLI de Azure Bicep. Es posible que reciba el siguiente mensaje de error: "Error: no se pudo compilar la plantilla de bicep: error al ejecutar la compilación de Bicep del módulo de PowerShell: código de salida: 1, stdout: , stderr: ADVERTENCIA: hay disponible una nueva versión de Bicep: v0.4.1272".

Solución

Anteriormente, Bicep era un requisito previo para poder instalar y usar azd . azd ahora instala Bicep automáticamente dentro del ámbito local azd (no globalmente) y este problema ahora debe resolverse. Sin embargo, si desea usar una versión diferente, puede establecer la variable de entorno: AZD_BICEP_TOOL_PATH para que apunte a la ubicación de la versión que necesita.

azd up o azd provision falla

** A veces, las cosas pueden salir mal con azd up o azd provision. Estos son algunos de los errores comunes:

  • "No se pueden aprovisionar determinados recursos en una región de Azure porque la región está fuera de capacidad".
  • "El proveedor de recursos relevante no está presente en esa región".

Los pasos de solución de problemas pueden diferir, en función de la causa principal.

Solución

  1. Vaya a Azure Portal.

  2. Busque el grupo de recursos, que es rg-<your-environment-name>.

  3. Seleccione Implementaciones para obtener más información.

  4. Verifique que especificó un nombre de entorno que coincida con su nombre de entorno.

  5. Vaya a la pestaña Acciones del repositorio de GitHub afectado e investigue el archivo de registro en la ejecución de la canalización para obtener más información.

Para ver otros recursos, consulte Solución de errores comunes de implementación de Azure: Azure Resource Manager.

azd init Requiere sudo

Antes de azd version = azure-dev-cli_0.2.0-beta.1, azd crearía una .azd carpeta con drw-r--r-- acceso.

Esto provoca un problema, ya que el uso de esta o cualquier versión anterior en cualquier configuración de Linux (WSL, ssh-remote, devcontainer, etc.) ya proporciona una .azd carpeta con modo de solo lectura.

Solución

  1. Elimine manualmente la carpeta ya proporcionada .azd :

    rm -r ~/.azd
    
  2. Ejecute azd init para que azd vuelva a crear la carpeta con los niveles de acceso adecuados.

azd monitor para el contenedor de desarrollo

Actualmente, azd monitor no es compatible si utiliza un contenedor de desarrollo como su entorno de desarrollo.

No se puede autenticar en entornos de Codespaces

Si experimenta problemas de autenticación en Codespaces, asegúrese de que la plantilla Dockerfile incluye los sudo apt-get update && sudo apt-get install xdg-utils comandos. El xdg-utils comando abre una pestaña del explorador que le permite iniciar sesión.

Las Aplicaciones Web Estáticas fallan al desplegarse a pesar del mensaje de éxito

Existe un problema conocido al implementar en Azure Static Web Apps en el que la salida predeterminada azd up puede indicar que la acción se realizó correctamente, pero los cambios no se implementaron realmente. Para diagnosticar este problema, ejecute el azd up comando con la --debug marca habilitada. En los registros de salida puede ver el mensaje siguiente:

Preparing deployment. Please wait...
An unknown exception has occurred

Es más probable que encuentre este problema cuando azd se ejecuta desde una acción de GitHub. Como solución alternativa, después de compilar el sitio, copie staticwebapp.config.json en la carpeta de compilación. Puede automatizar este paso mediante un gancho de comando de preempaquetado o de predespliegue, lo que le permite ejecutar scripts personalizados en varios puntos de los flujos de trabajo de comandos azd.

El equipo del producto está trabajando para resolver este problema.

Error de Acciones de GitHub: "No tiene permiso para obtener secretos en la bóveda de claves"

Compartir el mismo nombre de entorno o grupo de recursos al aprovisionar recursos localmente y en Acciones de GitHub puede producir el error Does not have secrets get permission on key vault.. del servicio Key Vault. Key Vault no admite actualizaciones de permisos incrementales a través de Bicep, lo que significa que el flujo de trabajo de Acciones de GitHub sobrescribe los permisos de directiva de acceso del usuario local.

La solución recomendada para este problema es usar nombres de entorno independientes para flujos de trabajo de Acciones de GitHub y desarrollo local. Obtenga más información sobre el uso de varios entornos con el azd env comando en la página de preguntas más frecuentes.

Compatibilidad con exploradores basados en texto

Actualmente, los exploradores basados en texto no son compatibles con azd monitor.

azd pipeline config uso de AzDo para plantillas de Java en Windows

Es posible que se produzca un error al ejecutar azd pipeline config con AzDo para plantillas de Java en Windows. Por ejemplo, has:

  1. Ejecute lo siguiente en Windows:

    azd init --template Azure-Samples/todo-java-mongo
    azd pipeline config
    
  2. Recibió el siguiente error:

    Captura de pantalla que muestra el error recibido al ejecutar azd pipeline config con AzDo para Java en Windows.

Solución

Se trata de un problema conocido. Mientras solucionamos este problema, pruebe el siguiente comando:

git update-index --chmod=+x src/api/mvnw && git commit -m "Fix executable bit permissions" && git push

failed packaging service 'api': failed invoking action 'package', failed to run NPM script build, signal: segmentation fault error después de actualizar azd en Apple Silicon (M1/M2)

En algunas situaciones, la actualización de la versión de x86_64 de azd a un binario ARM64 puede producir errores en las plantillas que se han compilado con la versión de x86_64 de azd. Esto se debe a que la plantilla usa una versión de v8-compile-cache que puede intentar cargar bytecode integrado en x86_64 en un proceso Arm64.

Para corregir este problema, actualice el v8-compile-cache paquete en el proyecto afectado:

  1. Cambie el directorio al servicio que produjo un error (src/api en el caso de failed packaging service 'api')
  2. Ejecutar npm upgrade v8-compile-cache
  3. Cambie el directorio a la raíz del repositorio y vuelva a ejecutar el azd comando (por ejemplo azd package , o azd up)

azd pipeline config error debido a la directiva de acceso condicional

Al ejecutar azd pipeline config, puede recibir un error similar al siguiente:

ERROR: failed to create or update service principal: failed retrieving application list, failed executing request: http call(https://login.microsoftonline.com/common/oauth2/v2.0/token)(POST) error: reply status code was 400:
{"error":"invalid_grant","error_description":"AADSTS50005: User tried to log in to a device from a platform (Unknown) that's currently not supported through Conditional Access policy. Supported device platforms are: iOS, Android, Mac, and Windows flavors.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: 2022-12-16 21:10:37Z","error_codes":[50005],"timestamp":"2022-12-16 21:10:37Z","trace_id":"0000aaaa-11bb-cccc-dd22-eeeeee333333","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}

Este error está relacionado con la habilitación del inquilino de Microsoft Entra de las directivas de acceso condicional. La directiva específica requiere que haya iniciado sesión en una plataforma de dispositivo compatible.

También puede recibir este error debido a que se ha iniciado sesión con el mecanismo de código del dispositivo, lo que impide que Microsoft Entra ID detecte correctamente la plataforma del dispositivo.

Solución

Para configurar el flujo de trabajo, deberá conceder a GitHub permiso para implementar en Azure en su nombre. Autorice GitHub mediante la creación de una entidad de servicio de Azure almacenada en un secreto de GitHub denominado AZURE_CREDENTIALS. Seleccione el host de Codespace para conocer los pasos:

  1. Asegúrese de que se ejecuta en un dispositivo que aparece como compatible, según el mensaje de error.

  2. Vuelva a ejecutar azd auth login con la marca --use-device-code=false anexada:

    azd auth login --use-device-code=false
    
  3. Puede recibir un error con el mensaje localhost refused to connect después de iniciar sesión. Si es así:

    1. Copie la dirección URL.
    2. Ejecute curl '<pasted url>' (dirección URL entre comillas) en un nuevo terminal de Codespaces.

    En el terminal original, el inicio de sesión ahora debería realizarse correctamente.

  4. Después de iniciar sesión, vuelva a ejecutar azd pipeline config.

Dockerfile almacenado en caché usado en lugar de Dockerfile actual

Al usar azd en el entorno de desarrollo local con Docker, Docker puede usar la versión almacenada en caché de dockerfile en lugar de la versión actual. Esto da como resultado la implementación mediante un contenedor con información incorrecta.

Solución

Para configurar la instalación local de Docker, que usa la CLI para desarrolladores de Azure para compilar el contenedor, debe configurar Docker con las siguientes variables de entorno:

DOCKER_BUILDKIT=1
DOCKER_BUILD_ARGS="--no-cache"

Puede cambiar azd up para incluir esta configuración:

DOCKER_BUILDKIT=1 DOCKER_BUILD_ARGS="--no-cache" azd up

Compatibilidad con azd pipeline config

azd pipeline config actualmente no se admite en Contenedores remotos de DevContainers/VS Code.

Compatibilidad con métricas dinámicas para Python

Live Metrics (azd monitor --live) no se admite actualmente para las aplicaciones de Python. Para obtener más información, consulte Live Metrics: supervisión y diagnóstico con 1 segundo de latencia.

Creación de un problema de GitHub para solicitar ayuda

Imagen del logotipo de GitHub.

La CLI para desarrolladores de Azure y la extensión visual Studio Code de la CLI para desarrolladores de Azure usan problemas de GitHub para realizar un seguimiento de errores y solicitudes de características. Busque los problemas existentes antes de presentar nuevos problemas para evitar duplicados.

Para obtener ayuda y preguntas sobre el uso de este proyecto, consulte nuestra wiki para usar la CLI para desarrolladores de Azure y nuestro documento de CONTRIBUCIÓN si desea contribuir.