Kurz: Vytvoření a použití služby Apache Kafka pro vývoj
Článek 07/03/2024
Přispěvatelé: 5
Váš názor
V tomto článku
Azure Container Apps umožňuje připojit se k vývojovým a produkčním službám, abyste svým aplikacím poskytli širokou škálu funkcí.
V tomto kurzu se naučíte vytvářet a používat vývojovou službu Apache Kafka.
V tomto kurzu jsou doporučené příkazy Azure CLI a fragmenty šablon Bicep. Pokud použijete Bicep, můžete všechny fragmenty přidat do jednoho souboru Bicep a nasadit šablonu najednou .
Vytvoření prostředí Container Apps pro nasazení služby a aplikace typu kontejner
Vytvoření služby Apache Kafka
Nastavení aplikace příkazového řádku tak, aby používala službu Apache Kafka pro vývoj
Nasazení aplikace kafka-ui pro zobrazení dat aplikací
Kompilace konečné šablony bicep pro nasazení všech prostředků pomocí konzistentního a předvídatelného nasazení šablony
azd
Použití šablony pro jedno nasazení všech prostředků pomocí jednoho příkazu
Požadavky
Poznámka:
V případě nasazení jednoho příkazu přejděte k poslednímu azd
kroku šablony.
Nastavení
Definujte proměnné pro běžné hodnoty.
RESOURCE_GROUP="kafka-dev"
LOCATION="northcentralus"
ENVIRONMENT="aca-env"
KAFKA_SVC="kafka01"
KAFKA_CLI_APP="kafka-cli-app"
KAFKA_UI_APP="kafka-ui-app"
Následující proměnné umožňují použít rozhraní příkazového řádku k nasazení šablony Bicep.
RESOURCE_GROUP="kafka-dev"
LOCATION="northcentralus"
Pro Bicep začněte vytvořením souboru s názvem kafka-dev.bicep
a pak přidejte parametry s následujícími výchozími hodnotami.
targetScope = 'resourceGroup'
param location string = resourceGroup().location
param appEnvironmentName string = 'aca-env'
param kafkaSvcName string = 'kafka01'
param kafkaCliAppName string = 'kafka-cli-app'
param kafkaUiAppName string = 'kafka-ui'
Při nasazování šablony bicep v libovolné fázi můžete použít az deployment group create
příkaz.
az deployment group create -g $RESOURCE_GROUP \
--query 'properties.outputs.*.value' \
--template-file kafka-dev.bicep
Definujte počáteční proměnné.
AZURE_ENV_NAME="azd-kafka-dev"
LOCATION="northcentralus"
Pomocí hodnot inicializujete minimální azd
šablonu.
azd init \
--environment "$AZURE_ENV_NAME" \
--location "$LOCATION" \
--no-prompt
Poznámka:
AZURE_ENV_NAME
liší se od názvu prostředí Container App. V tomto kontextu platí pro AZURE_ENV_NAME
azd
všechny prostředky v šabloně. Mezi tyto prostředky patří prostředky, které nejsou přidružené ke službě Container Apps. Pro prostředí Container Apps vytvoříte jiný název.
Dále vytvořte infra/main.bicep
a definujte parametry pro pozdější použití.
param appEnvironmentName string = 'aca-env'
param kafkaSvcName string = 'kafka01'
param kafkaCliAppName string = 'kafka-cli-app'
param kafkaUiAppName string = 'kafka-ui'
Přihlásí se k Azure.
az login
Upgradujte rozhraní příkazového řádku na nejnovější verzi.
az upgrade
Upgradujte Bicep na nejnovější verzi.
az bicep upgrade
Přidejte th containerapp
extension.
az extension add --name containerapp --upgrade
Zaregistrujte požadované obory názvů.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Vytvoření prostředí Container Apps
Vytvořte skupinu prostředků.
az group create \
--name "$RESOURCE_GROUP" \
--location "$LOCATION"
az group create \
--name "$RESOURCE_GROUP" \
--location "$LOCATION"
Pro správu skupin prostředků v azd
nástroji . Příkaz azd
získá skupinu prostředků z AZURE_ENV_NAME
/--environment
hodnoty.
Pomocí příkazu můžete otestovat minimální šablonu up
.
azd up
Spuštěním tohoto příkazu vytvoříte prázdnou skupinu prostředků.
Vytvořte prostředí Container Apps.
az containerapp env create \
--name "$ENVIRONMENT" \
--resource-group "$RESOURCE_GROUP" \
--location "$LOCATION"
Do souboru přidejte následující hodnoty kafka-dev.bicep
.
resource appEnvironment 'Microsoft.App/managedEnvironments@2023-04-01-preview' = {
name: appEnvironmentName
location: location
properties: {
appLogsConfiguration: {
destination: 'azure-monitor'
}
}
}
Azure CLI automaticky vytvoří pracovní prostor služby Log Analytics pro každé prostředí. Pokud chcete vygenerovat pracovní prostor pomocí šablony Bicep, explicitně deklarujete prostředí a propojit ho v šabloně. Díky tomuto kroku bude vaše nasazení stabilnější, i když za cenu malého podrobného nasazení.
Přidejte do svého prostředí následující hodnoty.
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: '${appEnvironmentName}-log-analytics'
location: location
properties: {
sku: {
name: 'PerGB2018'
}
}
}
resource appEnvironment 'Microsoft.App/managedEnvironments@2023-04-01-preview' = {
name: appEnvironmentName
location: location
properties: {
appLogsConfiguration: {
destination: 'log-analytics'
logAnalyticsConfiguration: {
customerId: logAnalytics.properties.customerId
sharedKey: logAnalytics.listKeys().primarySharedKey
}
}
}
}
Šablony používané azd
pomocí modulů bicep.
Vytvořte složku s názvem ./infra/core/host
a pak vytvořte ./infra/core/host/container-apps-environment.bicep
modul s následujícím obsahem.
param name string
param location string = resourceGroup().location
param tags object = {}
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: '${name}-log-analytics'
location: location
tags: tags
properties: {
sku: {
name: 'PerGB2018'
}
}
}
resource appEnvironment 'Microsoft.App/managedEnvironments@2023-04-01-preview' = {
name: name
location: location
tags: tags
properties: {
appLogsConfiguration: {
destination: 'log-analytics'
logAnalyticsConfiguration: {
customerId: logAnalytics.properties.customerId
sharedKey: logAnalytics.listKeys().primarySharedKey
}
}
}
}
output appEnvironmentId string = appEnvironment.id
V ./infra/main.bicep
souboru načtěte modul pomocí následujících hodnot.
module appEnvironment './core/host/container-apps-environment.bicep' = {
name: 'appEnvironment'
scope: rg
params: {
name: appEnvironmentName
location: location
tags: tags
}
}
Nasaďte šablonu spuštěním příkazu azd up
.
Vytvoření služby Apache Kafka
Vytvořte službu Apache Kafka.
ENVIRONMENT_ID=$(az containerapp env show \
--name "$ENVIRONMENT" \
--resource-group "$RESOURCE_GROUP" \
--output tsv \
--query id)
Přidejte do kafka-dev.bicep
souboru následující hodnoty .
resource kafka 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: kafkaSvcName
location: location
properties: {
environmentId: appEnvironment.id
configuration: {
service: {
type: 'kafka'
}
}
}
}
output kafkaLogs string = 'az containerapp logs show -n ${kafka.name} -g ${resourceGroup().name} --follow --tail 30'
Vytvořte ./infra/core/host/container-app-service.bicep
soubor modulu s následujícím obsahem.
param name string
param location string = resourceGroup().location
param tags object = {}
param environmentId string
param serviceType string
resource service 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: name
location: location
tags: tags
properties: {
environmentId: environmentId
configuration: {
service: {
type: serviceType
}
}
}
}
output serviceId string = service.id
Potom aktualizujte ./infra/main.bicep
soubor modulu následujícím deklarací.
module kafka './core/host/container-app-service.bicep' = {
name: 'kafka'
scope: rg
params: {
name: kafkaSvcName
location: location
tags: tags
environmentId: appEnvironment.outputs.appEnvironmentId
serviceType: 'kafka'
}
}
Nasazení šablony
az containerapp add-on kafka create \
--name "$KAFKA_SVC" \
--resource-group "$RESOURCE_GROUP" \
--environment "$ENVIRONMENT"
az deployment group create -g $RESOURCE_GROUP \
--query 'properties.outputs.*.value' \
--template-file kafka-dev.bicep
Tip
kafkaLogs
Výstupem je příkaz rozhraní příkazového řádku, který vám po dokončení nasazení pomůže zobrazit protokoly kafka. Spuštěním příkazu můžete zobrazit protokoly inicializace nové služby Kafka.
Zobrazení výstupu protokolu z instance Kafka
logs
K zobrazení zpráv protokolu použijte příkaz.
az containerapp logs show \
--name $KAFKA_SVC \
--resource-group $RESOURCE_GROUP \
--follow --tail 30
Předchozí příklad Bicep obsahuje výstup pro příkaz k zobrazení protokolů.
Příklad:
[
"az containerapp logs show -n kafka01 -g kafka-dev --follow --tail 30"
]
Pokud příkaz nemáte, můžete pomocí názvu služby zobrazit protokoly pomocí rozhraní příkazového řádku.
az containerapp logs show \
--name $KAFKA_SVC \
--resource-group $RESOURCE_GROUP \
--follow --tail 30
logs
K zobrazení zpráv protokolu použijte příkaz.
az containerapp logs show \
--name kafka01 \
--resource-group $RESOURCE_GROUP \
--follow --tail 30
Vytvoření aplikace pro otestování služby
Když vytvoříte aplikaci, nastavíte ji tak, aby používala ./kafka-topics.sh
./kafka-console-producer.sh
, a kafka-console-consumer.sh
aby se připojila k instanci Kafka.
Vytvořte kafka-cli-app
aplikaci, která je svázaná se službou Kafka.
az containerapp create \
--name "$KAFKA_CLI_APP" \
--image mcr.microsoft.com/k8se/services/kafka:3.4 \
--bind "$KAFKA_SVC" \
--environment "$ENVIRONMENT" \
--resource-group "$RESOURCE_GROUP" \
--min-replicas 1 \
--max-replicas 1 \
--command "/bin/sleep" "infinity"
Do hodnot přidejte následující hodnoty kafka-dev.bicep
.
resource kafkaCli 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: kafkaCliAppName
location: location
properties: {
environmentId: appEnvironment.id
template: {
serviceBinds: [
{
serviceId: kafka.id
}
]
containers: [
{
name: 'kafka-cli'
image: 'mcr.microsoft.com/k8se/services/kafka:3.4'
command: [ '/bin/sleep', 'infinity' ]
}
]
scale: {
minReplicas: 1
maxReplicas: 1
}
}
}
}
output kafkaCliExec string = 'az containerapp exec -n ${kafkaCli.name} -g ${resourceGroup().name} --command /bin/bash'
Tip
Výstupem kafkaCliExec
je příkaz rozhraní příkazového řádku, který můžete spustit, abyste ověřili, že je aplikace správně nasazená.
Vytvořte modul ./infra/core/host/container-app.bicep
pod a přidejte následující hodnoty.
param name string
param location string = resourceGroup().location
param tags object = {}
param environmentId string
param serviceId string = ''
param containerName string
param containerImage string
param containerCommands array = []
param containerArgs array = []
param minReplicas int
param maxReplicas int
param targetPort int = 0
param externalIngress bool = false
resource app 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: name
location: location
tags: tags
properties: {
environmentId: environmentId
configuration: {
ingress: targetPort > 0 ? {
targetPort: targetPort
external: externalIngress
} : null
}
template: {
serviceBinds: !empty(serviceId) ? [
{
serviceId: serviceId
}
] : null
containers: [
{
name: containerName
image: containerImage
command: !empty(containerCommands) ? containerCommands : null
args: !empty(containerArgs) ? containerArgs : null
}
]
scale: {
minReplicas: minReplicas
maxReplicas: maxReplicas
}
}
}
}
Teď použijte modul ./infra/main.bicep
přidáním následujících hodnot.
module kafkaCli './core/host/container-app.bicep' = {
name: 'kafkaCli'
scope: rg
params: {
name: kafkaCliAppName
location: location
tags: tags
environmentId: appEnvironment.outputs.appEnvironmentId
serviceId: kafka.outputs.serviceId
containerImage: 'mcr.microsoft.com/k8se/services/kafka:3.4'
containerName: 'kafka-cli'
maxReplicas: 1
minReplicas: 1
containerCommands: [ '/bin/sleep', 'infinity' ]
}
}
Nasaďte šablonu pomocí azd up
souboru .
azd up
Spuštěním příkazu rozhraní příkazového řádku exec
se připojte k testovací aplikaci.
az containerapp exec \
--name $KAFKA_CLI_APP \
--resource-group $RESOURCE_GROUP \
--command /bin/bash
Předchozí příklad Bicep obsahuje výstup, který ukazuje, jak aplikaci spustit.
Příklad:
[
"az containerapp logs show -n kafka01 -g kafka-dev --follow --tail 30",
"az containerapp exec -n kafka-cli-app -g kafka-dev --command /bin/bash"
]
Pokud příkaz nemáte, můžete aplikaci spustit pomocí příkazu pomocí exec
názvu aplikace.
az containerapp exec \
--name $KAFKA_CLI_APP \
--resource-group $RESOURCE_GROUP \
--command /bin/bash
az containerapp exec \
--name kafka-cli-app \
--resource-group $RESOURCE_GROUP \
--command /bin/bash
Při použití --bind
nebo serviceBinds
v testovací aplikaci se informace o připojení vloží do aplikačního prostředí. Jakmile se připojíte k testovacímu kontejneru, můžete zkontrolovat hodnoty pomocí env
příkazu.
env | grep "^KAFKA_"
KAFKA_SECURITYPROTOCOL=SASL_PLAINTEXT
KAFKA_BOOTSTRAPSERVER=kafka01:9092
KAFKA_HOME=/opt/kafka
KAFKA_PROPERTIES_SASL_JAAS_CONFIG=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka-user" password="7dw..." user_kafka-user="7dw..." ;
KAFKA_BOOTSTRAP_SERVERS=kafka01:9092
KAFKA_SASLUSERNAME=kafka-user
KAFKA_SASL_USER=kafka-user
KAFKA_VERSION=3.4.0
KAFKA_SECURITY_PROTOCOL=SASL_PLAINTEXT
KAFKA_SASL_PASSWORD=7dw...
KAFKA_SASLPASSWORD=7dw...
KAFKA_SASL_MECHANISM=PLAIN
KAFKA_SASLMECHANISM=PLAIN
Slouží kafka-topics.sh
k vytvoření tématu události.
Vytvořte soubor kafka.props
.
echo "security.protocol=$KAFKA_SECURITY_PROTOCOL" >> kafka.props && \
echo "sasl.mechanism=$KAFKA_SASL_MECHANISM" >> kafka.props && \
echo "sasl.jaas.config=$KAFKA_PROPERTIES_SASL_JAAS_CONFIG" >> kafka.props
Vytvořte quickstart-events
téma události.
/opt/kafka/bin/kafka-topics.sh \
--create --topic quickstart-events \
--bootstrap-server $KAFKA_BOOTSTRAP_SERVERS \
--command-config kafka.props
# Created topic quickstart-events.
/opt/kafka/bin/kafka-topics.sh \
--describe --topic quickstart-events \
--bootstrap-server $KAFKA_BOOTSTRAP_SERVERS \
--command-config kafka.props
# Topic: quickstart-events TopicId: lCkTKmvZSgSUCHozhhvz1Q PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824
# Topic: quickstart-events Partition: 0 Leader: 1 Replicas: 1 Isr: 1
Slouží kafka-console-producer.sh
k zápisu událostí do tématu.
/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
Poznámka:
Příkaz ./kafka-console-producer.sh
vás vyzve k zápisu událostí pomocí >
příkazu . Napište některé události, jak je znázorněno, a pak se stisknutím klávesy CTRL-C
ukončete.
Slouží kafka-console-consumer.sh
ke čtení událostí z tématu.
/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
Použití služby pro vývoj s existující aplikací
Pokud už máte aplikaci, která používá Apache Kafka, můžete změnit způsob načtení informací o připojení.
Nejprve vytvořte následující proměnné prostředí.
KAFKA_HOME=/opt/kafka
KAFKA_PROPERTIES_SASL_JAAS_CONFIG=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka-user" password="7dw..." user_kafka-user="7dw..." ;
KAFKA_BOOTSTRAP_SERVERS=kafka01:9092
KAFKA_SASL_USER=kafka-user
KAFKA_VERSION=3.4.0
KAFKA_SECURITY_PROTOCOL=SASL_PLAINTEXT
KAFKA_SASL_PASSWORD=7dw...
KAFKA_SASL_MECHANISM=PLAIN
Pomocí rozhraní příkazového řádku (nebo Bicep) můžete aplikaci aktualizovat a přidat --bind $KAFKA_SVC
tak, aby používala službu pro vývoj.
Vazba na službu pro vývoj
Nasaďte kafka-ui pro zobrazení a správu instance Kafka.
Viz bicep nebo azd
příklad.
resource kafkaUi 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: kafkaUiAppName
location: location
properties: {
environmentId: appEnvironment.id
configuration: {
ingress: {
external: true
targetPort: 8080
}
}
template: {
serviceBinds: [
{
serviceId: kafka.id
name: 'kafka'
}
]
containers: [
{
name: 'kafka-ui'
image: 'docker.io/provectuslabs/kafka-ui:latest'
command: [
'/bin/sh'
]
args: [
'-c'
'''export KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="$KAFKA_BOOTSTRAP_SERVERS" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG="$KAFKA_PROPERTIES_SASL_JAAS_CONFIG" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM="$KAFKA_SASL_MECHANISM" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL="$KAFKA_SECURITY_PROTOCOL" && \
java $JAVA_OPTS -jar kafka-ui-api.jar'''
]
resources: {
cpu: json('1.0')
memory: '2.0Gi'
}
}
]
}
}
}
output kafkaUiUrl string = 'https://${kafkaUi.properties.configuration.ingress.fqdn}'
Příkaz Bicep vrátí adresu URL. Zkopírujte tuto adresu URL do prohlížeče a navštivte nasazený web.
Aktualizujte ./infra/main.bicep
následující hodnoty.
module kafkaUi './core/host/container-app.bicep' = {
name: 'kafka-ui'
scope: rg
params: {
name: kafkaUiAppName
location: location
tags: tags
environmentId: appEnvironment.outputs.appEnvironmentId
serviceId: kafka.outputs.serviceId
containerImage: 'docker.io/provectuslabs/kafka-ui:latest'
containerName: 'kafka-ui'
maxReplicas: 1
minReplicas: 1
containerCommands: [ '/bin/sh' ]
containerArgs: [
'-c'
'''export KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="$KAFKA_BOOTSTRAP_SERVERS" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG="$KAFKA_PROPERTIES_SASL_JAAS_CONFIG" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM="$KAFKA_SASL_MECHANISM" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL="$KAFKA_SECURITY_PROTOCOL" && \
java $JAVA_OPTS -jar kafka-ui-api.jar'''
]
targetPort: 8080
externalIngress: true
}
}
Nasaďte šablonu pomocí azd up
souboru .
azd up
Nasazení všech prostředků
Pokud chcete nasadit všechny prostředky najednou, použijte následující příklady.
Bicep
Následující šablona Bicep obsahuje všechny prostředky v tomto kurzu.
Soubor s tímto obsahem kafka-dev.bicep
můžete vytvořit.
targetScope = 'resourceGroup'
param location string = resourceGroup().location
param appEnvironmentName string = 'aca-env'
param kafkaSvcName string = 'kafka01'
param kafkaCliAppName string = 'kafka-cli-app'
param kafkaUiAppName string = 'kafka-ui'
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: '${appEnvironmentName}-log-analytics'
location: location
properties: {
sku: {
name: 'PerGB2018'
}
}
}
resource appEnvironment 'Microsoft.App/managedEnvironments@2023-04-01-preview' = {
name: appEnvironmentName
location: location
properties: {
appLogsConfiguration: {
destination: 'log-analytics'
logAnalyticsConfiguration: {
customerId: logAnalytics.properties.customerId
sharedKey: logAnalytics.listKeys().primarySharedKey
}
}
}
}
resource kafka 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: kafkaSvcName
location: location
properties: {
environmentId: appEnvironment.id
configuration: {
service: {
type: 'kafka'
}
}
}
}
resource kafkaCli 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: kafkaCliAppName
location: location
properties: {
environmentId: appEnvironment.id
template: {
serviceBinds: [
{
serviceId: kafka.id
}
]
containers: [
{
name: 'kafka-cli'
image: 'mcr.microsoft.com/k8se/services/kafka:3.4'
command: [ '/bin/sleep', 'infinity' ]
}
]
scale: {
minReplicas: 1
maxReplicas: 1
}
}
}
}
resource kafkaUi 'Microsoft.App/containerApps@2023-04-01-preview' = {
name: kafkaUiAppName
location: location
properties: {
environmentId: appEnvironment.id
configuration: {
ingress: {
external: true
targetPort: 8080
}
}
template: {
serviceBinds: [
{
serviceId: kafka.id
name: 'kafka'
}
]
containers: [
{
name: 'kafka-ui'
image: 'docker.io/provectuslabs/kafka-ui:latest'
command: [
'/bin/sh'
]
args: [
'-c'
'''export KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS="$KAFKA_BOOTSTRAP_SERVERS" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG="$KAFKA_PROPERTIES_SASL_JAAS_CONFIG" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM="$KAFKA_SASL_MECHANISM" && \
export KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL="$KAFKA_SECURITY_PROTOCOL" && \
java $JAVA_OPTS -jar kafka-ui-api.jar'''
]
resources: {
cpu: json('1.0')
memory: '2.0Gi'
}
}
]
}
}
}
output kafkaUiUrl string = 'https://${kafkaUi.properties.configuration.ingress.fqdn}'
output kafkaCliExec string = 'az containerapp exec -n ${kafkaCli.name} -g ${resourceGroup().name} --command /bin/bash'
output kafkaLogs string = 'az containerapp logs show -n ${kafka.name} -g ${resourceGroup().name} --follow --tail 30'
K nasazení šablony použijte Azure CLI.
RESOURCE_GROUP="kafka-dev"
LOCATION="northcentralus"
az group create \
--name "$RESOURCE_GROUP" \
--location "$LOCATION"
az deployment group create -g $RESOURCE_GROUP \
--query 'properties.outputs.*.value' \
--template-file kafka-dev.bicep
Azure Developer CLI
Konečná šablona je k dispozici na GitHubu.
Slouží azd up
k nasazení šablony.
git clone https://github.com/Azure-Samples/aca-dev-service-kafka-azd
cd aca-dev-service-kafka-azd
azd up
Vyčištění prostředků
Jakmile budete hotovi, spuštěním následujícího příkazu odstraňte skupinu prostředků, která obsahuje vaše prostředky Container Apps.
Upozornění
Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto kurzu existují v zadané skupině prostředků, odstraní se také.
az group delete \
--resource-group $RESOURCE_GROUP