Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 Studio
OAuth ".
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:
- Ejecute
mkdir -p ~/bin
para asegurarse de que la~/bin
carpeta está presente - Ejecute
mkdir -p ~/azd
para asegurarse de que hay una carpeta local~/azd
presente - Ejecutar
curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version>
(<version>
seríastable
de forma predeterminada, pero también se puede especificar una versión publicada específica como1.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:
- Ejecutar
rm ~/bin/azd
- 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
Vaya a Azure Portal.
Busque el grupo de recursos, que es rg-<your-environment-name>.
Seleccione Implementaciones para obtener más información.
Verifique que especificó un nombre de entorno que coincida con su nombre de entorno.
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
Elimine manualmente la carpeta ya proporcionada
.azd
:rm -r ~/.azd
Ejecute
azd init
para queazd
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:
Ejecute lo siguiente en Windows:
azd init --template Azure-Samples/todo-java-mongo azd pipeline config
Recibió el siguiente error:
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:
- Cambie el directorio al servicio que produjo un error (
src/api
en el caso defailed packaging service 'api'
) - Ejecutar
npm upgrade v8-compile-cache
- Cambie el directorio a la raíz del repositorio y vuelva a ejecutar el
azd
comando (por ejemploazd package
, oazd 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:
Asegúrese de que se ejecuta en un dispositivo que aparece como compatible, según el mensaje de error.
Vuelva a ejecutar
azd auth login
con la marca--use-device-code=false
anexada:azd auth login --use-device-code=false
Puede recibir un error con el mensaje
localhost refused to connect
después de iniciar sesión. Si es así:- Copie la dirección URL.
- 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.
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
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.