Tutoriel : Créer et utiliser un service Apache Kafka pour le développement
Article
Azure Container Apps vous permet de vous connecter à des services de développement et de production pour fournir une grande variété de fonctionnalités à vos applications.
Dans ce tutoriel, vous allez apprendre à créer et à utiliser un service Apache Kafka de développement.
Les commandes Azure CLI et les fragments de modèle Bicep sont présentés dans ce tutoriel. Si vous utilisez Bicep, vous pouvez ajouter tous les fragments à un seul fichier Bicep et déployer le modèle en même temps.
Créez un environnement Container Apps pour déployer vos applications de conteneur
Créer un service Apache Kafka
Configurez une application en ligne de commande pour utiliser le service dev Apache Kafka
Déployez une application kafka-ui pour afficher les données de l’application
Compiler un modèle bicep final pour déployer toutes les ressources à l’aide d’un déploiement de modèle cohérent et prévisible
Utiliser un modèle azd pour un déploiement à une seule commande de toutes les ressources
AZURE_ENV_NAME est différent du nom de l’environnement de Container App. Dans ce contexte, AZURE_ENV_NAME dans azd s’applique à toutes les ressources d’un modèle. Ces ressources incluent des ressources qui ne sont pas associées à Container Apps. Vous créez un nom différent pour l’environnement Container Apps.
Ensuite, créez infra/main.bicep et définissez des paramètres pour une utilisation ultérieure.
az group create \
--name "$RESOURCE_GROUP" \
--location "$LOCATION"
az group create \
--name "$RESOURCE_GROUP" \
--location "$LOCATION"
Aucune configuration spéciale n’est nécessaire pour la gestion des groupes de ressources dans azd. La commande azd obtient le groupe de ressources à partir de la valeur AZURE_ENV_NAME/--environment.
Vous pouvez tester le modèle minimal avec la commande up.
azd up
L’exécution de cette commande crée un groupe de ressources vide.
Azure CLI crée automatiquement un espace de travail Log Analytics pour chaque environnement. Pour générer un espace de travail à l’aide d’un modèle Bicep, vous déclarez explicitement l’environnement et créez un lien vers celui-ci dans le modèle. Cette étape rend votre déploiement plus stable, même si elle est un peu détaillée.
Ajoutez les valeurs suivantes à votre environnement.
az deployment group create -g $RESOURCE_GROUP \
--query 'properties.outputs.*.value' \
--template-file kafka-dev.bicep
Conseil
La sortie kafkaLogs génère une commande CLI pour vous aider à afficher les journaux de kafka une fois le déploiement terminé. Vous pouvez exécuter la commande pour afficher les journaux d’initialisation du nouveau service Kafka.
`azd up`
Affichez la sortie du journal à partir de l’instance Kafka
Utilisez la commande logs pour afficher les messages du journal.
az containerapp logs show \
--name $KAFKA_SVC \
--resource-group $RESOURCE_GROUP \
--follow --tail 30
L’exemple Bicep précédent inclut la sortie d’une commande permettant d’afficher les journaux.
Par exemple :
[
"az containerapp logs show -n kafka01 -g kafka-dev --follow --tail 30"
]
Si vous ne disposez pas de la commande, vous pouvez utiliser le nom du service pour consulter les journaux à l’aide de l’interface CLI.
az containerapp logs show \
--name $KAFKA_SVC \
--resource-group $RESOURCE_GROUP \
--follow --tail 30
Utilisez la commande logs pour afficher les messages du journal.
az containerapp logs show \
--name kafka01 \
--resource-group $RESOURCE_GROUP \
--follow --tail 30
Créez une application pour tester le service
Lorsque vous créez l’application, vous la configurez pour utiliser ./kafka-topics.sh, ./kafka-console-producer.sh et kafka-console-consumer.sh pour se connecter à l’instance Kafka.
Créer une application kafka-cli-app qui se lie au service Kafka.
Lorsque vous utilisez --bind ou serviceBinds dans l’application de test, les informations de connexion sont injectées dans l’environnement de l’application. Une fois que vous vous êtes connecté au conteneur de test, vous pouvez inspecter les valeurs à l’aide de la commande env.
Utilisez kafka-console-producer.sh pour écrire des événements dans la rubrique.
/opt/kafka/bin/kafka-console-producer.sh \
--topic quickstart-events \
--bootstrap-server $KAFKA_BOOTSTRAP_SERVERS \
--producer.config kafka.props
> this is my first event
> this is my second event
> this is my third event
> CTRL-C
Notes
La commande ./kafka-console-producer.sh vous invite à écrire des événements avec >. Écrivez quelques événements comme indiqué, puis appuyez sur CTRL-C pour quitter.
Utiliser kafka-console-consumer.sh pour lire les événements de la rubrique.
/opt/kafka/bin/kafka-console-consumer.sh \
--topic quickstart-events \
--bootstrap-server $KAFKA_BOOTSTRAP_SERVERS \
--from-beginning \
--consumer.config kafka.props
# this is my first event
# this is my second event
# this is my third event
Utilisation d’un service de développement avec une application existante
Si vous disposez déjà d’une application qui utilise Apache Kafka, vous pouvez modifier le mode de chargement des informations de connexion.
Tout d’abord, créez les variables d’environnement suivantes.
git clone https://github.com/Azure-Samples/aca-dev-service-kafka-azd
cd aca-dev-service-kafka-azd
azd up
Nettoyer les ressources
Une fois que vous avez terminé, exécutez la commande suivante pour supprimer le groupe de ressources qui contient vos ressources Container Apps.
Attention
La commande suivante supprime le groupe de ressources spécifié et toutes les ressources qu’il contient. Si des ressources en dehors du cadre de ce tutoriel existent dans le groupe de ressources spécifié, elles seront également supprimées.
az group delete \
--resource-group $RESOURCE_GROUP