Aracılığıyla paylaş


Azure Container Apps'te JavaScript'e genel bakış

Azure Container Apps, kapsayıcılı JavaScript uygulamalarını bulutta çalıştırabilir ve uygulamalarınızı dağıtmaya yönelik esnek seçenekler sunar.

Konfigürasyon

Azure Container Apps, ortam değişkenlerini ayarlama, verimli Dockerfile'lar tasarlama ve uygulamanızın derleme sürecini düzenleme gibi etkili kapsayıcılama aracılığıyla JavaScript uygulamalarınızın dağıtımını akışa almanızı sağlar.

Ortam Değişkenleri

Ortam değişkenleri uygulamanızı yapılandırmak için çok önemlidir. Bu değişkenleri yerel olarak yönetmek ve Azure Key Vault gibi bir hizmetle üretimde güvenli bir şekilde yönetildiklerinden emin olmak için bir .env dosya kullanın.

Aşağıdaki örnekte, uygulamanız için değişkenlerin nasıl oluşturulacağı gösterilmektedir.

# .env
NODE_ENV=production
PORT=3000
AZURE_COSMOS_DB_ENDPOINT=https://<YOUR_COSMOSDB_RESOURCE_NAME>.documents.azure.com:443/

Konteyner

İyi yapılandırılmış bir Dockerfile, uygulamanızı kapsayıcıya alma açısından önemlidir:

  • Temel Dockerfile kullanma: Birden çok proje ortak bir kurulumu paylaşıyorsa, bu yaygın adımları içeren bir temel Dockerfile oluşturabilirsiniz. Ardından her projenin Dockerfile dosyası bu temel görüntüyle FROM başlayabilir ve projeye özgü yapılandırmalar ekleyebilir.

  • Derleme bağımsız değişkenlerinin parametreleştirilmesi: Dockerfile'ınızı daha esnek hale getirmek için derleme bağımsız değişkenlerini (ARG) kullanabilirsiniz. Geliştirme, ara ortam veya üretim için oluşturduğunuzda bu parametreler için farklı değerler geçirebilirsiniz.

  • İyileştirilmiş Node.js temel görüntü: Uygun bir Node.js temel görüntü kullandığınızdan emin olun. Ek yükü azaltmak için Alp çeşitleri gibi daha küçük, iyileştirilmiş görüntüler kullanmayı göz önünde bulundurun.

  • En Az Dosya – Yalnızca Temel Bileşenleri Kopyala: Kapsayıcınıza yalnızca gerekli dosyaları kopyalamaya odaklanın. .dockerignore dosyası oluşturun, böylece geliştirme dosyaları .env ve node_modules gibi yerlere kopyalanmamış olur. Bu dosya, geliştiricilerin gereksiz dosyaları kopyaladığı durumlarda derlemeleri hızlandırmaya yardımcı olur.

  • Derleme ve çalışma zamanını çok aşamalı derlemelerle ayırın: Derleme ortamını çalışma zamanı ortamından ayırarak yalın bir son görüntü oluşturmak için çok aşamalı derlemeleri kullanın.

  • Derleme ve paketleme yoluyla yapıtları önceden oluşturma: Uygulama yapıtlarınızı çalışma zamanı aşamasına kopyalamadan önce önceden derleme (TypeScript derleme veya JavaScript paketleme gibi) görüntü boyutunu en aza indirir, kapsayıcı dağıtımını hızlandırabilir ve soğuk başlatma performansını iyileştirebilir. Dockerfile'ınızdaki yönergelerin dikkatli bir şekilde sıralanması, önbelleğe alma ve yeniden oluşturma sürelerini de iyileştirir.

  • Geliştirme ortamları için Docker Compose: Docker Compose, çok kapsayıcılı Docker uygulamaları tanımlamanızı ve çalıştırmanızı sağlar. Bu çok kapsayıcılı yaklaşım, geliştirme ortamlarını ayarlamak için kullanışlıdır. Oluşturma dosyasına derleme bağlamını ve Dockerfile'ı ekleyebilirsiniz. Bu kapsülleme düzeyi, gerektiğinde farklı hizmetler için farklı Dockerfile'lar kullanmanıza olanak tanır.

Temel Dockerfile

Bu dosya, Node.js görüntüleriniz için ortak bir başlangıç noktası görevi görür. Dockerfiles'da bu temel görüntüye başvuran bir FROM yönergeyle kullanabilirsiniz. Görüntünün en son ve güvenli sürümünü desteklemek için bir sürüm numarası veya commit kullanın.

# Dockerfile.base

FROM node:22-alpine

# Set the working directory
WORKDIR /usr/src/app

# Define build arguments with default values
ARG PORT_DEFAULT=3000
ARG ENABLE_DEBUG_DEFAULT=false

# Set environment variables using the build arguments
ENV PORT=${PORT_DEFAULT}
ENV ENABLE_DEBUG=${ENABLE_DEBUG_DEFAULT}

# Copy package manifests and install dependencies
COPY package*.json ./
RUN npm install

# Expose the application and debugging ports
EXPOSE $PORT
EXPOSE 9229

# This image focuses on common steps; project-specific Dockerfiles can extend this.

Derleme işlemi sırasında bayrağını --build-arg kullanarak değerleri geçirdiğinizde, geçirilen değerler Dockerfile dosyanızdaki sabit kodlanmış varsayılan değerleri geçersiz kılar.

Örneğin:

docker build \
  --build-arg PORT_DEFAULT=4000 \
  --build-arg ENABLE_DEBUG_DEFAULT=true \
  --tag <IMAGE>:<TAG> \
  --file Dockerfile.base .

Bu örnekte, ortam değişkenleri PORT ve ENABLE_DEBUG varsayılan değerleri yerine açık değerlere ayarlanır.

Kapsayıcı görüntüsü etiketleme kuralları, latest kullanımı gibi, bir gelenektir. Kapsayıcı görüntülerini etiketleme ve sürüm oluşturma önerileri hakkında daha fazla bilgi edinin.

Docker Compose ile geliştirme ortamını ayarlama

Aşağıdaki örnek yapılandırma, anlık yeniden yükleme ve yerel kaynak eşitleme için birim montajları ile birlikte ayrılmış bir geliştirme Dockerfile (Dockerfile.dev) kullanır.

version: "3.8"
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.base
      args:
        PORT_DEFAULT: ${PORT:-3000}
        ENABLE_DEBUG_DEFAULT: ${ENABLE_DEBUG:-false}
    ports:
      - "${PORT:-3000}:3000"
      - "9229:9229"  # Expose debug port if needed
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    environment:
      - NODE_ENV=development
      - PORT=${PORT:-3000}
      - ENABLE_DEBUG=${ENABLE_DEBUG:-false}

Docker Compose'u özel değerlerle başlatmak için, komut satırında ortam değişkenlerini dışarı aktarabilirsiniz. Örneğin:

PORT=4000 ENABLE_DEBUG=true docker compose up

Üretim Dockerfile

Bu çok aşamalı Dockerfile uygulamanızı oluşturur ve bir yalın çalışma zamanı görüntüsü oluşturur. Dosyanızın .dockerignore halihazırda kaynak kodunuzda bulunduğundan emin olun, böylece COPY . . komutu, üretim ortamınıza ihtiyaç duymadığınız geliştirme ortamına özgü dosyaları kopyalamaz.

# Stage 1: Builder
FROM node:22 AS build

WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .

# Build your project (e.g., compile TypeScript or bundle JavaScript)
RUN npm run build

# Stage 2: Runtime
FROM my-base-image:latest AS runtime

WORKDIR /usr/src/app

# Copy only the compiled output and essential files from the build stage
COPY --from=build /usr/src/app/dist ./dist
COPY --from=build /usr/src/app/package*.json ./

# Install only production dependencies
RUN npm ci --omit=dev

# Copy the entrypoint script for remote debugging
COPY entrypoint.sh /usr/src/app/entrypoint.sh
RUN chmod +x /usr/src/app/entrypoint.sh

# Expose the application port (using the PORT environment variable) and the debug port (9229)
EXPOSE $PORT
EXPOSE 9229

# Use the entrypoint script to conditionally enable debugging
ENTRYPOINT ["sh", "/usr/src/app/entrypoint.sh"]

Giriş noktası betiği , uzaktan hata ayıklama için kapsayıcı uygulamanıza bağlanmanızı sağlar.

Özel ortam değişkenleriyle yerleşik üretim görüntüsünden bir kapsayıcı çalıştırmak için şunu çalıştırın:

docker run \
  --env PORT=4000 \
  --env ENABLE_DEBUG=true \
  --publish 4000:4000 \
  --publish 9229:9229 \
  <IMAGE>:<TAG>

Üretim derlemeleri için doğru sürüm etiketini kullandığınızdan emin olun, bu etiket latest olmayabilir. Kapsayıcı imajı etiketleme yöntemleri, latest gibi kullanımlar bir yöntemdir. Kapsayıcı görüntülerini etiketleme ve sürüm oluşturma önerileri hakkında daha fazla bilgi edinin.

Dağıtım

Sürekli tümleştirmeyi/sürekli dağıtımı (CI/CD) desteklemek için GitHub Actions, Azure DevOps veya başka bir CI/CD aracını kullanarak dağıtım işlemini otomatikleştirmek için bir CI/CD işlem hattı ayarlayın.

# .github/workflows/deploy.yml
name: Deploy to Azure

on:
push:
    branches:
    - main

jobs:
build-and-deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
          node-version: '22'

    - name: Install dependencies
      run: npm ci

    - name: Build the app
      run: npm run build

    - name: Log in to Azure
      uses: azure/login@v2
      with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Deploy to Azure Container Apps
      run: |
          az containerapp up \
          --name my-container-app \
          --resource-group my-resource-group \
          --image my-image:my_tag \
          --environment my-environment \
          --cpu 1 --memory 2Gi \
          --env-vars NODE_ENV=production PORT=3000

Docker Kayıt Defteri'ni kullandığınızda kayıt defterinizde oturum açın ve Docker görüntülerinizi Azure Container Registry (ACR) veya Docker Hub gibi bir kapsayıcı kayıt defterine gönderin.

# Tag the image
docker tag \
  <IMAGE>:<TAG> \
  <AZURE_REGISTRY>.azurecr.io/<IMAGE>:<TAG>

# Push the image
docker push <AZURE_REGISTRY>.azurecr.io/<IMAGE>:<TAG>

Soğuk başlatmalar

Yalnızca temel kodu ve bağımlılıkları ekleyerek üretim derlemenizi iyileştirin. Yükünüzün mümkün olduğunca yalın olduğundan emin olmak için aşağıdaki yaklaşımlardan birini kullanın:

  • Çok aşamalı Docker derlemeleri veya paketleyicileri: Kapsayıcınız için mümkün olan en küçük yükü oluşturmanıza yardımcı olması için Webpack veya Rollup gibi derleme ve paketleme araçlarını kullanın. Yalnızca üretim için gerekenleri derleyip paketlediğinizde, kapsayıcınızın boyutunu en aza indirmeye ve soğuk başlangıç sürelerini iyileştirmeye yardımcı olursunuz.

  • Bağımlılıkları dikkatle yönetin: Yalnızca üretim kodunu çalıştırmak için gereken paketleri ekleyerek klasörünüzü node_modules yalın tutun. Geliştirme veya test bağımlılıklarını dependencies öğesinin package.json bölümünde listelemeyin. Kullanılmayan bağımlılıkları kaldırın ve package.json dosyanızın ve kilit dosyanızın tutarlı kaldığından emin olun.

Güvenlik

Azure Container Apps kullanan JavaScript geliştiricileri için güvenlikle ilgili dikkat edilmesi gerekenler arasında ortam değişkenlerinin güvenliğini sağlama (Azure Key Vault kullanma gibi), uygun sertifika yönetimiyle HTTPS sağlama, düzenli denetimlerle up-totarih bağımlılıklarını koruma ve tehditleri hızla algılamak ve yanıtlamak için sağlam günlüğe kaydetme ve izleme uygulama yer alır.

Güvenli ortam değişkenleri

Veritabanı bağlantı dizeleri ve API anahtarları gibi hassas bilgilerin güvenli bir şekilde depolandığından emin olun. Gizli dizileri ve ortam değişkenlerini güvenli bir şekilde yönetmek için Azure Key Vault'ı kullanın.

Bu komutu çalıştırmadan önce, <> ile belirtilen yer tutucuları değerlerinizle değiştirdiğinizden emin olun.

az keyvault secret set \
  --vault-name <KEY_VAULT_APP> \
  --name "<SECRET_NAME>" \
  --value "<CONNECTION_STRING>"

HTTPS ve sertifikalar

Uygulamanızın HTTPS üzerinden sunulduğuna emin olun. Azure Container Apps sertifikaları sizin için yönetebilir. Azure portalında özel etki alanınızı ve sertifikanızı yapılandırın.

Bağımlılık Yönetimi

Güvenlik açıklarını önlemek için bağımlılıklarınızı düzenli olarak güncelleştirin. Güvenlik açıklarını denetlemek için gibi npm audit araçları kullanın.

npm audit

Hata işleme

Node.js uygulamanızda sağlam hata işleme uygulayın. Hataları düzgün bir şekilde işlemek için Express veya Fastify'da ara yazılımı kullanın.

// src/middleware/errorHandler.ts
import { Request, Response, NextFunction } from 'express';

export function errorHandler(err: any, req: Request, res: Response, next: NextFunction) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
}

Zarif kapatmalar

Uygulamanızın düzgün bir şekilde kapatılması, uçuş içi isteklerin tamamlanmasını ve kaynakların doğru şekilde yayınlanmasını sağlamak için çok önemlidir. Bu, veri kaybını önlemeye yardımcı olur ve dağıtımlar veya ölçeği daraltma olayları sırasında sorunsuz bir kullanıcı deneyimi sağlar. Aşağıdaki örnekte, kapatma sinyallerini düzgün bir şekilde işlemek için Node.js ve Express kullanan bir yaklaşım gösterilmektedir.

import express from 'express';
import healthRouter from './health.js';

const app = express();

app.use(healthRouter);

const server = app.listen(process.env.PORT || 3000);

// Graceful shutdown
process.on('SIGTERM', () => {
  console.log('SIGTERM received, shutting down...');
  server.close(() => {
    console.log('Server closed');
    process.exit(0);
  });

  // Force close after 30s
  setTimeout(() => {
    console.error('Could not close connections in time, forcing shutdown');
    process.exit(1);
  }, 30000);
});

Ağaç kesimi

Azure Container Apps'te hem console.log hem de console.error çağrıları otomatik olarak yakalanır ve günlüğe kaydedilir. Azure Container Apps, uygulamanızdan standart çıkış (stdout) ve standart hata (stderr) akışlarını yakalar ve bunları Azure İzleyici ve Log Analytics'te kullanılabilir hale getirir.

Azure Container Apps'te Loglama Ayarlama

Günlüklerinizin düzgün bir şekilde yakalanmasını ve erişilebilir olmasını sağlamak için Azure Container App'iniz için tanılama ayarlarını yapılandırmanız gerekir. Kurulum iki adımlı bir işlemdir.

  1. Tanılama Ayarlarını Etkinleştir: Azure Container App'iniz için tanılama ayarlarını etkinleştirmek için Azure CLI'yi kullanın.

    Bu komutu çalıştırmadan önce, <> ile çevrili yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.

    az monitor diagnostic-settings create \
    --resource /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/containerApps/<CONTAINER_APP_NAME> \
    --name "containerapp-logs" \
    --workspace <LOG_ANALYTICS_WORKSPACE_ID> \
    --logs '[{"category": "ContainerAppConsoleLogs","enabled": true}]'
    
  2. Log Analytics çalışma alanınıza giderek ve günlükleri sorgulayarak portaldaki günlüklere erişin.

Loglama Kütüphanelerini Kullanma

console.log ve console.error otomatik olarak yakalanırken, Winston gibi bir günlük kitaplığı kullanmak günlük kaydınız üzerinde daha fazla esneklik ve denetim sağlar. Bu esneklik günlükleri biçimlendirmenize, günlük düzeylerini ve çıkış günlüklerini dosyalar veya dış günlük hizmetleri gibi birden çok hedefe ayarlamanıza olanak tanır.

Aşağıdaki örnek, Winston'ın yüksek doğrulukta günlükleri depolamak için nasıl yapılandırılacağını göstermektedir.

// src/logger.ts
import { createLogger, transports, format } from 'winston';

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.timestamp(),
    format.json()
  ),
  transports: [
    new transports.Console(),
    new transports.File({ filename: 'app.log' })
  ]
});

export default logger;

Günlükçüyü kullanmak için uygulamanızda aşağıdaki söz dizimini kullanın.

import logger from './logger';

logger.info('This is an info message');
logger.error('This is an error message');

Uzaktan hata ayıklama

Uzaktan hata ayıklamayı etkinleştirmek için Node'un yerleşik denetçisini kullanabilirsiniz. Hata ayıklama ayarlarını Dockerfile'ınızın CMDdosyasına sabit kodlamak yerine, kapsayıcınızın giriş noktası olarak bir kabuk betiği kullanarak uzaktan hata ayıklamayı dinamik olarak etkinleştirebilirsiniz.

Aşağıdaki betik, kapsayıcı başlatıldığında bir ortam değişkenini (örneğin, ENABLE_DEBUG) denetler. Eğer değişken true olarak ayarlanırsa, betik Node.js hata ayıklama modunda (--inspect veya --inspect-brk kullanarak) başlatılır. Aksi takdirde kapsayıcı uygulamayı normal şekilde başlatır.

Aşağıdaki adımlarla uzaktan hata ayıklama uygulayabilirsiniz:

  1. Projenizin kök dizininde "entrypoint.sh" adlı bir dosyada, aşağıdaki içeriğe sahip bir giriş noktası betiği oluşturun.

    #!/bin/sh
    # If ENABLE_DEBUG is set to "true", start Node with debugging enabled
    if [ "$ENABLE_DEBUG" = "true" ]; then
      echo "Debug mode enabled: starting Node with inspector"
      exec node --inspect=0.0.0.0:9229 dist/index.js
    else
      echo "Starting Node without debug mode"
      exec node dist/index.js
    fi
    
  2. Dockerfile dosyanızı değiştirerek entrypoint.sh betiği kapsayıcıya kopyalayın ve giriş noktası olarak ayarlayın. Ayrıca gerekirse hata ayıklama bağlantı noktasını kullanıma sunun:

    # Copy the entrypoint script to the container
    COPY entrypoint.sh /usr/src/app/entrypoint.sh
    
    # Ensure the script is executable
    RUN chmod +x /usr/src/app/entrypoint.sh
    
    # Expose the debugging port (if using debug mode)
    EXPOSE 9229
    
    # Set the shell script as the container’s entrypoint
    ENTRYPOINT ["sh", "/usr/src/app/entrypoint.sh"]
    
  3. Ortam değişkenini ENABLE_DEBUG olarak ayarlayarak hata ayıklama modunu tetikleyin true. Örneğin, Azure CLI kullanarak:

    az containerapp update \
      --name <CONTAINER_APP> \
      --env-vars ENABLE_DEBUG=true
    

Bu komutu çalıştırmadan önce, <> tarafından çevrelenmiş olan yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.

Bu yaklaşım, başlangıçta bir ortam değişkenini güncelleştirerek kapsayıcıyı hata ayıklama modunda yeniden başlatmanıza olanak tanıyan esnek bir çözüm sunar. Uygulamanızda her hata ayıklamanız gerektiğinde farklı CMD ayarlarla yeni bir düzeltme oluşturma gereğini önler.

Bakım ve performansla ilgili dikkat edilmesi gerekenler

Uygulamanızın zaman içindeki performansını korumak ve iyileştirmek için ortam değişkeni değişikliklerini verimli bir şekilde yönettiğinizden, kaynaklarınızı izlediğinizden, bağımlılıklarınızı up-togüncel tuttuğunuzdan, ölçeklendirmeyi doğru yapılandırdığınızdan ve izleme uyarılarını ayarladığınızdan emin olun.

Ortam değişkeni değişiklikleri

Ortam değişkenlerinde yapılan her değişiklik yeni bir dağıtılmış düzeltme gerektirdiğinden, uygulamanın gizli dizilerinde tüm değişiklikleri aynı anda yapın. Değişiklikler tamamlandığında gizli bilgileri revizyonun ortam değişkenlerine bağlayın. Bu yaklaşım, düzeltme sayısını en aza indirir ve temiz bir dağıtım geçmişinin korunmasına yardımcı olur.

Kaynak ayırma

Uygulamanın performans ve kullanım desenlerine göre kapsayıcılarınız için CPU ve bellek ayırmayı izleyin ve ayarlayın. Fazla sağlama gereksiz maliyetlere yol açabilirken, yetersiz sağlama performans sorunlarına neden olabilir.

Bağımlılık güncellemeleri

Performans iyileştirmelerinden ve güvenlik düzeltme eklerinden yararlanmak için bağımlılıklarınızı düzenli olarak güncelleştirin. Bu işlemi otomatikleştirmek için gibi npm-check-updates araçları kullanın.

npm install -g npm-check-updates
ncu -u
npm install

Ölçeklendirme

Otomatik ölçeklendirmeyi uygulamanın yüküne göre yapılandırın. Azure Container Apps, kapsayıcı örneklerinin sayısını CPU veya bellek kullanımına göre otomatik olarak ayarlayan yatay ölçeklendirmeyi destekler.

Aşağıdaki örnekte CPU tabanlı ölçek kuralının nasıl ayarlanacağı gösterilmektedir. Bu komutu çalıştırmadan önce, etrafı <> ile çevrili olan yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.

az containerapp revision set-scale \
  --name <CONTAINER_APP> \
  --resource-group <RESOURCE_GROUP> \
  --min-replicas 1 \
  --max-replicas 10 \
  --cpu 80

uyarıları izleme

Uygulamanızın performansını ve durumunu izlemek için izleme ve uyarılar ayarlayın. AZURE İzleyici'yi kullanarak CPU kullanımı, bellek kullanımı ve yanıt süreleri gibi belirli ölçümler için uyarılar oluşturun.

Bu komutu çalıştırmadan önce, yer tutucuların etrafına yerleştirilmiş <> işaretlerini kendi değerlerinizle değiştirdiğinizden emin olun.

az monitor metrics alert create \
  --name "HighCPUUsage" \
  --resource-group <RESOURCE_GROUP> \
  --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerInstance/containerGroups/<CONTAINER_GROUP> \
  --condition "avg Percentage CPU > 80" \
  --description "Alert when CPU usage is above 80%"

Kaynak yönetimi

Kapsayıcılı uygulamaları doğrudan Visual Studio Code'dan hızla oluşturmak, düzenlemek ve dağıtmak için Visual Studio Code için Azure Container Apps uzantısını kullanın.

Sorun giderme

Uygulamanız Azure Container Apps'te çalışma zamanı sorunlarıyla karşılaştığında, sorunu bulmak ve çözmek için günlüğe kaydetme, uzaktan hata ayıklama ve sistem durumu denetimi uyarılarını kullanabilirsiniz.

Ağaç kesimi

Uygulama günlüklerini yakalamak için günlük kaydını etkinleştirin ve yapılandırın. Günlükleri toplamak ve analiz etmek için Azure İzleyici ve Log Analytics'i kullanın. Bu komutları çalıştırmadan önce, <> ile çevrili yer tutucuları değerlerinizle değiştirdiğinizden emin olun.

  1. Yeni bir çalışma alanı oluşturun.

    az monitor log-analytics workspace create \
        --resource-group <RESOURCE_GROUP> \
        --workspace-name <WORKSPACE_NAME>
    
  2. Ardından yeni bir çalışma alanı ayarı oluşturun.

    az monitor diagnostic-settings create \
        --resource <CONTAINER_APP> \
        --workspace <WORKSPACE_NAME> \
        --logs '[{"category": "ContainerAppConsoleLogs","enabled": true}]'
    

Hata ayıklama

Çalışan kapsayıcıya bağlanmak için uzaktan hata ayıklama araçlarını kullanırsınız. Dockerfile'ınızın hata ayıklama için gerekli portları açık hale getirdiğinden emin olun.

# Expose the debugging port
EXPOSE 9229

Sağlık kontrolleri

Uygulamanızın durumunu izlemek için sistem durumu denetimlerini yapılandırın. Bu özellik, Azure Container Apps'in yanıt vermemeye başlaması durumunda kapsayıcınızı yeniden başlatmasını sağlar.

# Azure Container Apps YAML configuration
properties:
configuration:
    livenessProbe:
    httpGet:
        path: /health
        port: 3000
    initialDelaySeconds: 30
    periodSeconds: 10