Kurz: nasazení aplikace pro zpracování na pozadí pomocí Azure Container Apps Preview

Azure Container Apps umožňuje nasazovat aplikace bez nutnosti vystavení veřejných koncových bodů. v tomto kurzu nasadíte ukázkovou aplikaci, která čte zprávy z fronty Azure Storage a protokoluje zprávy v pracovním prostoru Azure log Analytics. pomocí pravidel škálování aplikací kontejneru se aplikace může škálovat nahoru a dolů na základě Azure Storage délky fronty. V případě, že ve frontě nejsou žádné zprávy, aplikace kontejneru škáluje dolů na nulu.

Získáte informace o těchto tématech:

  • Vytvoření prostředí kontejnerových aplikací pro nasazení kontejnerových aplikací
  • vytvoření fronty Azure Storage pro posílání zpráv do aplikace kontejneru
  • Nasazení aplikace pro zpracování na pozadí jako aplikace typu kontejner
  • Ověřte, že aplikace kontejneru zpracovává zprávy fronty.

Požadavky

K dokončení tohoto kurzu se vyžadují tyto položky:

  • Azure CLI: v místním počítači musíte mít nainstalovanou verzi Azure CLI 2.29.0 nebo novější.

Nastavení

Tento kurz využívá následující proměnné prostředí:

RESOURCE_GROUP="my-containerapps"
LOCATION="canadacentral"
CONTAINERAPPS_ENVIRONMENT="containerapps-env"
LOG_ANALYTICS_WORKSPACE="containerapps-logs"

Vytvořte proměnnou pro název svého účtu úložiště.

STORAGE_ACCOUNT="<MY_STORAGE_ACCOUNT_NAME>"

<storage account name>Před spuštěním tohoto fragmentu kódu nahraďte zástupný text vlastní hodnotou. názvy účtů Storage musí být v rámci Azure jedinečné, mít délku 3 až 24 znaků a můžou obsahovat jenom číslice a malá písmena. Účet úložiště se vytvoří v následujícím kroku.

Potom se do Azure přihlaste z rozhraní příkazového řádku.

Spusťte následující příkaz a postupujte podle pokynů k dokončení procesu ověřování.

az login

Abyste měli jistotu, že používáte nejnovější verzi rozhraní příkazového řádku, použijte upgrade příkaz.

az upgrade

V dalším kroku nainstalujte do CLI rozšíření Azure Container Apps.

az extension add \
  --source https://workerappscliextension.blob.core.windows.net/azure-cli-extension/containerapp-0.2.0-py2.py3-none-any.whl

Teď, když je rozšíření nainstalované, zaregistrujte Microsoft.Web obor názvů.

az provider register --namespace Microsoft.Web

Pomocí skupiny prostředků uspořádáte služby týkající se vaší nové aplikace typu kontejner. Vytvořte skupinu pomocí následujícího příkazu:

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

S upgradovaným rozhraním příkazového řádku a novou skupinou prostředků můžete vytvořit prostředí kontejnerových aplikací a nasadit aplikaci typu kontejner.

Vytvoření prostředí

Prostředí Azure Container Apps slouží jako zabezpečená hranice kolem skupiny aplikací typu kontejner. Různé aplikace kontejneru ve stejném prostředí jsou nasazené ve stejné virtuální síti a protokoly zápisu do stejného Log Analytics pracovního prostoru.

Azure Log Analytics slouží k monitorování aplikace typu kontejner, která se vyžaduje při vytváření prostředí kontejnerových aplikací.

Pomocí následujícího příkazu vytvořte nový pracovní prostor Log Analytics:

az monitor log-analytics workspace create \
  --resource-group $RESOURCE_GROUP \
  --workspace-name $LOG_ANALYTICS_WORKSPACE

Dále načtěte ID klienta Log Analytics a tajný klíč klienta. Ujistěte se, že každý dotaz spouštíte samostatně, abyste měli dostatek času na dokončení žádosti.

LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az monitor log-analytics workspace show --query customerId -g $RESOURCE_GROUP -n $LOG_ANALYTICS_WORKSPACE --out json | tr -d '"'`
LOG_ANALYTICS_WORKSPACE_CLIENT_SECRET=`az monitor log-analytics workspace get-shared-keys --query primarySharedKey -g $RESOURCE_GROUP -n $LOG_ANALYTICS_WORKSPACE --out json | tr -d '"'`

Jednotlivé aplikace kontejneru se nasazují do prostředí Azure Container Apps. Chcete-li vytvořit prostředí, spusťte následující příkaz:

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --logs-workspace-id $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --logs-workspace-key $LOG_ANALYTICS_WORKSPACE_CLIENT_SECRET \
  --location "$LOCATION"

Nastavení fronty úložiště

Vytvořit účet služby Azure Storage

az storage account create \
  --name $STORAGE_ACCOUNT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --sku Standard_RAGRS \
  --kind StorageV2

Potom Získejte připojovací řetězec fronty.

QUEUE_CONNECTION_STRING=`az storage account show-connection-string -g $RESOURCE_GROUP --name $STORAGE_ACCOUNT --query connectionString --out json | tr -d '"'`

Nyní můžete vytvořit frontu zpráv.

az storage queue create \
  --name "myqueue" \
  --account-name $STORAGE_ACCOUNT \
  --connection-string $QUEUE_CONNECTION_STRING

Nakonec můžete odeslat zprávu do fronty.

az storage message put \
  --content "Hello Queue Reader App" \
  --queue-name "myqueue" \
  --connection-string $QUEUE_CONNECTION_STRING

Nasazení aplikace na pozadí

Vytvořte soubor s názvem Queue. JSON a vložte do souboru následující konfigurační kód.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "defaultValue": "canadacentral",
            "type": "String"
        },
        "environment_name": {
            "defaultValue": "",
            "type": "String"
        },
        "queueconnection": {
            "defaultValue": "",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
    {
        "name": "queuereader",
        "type": "Microsoft.Web/containerApps",
        "apiVersion": "2021-03-01",
        "kind": "containerapp",
        "location": "[parameters('location')]",
        "properties": {
            "kubeEnvironmentId": "[resourceId('Microsoft.Web/kubeEnvironments', parameters('environment_name'))]",
            "configuration": {
                "activeRevisionsMode": "single",
                "secrets": [
                {
                    "name": "queueconnection",
                    "value": "[parameters('queueconnection')]"
                }]
            },
            "template": {
                "containers": [
                    {
                        "image": "mcr.microsoft.com/azuredocs/containerapps-queuereader",
                        "name": "queuereader",
                        "env": [
                            {
                                "name": "QueueName",
                                "value": "myqueue"
                            },
                            {
                                "name": "QueueConnectionString",
                                "secretref": "queueconnection"
                            }
                        ]
                    }
                ],
                "scale": {
                    "minReplicas": 1,
                    "maxReplicas": 10,
                    "rules": [
                        {
                            "name": "myqueuerule",
                            "azureQueue": {
                                "queueName": "myqueue",
                                "queueLength": 100,
                                "auth": [
                                    {
                                        "secretRef": "queueconnection",
                                        "triggerParameter": "connection"
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
        }
    }]
}

Nyní můžete vytvořit a nasadit aplikaci kontejneru.

az deployment group create --resource-group "$RESOURCE_GROUP" \
  --template-file ./queue.json \
  --parameters \
    environment_name="$CONTAINERAPPS_ENVIRONMENT" \
    queueconnection="$QUEUE_CONNECTION_STRING" \
    location="$LOCATION"

Tento příkaz nasadí ukázkovou aplikaci ze veřejné image kontejneru s názvem mcr.microsoft.com/azuredocs/containerapps-queuereader a nastaví tajné klíče a prostředí používané aplikací.

Aplikace škáluje až 10 replik na základě délky fronty, jak je definováno v scale části šablony ARM.

Ověřit výsledek

aplikace typu kontejner spuštěná jako proces na pozadí vytváří protokoly záznamů v Log analytics při doručování zpráv z fronty Azure Storage. Než budete moct dotazovat data protokolu, možná budete muset několik minut počkat, než se analýza poprvé dorazí.

Spusťte následující příkaz pro zobrazení protokolovaných zpráv. Tento příkaz vyžaduje rozšíření Log Analytics, takže při vyžádání Přijměte výzvu k instalaci rozšíření.

az monitor log-analytics query \
  --workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'queuereader' and Log_s contains 'Message ID'" \
  --out table

Tip

Máte problémy? po otevření problému v úložišti kontejnerových aplikací Azurenám dejte informace o GitHub.

Vyčištění prostředků

Jakmile budete hotovi, vyčistěte prostředky kontejnerových aplikací spuštěním následujícího příkazu, který odstraní skupinu prostředků.

az group delete \
  --resource-group $RESOURCE_GROUP

Tento příkaz odstraní celou skupinu prostředků, včetně instance kontejnerových aplikací, účtu úložiště, Log Analytics pracovního prostoru a dalších prostředků ve skupině prostředků.