Informations pour ceux qui ont des difficultés à ouvrir le portail Azure.
Immédiatement après la création de l'AppService, il a été désactivé, alors activez-le dans le menu de gauche → Journal App Service. Blob peut convenir, et je ne suis pas sûr de la signification du "message d'erreur détaillé".
Sélectionnez Log Stream dans le menu de gauche et vérifiez que vous pouvez afficher le journal sur l'écran Web. La figure suivante montre comment le bot est déployé en attendant un journal.
Désormais, nous travaillerons dans le terminal client (PowerShell). Peut-être que ça va avec l'invite de commande, et ça va avec macOS.
Étant donné que l'installation d'Azure CLI est un problème, utilisez l'image Docker fournie. Au moment suivant, lancez le conteneur Azure CLI et entrez bash.
docker run -it mcr.microsoft.com/azure-cli
bash-5.0#
Vous devez vous connecter à Azure à partir de l'interface de ligne de commande pour accéder au flux de journaux AppService. Créez quelque chose appelé «principal de service» afin que vous puissiez vous connecter sans aucune interaction avec l'utilisateur.
Tout d'abord, connectez-vous à Azure de manière interactive.
bash-5.0# az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code GD3M62X89 to authenticate.
S'affiche, accédez à l'URL, entrez le code et connectez-vous avec le navigateur.
Une fois connecté, exécutez la commande suivante:
bash-5.0# az ad sp create-for-rbac --name <your-service-principal-name>
Donnez à
Quand tu cours
Depuis le résultat comme
Faire une note de.
Le principal de service que vous avez créé a le rôle «Contributeur», et vous voulez juste voir le journal, mais il est trop privilégié et dangereux, alors exécutez la commande suivante pour changer le rôle ..
bash-5.0# az role assignment create --assignee <appId> --role "Website Contributor"
bash-5.0# az role assignment delete --assignee <appId> --role "Contributor"
Le rôle Contributeur de site Web lit uniquement le journal AppService. Il semble que vous puissiez également créer et gérer des sites Web, mais je fais des compromis car je n'ai pas trouvé d'autres rôles intégrés appropriés. Il serait possible d'autoriser uniquement la fonction souhaitée par une méthode autre que le rôle intégré.
Connectez-vous «de manière non interactive» avec Azure CLI à l'aide des informations que vous avez notées à l'étape 4.
Tout d'abord, déconnectez-vous.
bash-5.0# az logout
Connectez-vous avec appId, mot de passe, locataire.
bash-5.0# az login --service-principal --username <appId> --password "<password>" --tenant <tenant>
Puisque le mot de passe contient des symboles, etc., il est plus sûr de le mettre entre "".
bash-5.0# az webapp log tail --nom <nom AppService>--resource-groupe <nom du groupe de ressources>
La figure suivante montre le flux de journaux AppService surveillé dans Windows Terminal. Vous pouvez maintenant voir la sortie de la console AppService ainsi que l'écran Web.
Il est difficile d'exécuter docker, az login et az webapp log, alors exécutons-le avec une seule commande. Il est plus facile d'utiliser docker-compose.
Créez un répertoire approprié (ici, le répertoire log ''), créez-y
log_tail.sh`` et écrivez le contenu suivant.
log_tail.sh
#!/bin/bash
az login --service-principal \
--username "c22b88da-35d7-4044-xxx-xxxxxxxx" \
--password "xxxxxxxxxxxxxxxxxxxxx" \
--tenant "da519484-d2e7-4d6b-xxxx-xxxxxxxx" \
--output none
az webapp log tail \
--name mybot001 \
--resource-group my_bot_001_rc
Remplacez la partie paramètre par votre propre environnement décrit ci-dessus. Nous avons également ajouté `` --output none '' à az login. Je l'ai perdu car il était ennuyeux que le résultat de l'achèvement de la connexion soit sorti.
Ensuite, créez docker-compose.yml
dans le même répertoire et écrivez le contenu suivant.
docker-compose.yml
version: '2'
services:
log-tail:
image: mcr.microsoft.com/azure-cli
volumes:
- .:/work
working_dir: /work
command: bash log_tail.sh
Définissez un conteneur à partir de l'image Azure CLI et exécutez `` log_tail.sh '' au démarrage.
Faites cela dans Terminal.
#Accédez au répertoire du journal et exécutez
cd log
docker-compose run --rm log-tail
#Exécuter depuis l'extérieur du répertoire du journal
cd ..
docker-compose -f ./log/docker-compose.yml run --rm log-tail
Vous pouvez désormais surveiller le journal AppService d'un seul coup. Je fais du développement de Bot dans node.js, donc je me suis inscrit dans les scripts de package.json pour:
{
"name": "my-bot",
"version": "1.0.0",
"scripts": {
"log-tail": "docker-compose -f ./scripts/log/docker-compose.yml run --rm log-tail",
<Omis ci-dessous>
Il peut être appelé avec npm run log-tail '' ou
yarn log-tail ''. C'est devenu très pratique.
** Attention: ** J'ai écrit des informations confidentielles telles que des mots de passe directement dans log_tail.sh, je devrais donc consulter les variables d'environnement. .. ..
Si vous ne l'utilisez plus ou trouvez qu'il a été abusé, supprimez le principal du service et désactivez la connexion non interactive.
az ad sp list --all '' pour afficher la liste des principaux de service (Personnalisez les résultats de sortie (https://dev.classmethod.jp/articles/form-aws-cli). -output-by-jmespath /) Il semble que cela puisse être fait, donc l'ajuster facilitera la lecture, mais c'était trop difficile pour moi ...,
--display-name my-first`` est facile à affiner).