window.ExamData = window.ExamData || {};
window.ExamData['az-204'] = {
  meta: {
    id: 'az-204',
    title: {
      en: 'Developing Solutions for Microsoft Azure',
      de: 'Lösungen für Microsoft Azure entwickeln'
    },
    description: {
      en: 'This exam measures your ability to develop Azure compute, storage, security, monitoring, and integration solutions by using Azure services, SDKs, and application architecture best practices.',
      de: 'Diese Prüfung misst Ihre Fähigkeit, Azure-Lösungen für Compute, Speicher, Sicherheit, Überwachung und Integration mithilfe von Azure-Diensten, SDKs und Best Practices für Anwendungsarchitekturen zu entwickeln.'
    },
    icon: '👨‍💻',
    level: 'associate',
    passingScore: 700,
    totalTime: 120,
    questionCount: '40-60',
    msLearnUrl: 'https://learn.microsoft.com/en-us/certifications/exams/az-204/',
    domains: [
      {
        name: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
        weight: '25-30%',
        objectives: [
          { en: 'Create Azure App Service web apps and deployment strategies', de: 'Azure App Service-Web-Apps und Bereitstellungsstrategien erstellen' },
          { en: 'Implement Azure Functions and serverless workflows', de: 'Azure Functions und serverlose Workflows implementieren' },
          { en: 'Develop containerized solutions with Azure Container Instances and AKS', de: 'Containerisierte Lösungen mit Azure Container Instances und AKS entwickeln' },
          { en: 'Choose hosting, scaling, and orchestration options for application workloads', de: 'Hosting-, Skalierungs- und Orchestrierungsoptionen für Anwendungsworkloads auswählen' }
        ]
      },
      {
        name: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
        weight: '15-20%',
        objectives: [
          { en: 'Develop solutions that use Blob Storage and access tiers', de: 'Lösungen entwickeln, die Blob Storage und Zugriffsebenen verwenden' },
          { en: 'Optimize Azure Cosmos DB containers, partitioning, and consistency', de: 'Azure Cosmos DB-Container, Partitionierung und Konsistenz optimieren' },
          { en: 'Implement secure and temporary data access with shared access signatures', de: 'Sicheren und temporären Datenzugriff mit Shared Access Signatures implementieren' },
          { en: 'Use storage lifecycle, versioning, and concurrency features', de: 'Speicherfunktionen für Lebenszyklus, Versionierung und Parallelität verwenden' }
        ]
      },
      {
        name: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
        weight: '20-25%',
        objectives: [
          { en: 'Implement authentication and authorization for applications', de: 'Authentifizierung und Autorisierung für Anwendungen implementieren' },
          { en: 'Use managed identities for Azure resources', de: 'Verwaltete Identitäten für Azure-Ressourcen verwenden' },
          { en: 'Secure application configuration, secrets, keys, and certificates', de: 'Anwendungskonfiguration, Geheimnisse, Schlüssel und Zertifikate absichern' },
          { en: 'Apply least privilege and secure access patterns for Azure services', de: 'Least-Privilege- und sichere Zugriffsmuster für Azure-Dienste anwenden' }
        ]
      },
      {
        name: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
        weight: '15-20%',
        objectives: [
          { en: 'Instrument applications with Application Insights and Azure Monitor', de: 'Anwendungen mit Application Insights und Azure Monitor instrumentieren' },
          { en: 'Analyze logs, traces, metrics, and dependencies for troubleshooting', de: 'Protokolle, Traces, Metriken und Abhängigkeiten zur Fehlerbehebung analysieren' },
          { en: 'Implement autoscale, caching, and performance optimization', de: 'Autoskalierung, Caching und Leistungsoptimierung implementieren' },
          { en: 'Design diagnostics and deployment practices that reduce production risk', de: 'Diagnose- und Bereitstellungspraktiken entwerfen, die Produktionsrisiken reduzieren' }
        ]
      },
      {
        name: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
        weight: '15-20%',
        objectives: [
          { en: 'Publish and secure APIs by using Azure API Management', de: 'APIs mit Azure API Management veröffentlichen und absichern' },
          { en: 'Implement event-based solutions with Event Grid', de: 'Ereignisbasierte Lösungen mit Event Grid implementieren' },
          { en: 'Implement message-based solutions with Service Bus', de: 'Nachrichtenbasierte Lösungen mit Service Bus implementieren' },
          { en: 'Consume Azure and third-party REST services reliably and securely', de: 'Azure- und Drittanbieter-REST-Dienste zuverlässig und sicher nutzen' }
        ]
      }
    ]
  },
  questions: [
    {
      id: 'az204-001',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure App Service feature lets you validate a new web app version before directing production users to it?', de: 'Mit welcher Azure App Service-Funktion können Sie eine neue Web-App-Version prüfen, bevor Produktionsbenutzer darauf geleitet werden?' },
      options: [
        { id: 'A', text: { en: 'Deployment slot', de: 'Bereitstellungsslot' } },
        { id: 'B', text: { en: 'App Service plan', de: 'App Service-Plan' } },
        { id: 'C', text: { en: 'Hybrid connection', de: 'Hybridverbindung' } },
        { id: 'D', text: { en: 'Scale unit', de: 'Skalierungseinheit' } }
      ],
      correct: ['A'],
      explanation: { en: 'Deployment slots let you stage and warm up a new version of an App Service app before you swap it into production.', de: 'Bereitstellungsslots ermöglichen es, eine neue Version einer App Service-App vorzubereiten und aufzuwärmen, bevor sie in die Produktion getauscht wird.' },
      hint: { en: 'Think about blue-green style deployment in App Service.', de: 'Denken Sie an eine Blue-Green-Bereitstellung in App Service.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az204-002',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'On a serverless Azure Functions hosting model, what primarily causes instances to scale out?', de: 'Was führt bei einem serverlosen Azure Functions-Hostingmodell hauptsächlich dazu, dass weitere Instanzen skaliert werden?' },
      options: [
        { id: 'A', text: { en: 'Incoming event volume and execution demand', de: 'Eingehendes Ereignisvolumen und Ausführungsbedarf' } },
        { id: 'B', text: { en: 'Manual resize of the function app', de: 'Manuelle Größenänderung der Function App' } },
        { id: 'C', text: { en: 'The number of app settings', de: 'Die Anzahl der App-Einstellungen' } },
        { id: 'D', text: { en: 'The number of deployment slots', de: 'Die Anzahl der Bereitstellungsslots' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Functions scales based on triggers, events, and workload demand rather than manual instance management.', de: 'Azure Functions skaliert auf Basis von Triggern, Ereignissen und Arbeitslastbedarf statt durch manuelle Instanzverwaltung.' },
      hint: { en: 'Serverless scaling follows the workload, not a fixed instance count.', de: 'Serverlose Skalierung folgt der Arbeitslast und nicht einer festen Instanzzahl.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-scale'
    },
    {
      id: 'az204-003',
      type: 'scenario',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Contoso Ltd. needs a serverless workflow that waits for external approval, persists state automatically, and then fans out image-processing activities to several functions.', de: 'Contoso Ltd. benötigt einen serverlosen Workflow, der auf eine externe Genehmigung wartet, den Status automatisch speichert und danach Bildverarbeitungsaktivitäten auf mehrere Funktionen verteilt.' },
      question: { en: 'Which Azure Functions capability should the developers use?', de: 'Welche Azure Functions-Funktionalität sollten die Entwickler verwenden?' },
      options: [
        { id: 'A', text: { en: 'WebJobs SDK', de: 'WebJobs SDK' } },
        { id: 'B', text: { en: 'Durable Functions', de: 'Durable Functions' } },
        { id: 'C', text: { en: 'Timer trigger only', de: 'Nur Timer-Trigger' } },
        { id: 'D', text: { en: 'App Service backups', de: 'App Service-Sicherungen' } }
      ],
      correct: ['B'],
      explanation: { en: 'Durable Functions supports orchestration, external events, retries, checkpoints, and fan-out or fan-in patterns for long-running workflows.', de: 'Durable Functions unterstützt Orchestrierung, externe Ereignisse, Wiederholungen, Prüfpunkte sowie Fan-Out- und Fan-In-Muster für lang laufende Workflows.' },
      hint: { en: 'Choose the option built for stateful serverless orchestration.', de: 'Wählen Sie die Option, die für zustandsbehaftete serverlose Orchestrierung entwickelt wurde.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview'
    },
    {
      id: 'az204-004',
      type: 'multiple',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure Functions triggers can run code in response to Azure service events? Choose all that apply.', de: 'Welche Azure Functions-Trigger können Code als Reaktion auf Azure-Dienstereignisse ausführen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Blob trigger', de: 'Blob-Trigger' } },
        { id: 'B', text: { en: 'Event Grid trigger', de: 'Event Grid-Trigger' } },
        { id: 'C', text: { en: 'Service Bus trigger', de: 'Service Bus-Trigger' } },
        { id: 'D', text: { en: 'Scale-out trigger', de: 'Scale-Out-Trigger' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Blob, Event Grid, and Service Bus are real Azure Functions triggers. Scale out is platform behavior, not a trigger type.', de: 'Blob, Event Grid und Service Bus sind echte Azure Functions-Trigger. Scale-Out ist Plattformverhalten und kein Trigger-Typ.' },
      hint: { en: 'Select the bindings that deliver events to functions.', de: 'Wählen Sie die Bindungen aus, die Ereignisse an Funktionen liefern.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview'
    },
    {
      id: 'az204-005',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure compute service is best for a single container that must start quickly for short-lived batch work?', de: 'Welcher Azure-Computedienst eignet sich am besten für einen einzelnen Container, der schnell für kurzlebige Batcharbeit starten muss?' },
      options: [
        { id: 'A', text: { en: 'Azure Container Instances', de: 'Azure Container Instances' } },
        { id: 'B', text: { en: 'Azure Batch account', de: 'Azure Batch-Konto' } },
        { id: 'C', text: { en: 'AKS cluster', de: 'AKS-Cluster' } },
        { id: 'D', text: { en: 'Virtual machine scale set', de: 'Skalierungsgruppe für virtuelle Computer' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Container Instances is designed for fast startup of isolated containers without cluster management overhead.', de: 'Azure Container Instances ist für den schnellen Start isolierter Container ohne Verwaltungsaufwand für Cluster konzipiert.' },
      hint: { en: 'Think about the lightest managed option for a single container.', de: 'Denken Sie an die schlankste verwaltete Option für einen einzelnen Container.' },
      reference: 'https://learn.microsoft.com/en-us/azure/container-instances/container-instances-overview'
    },
    {
      id: 'az204-006',
      type: 'scenario',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: { en: 'Fabrikam Inc. is moving a set of microservices to Azure. The solution requires the Kubernetes API, rolling upgrades, and cluster autoscaling.', de: 'Fabrikam Inc. verlagert eine Reihe von Microservices nach Azure. Die Lösung erfordert die Kubernetes-API, Rolling Upgrades und Cluster-Autoskalierung.' },
      question: { en: 'Which Azure service should the team choose?', de: 'Welchen Azure-Dienst sollte das Team wählen?' },
      options: [
        { id: 'A', text: { en: 'Azure Container Instances', de: 'Azure Container Instances' } },
        { id: 'B', text: { en: 'Azure Kubernetes Service', de: 'Azure Kubernetes Service' } },
        { id: 'C', text: { en: 'Azure Logic Apps', de: 'Azure Logic Apps' } },
        { id: 'D', text: { en: 'Azure App Configuration', de: 'Azure App Configuration' } }
      ],
      correct: ['B'],
      explanation: { en: 'AKS provides a managed Kubernetes control plane and supports production features such as rolling updates and autoscaling.', de: 'AKS bietet eine verwaltete Kubernetes-Steuerungsebene und unterstützt Produktionsfunktionen wie Rolling Updates und Autoskalierung.' },
      hint: { en: 'The requirement explicitly includes Kubernetes.', de: 'Die Anforderung enthält ausdrücklich Kubernetes.' },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/what-is-aks'
    },
    {
      id: 'az204-007',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure Functions binding lets code write messages to a Storage queue without using the queue SDK directly?', de: 'Mit welcher Azure Functions-Bindung kann Code Nachrichten in eine Storage Queue schreiben, ohne das Queue-SDK direkt zu verwenden?' },
      options: [
        { id: 'A', text: { en: 'HTTP output binding', de: 'HTTP-Ausgabebindung' } },
        { id: 'B', text: { en: 'Queue output binding', de: 'Queue-Ausgabebindung' } },
        { id: 'C', text: { en: 'Blob trigger', de: 'Blob-Trigger' } },
        { id: 'D', text: { en: 'Cosmos DB input binding', de: 'Cosmos DB-Eingabebindung' } }
      ],
      correct: ['B'],
      explanation: { en: 'An output binding lets the function runtime handle the destination write so the code can focus on business logic.', de: 'Eine Ausgabebindung lässt die Laufzeitumgebung der Funktion den Schreibvorgang zum Ziel übernehmen, sodass sich der Code auf die Geschäftslogik konzentrieren kann.' },
      hint: { en: 'Look for the binding that targets Azure Queue Storage.', de: 'Suchen Sie nach der Bindung, die Azure Queue Storage adressiert.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview'
    },
    {
      id: 'az204-008',
      type: 'multiple',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which statements about Azure App Service deployment slots are true? Choose all that apply.', de: 'Welche Aussagen zu Azure App Service-Bereitstellungsslots sind richtig? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'They support blue-green style deployments.', de: 'Sie unterstützen Bereitstellungen im Blue-Green-Stil.' } },
        { id: 'B', text: { en: 'They support traffic routing between slots.', de: 'Sie unterstützen die Verkehrslenkung zwischen Slots.' } },
        { id: 'C', text: { en: 'They are available in the Free App Service plan.', de: 'Sie sind im kostenlosen App Service-Plan verfügbar.' } },
        { id: 'D', text: { en: 'Settings marked as slot settings stay with the slot during swap.', de: 'Als Slot-Einstellungen markierte Einstellungen bleiben beim Tausch beim Slot.' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: { en: 'Deployment slots enable staged rollouts, traffic routing, and sticky slot settings. They are not available in the Free tier.', de: 'Bereitstellungsslots ermöglichen gestufte Rollouts, Verkehrslenkung und angeheftete Slot-Einstellungen. In der Free-Stufe sind sie nicht verfügbar.' },
      hint: { en: 'Think about safe deployment and swap behavior.', de: 'Denken Sie an sichere Bereitstellung und Tauschverhalten.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az204-009',
      type: 'scenario',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Tailwind Traders is standardizing on containers for a public API. The solution needs Helm-based deployment, pod-to-pod networking, and secret management at cluster scale.', de: 'Tailwind Traders standardisiert auf Container für eine öffentliche API. Die Lösung benötigt eine Helm-basierte Bereitstellung, Pod-zu-Pod-Netzwerkkommunikation und Geheimnisverwaltung im Clustermaßstab.' },
      question: { en: 'Which Azure compute platform best meets the requirement?', de: 'Welche Azure-Compute-Plattform erfüllt die Anforderung am besten?' },
      options: [
        { id: 'A', text: { en: 'Azure Functions', de: 'Azure Functions' } },
        { id: 'B', text: { en: 'Azure Kubernetes Service', de: 'Azure Kubernetes Service' } },
        { id: 'C', text: { en: 'Azure Container Instances', de: 'Azure Container Instances' } },
        { id: 'D', text: { en: 'Azure App Configuration', de: 'Azure App Configuration' } }
      ],
      correct: ['B'],
      explanation: { en: 'AKS is the managed Azure service built for Kubernetes workloads that need cluster features, Helm, and orchestrated networking.', de: 'AKS ist der verwaltete Azure-Dienst für Kubernetes-Workloads, die Clusterfunktionen, Helm und orchestrierte Netzwerke benötigen.' },
      hint: { en: 'Choose the managed Kubernetes platform.', de: 'Wählen Sie die verwaltete Kubernetes-Plattform.' },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/what-is-aks'
    },
    {
      id: 'az204-010',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which Azure Functions hosting plan provides pre-warmed instances and supports long-running executions without the limits of the Consumption plan?', de: 'Welcher Azure Functions-Hostingplan stellt vorgewärmte Instanzen bereit und unterstützt lange Ausführungen ohne die Einschränkungen des Consumption-Plans?' },
      options: [
        { id: 'A', text: { en: 'Consumption plan', de: 'Consumption-Plan' } },
        { id: 'B', text: { en: 'Premium plan', de: 'Premium-Plan' } },
        { id: 'C', text: { en: 'Storage account', de: 'Speicherkonto' } },
        { id: 'D', text: { en: 'Deployment slot plan', de: 'Bereitstellungsslot-Plan' } }
      ],
      correct: ['B'],
      explanation: { en: 'The Premium plan offers pre-warmed workers, better networking options, and reduced cold-start impact for Azure Functions.', de: 'Der Premium-Plan bietet vorgewärmte Worker, bessere Netzwerkoptionen und eine geringere Cold-Start-Auswirkung für Azure Functions.' },
      hint: { en: 'Think about the serverless plan designed for lower latency and advanced features.', de: 'Denken Sie an den serverlosen Plan, der für geringere Latenz und erweiterte Funktionen entwickelt wurde.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-scale'
    },
    {
      id: 'az204-011',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which App Service feature lets you send a small percentage of live traffic to a staging slot for validation?', de: 'Mit welcher App Service-Funktion können Sie einen kleinen Prozentsatz des Live-Datenverkehrs zur Validierung an einen Staging-Slot senden?' },
      options: [
        { id: 'A', text: { en: 'Traffic routing', de: 'Verkehrslenkung' } },
        { id: 'B', text: { en: 'Auto Heal', de: 'Auto Heal' } },
        { id: 'C', text: { en: 'Scale up', de: 'Hochskalieren' } },
        { id: 'D', text: { en: 'Backup restore', de: 'Sicherungswiederherstellung' } }
      ],
      correct: ['A'],
      explanation: { en: 'Traffic routing on deployment slots supports gradual exposure of a new version before a full swap.', de: 'Die Verkehrslenkung für Bereitstellungsslots unterstützt die schrittweise Freigabe einer neuen Version vor einem vollständigen Tausch.' },
      hint: { en: 'This feature is tied to slots, not autoscale.', de: 'Diese Funktion ist an Slots gebunden, nicht an Autoskalierung.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az204-012',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure Functions trigger should you use to run code on a CRON-like schedule?', de: 'Welchen Azure Functions-Trigger sollten Sie verwenden, um Code nach einem CRON-ähnlichen Zeitplan auszuführen?' },
      options: [
        { id: 'A', text: { en: 'HTTP trigger', de: 'HTTP-Trigger' } },
        { id: 'B', text: { en: 'Timer trigger', de: 'Timer-Trigger' } },
        { id: 'C', text: { en: 'Blob trigger', de: 'Blob-Trigger' } },
        { id: 'D', text: { en: 'Queue trigger', de: 'Queue-Trigger' } }
      ],
      correct: ['B'],
      explanation: { en: 'The timer trigger runs a function according to a schedule expression and is used for scheduled jobs.', de: 'Der Timer-Trigger führt eine Funktion anhand eines Zeitplanausdrucks aus und wird für geplante Aufträge verwendet.' },
      hint: { en: 'Look for the trigger that is based on time instead of messages.', de: 'Suchen Sie nach dem Trigger, der auf Zeit statt auf Nachrichten basiert.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview'
    },
    {
      id: 'az204-013',
      type: 'scenario',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Litware Inc. is building an order workflow that must chain activities, retry failed steps, and resume from checkpoints after restarts without custom state management code.', de: 'Litware Inc. entwickelt einen Auftragsworkflow, der Aktivitäten verketten, fehlgeschlagene Schritte wiederholen und nach Neustarts von Prüfpunkten aus fortsetzen muss, ohne benutzerdefinierten Statusverwaltungscode.' },
      question: { en: 'Which Azure compute capability should be used?', de: 'Welche Azure-Compute-Funktionalität sollte verwendet werden?' },
      options: [
        { id: 'A', text: { en: 'Durable Functions orchestrations', de: 'Durable Functions-Orchestrierungen' } },
        { id: 'B', text: { en: 'App Service certificates', de: 'App Service-Zertifikate' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'Azure DNS', de: 'Azure DNS' } }
      ],
      correct: ['A'],
      explanation: { en: 'Durable Functions manages workflow state and checkpoints, which removes the need for custom orchestration persistence code.', de: 'Durable Functions verwaltet Workflowstatus und Prüfpunkte und macht dadurch benutzerdefinierten Persistenzcode für Orchestrierungen überflüssig.' },
      hint: { en: 'The workflow needs built-in state and retry behavior.', de: 'Der Workflow benötigt integriertes Zustands- und Wiederholungsverhalten.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview'
    },
    {
      id: 'az204-014',
      type: 'multiple',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure Container Instances capabilities are supported? Choose all that apply.', de: 'Welche Funktionen von Azure Container Instances werden unterstützt? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Start a container group in seconds', de: 'Eine Containergruppe in Sekunden starten' } },
        { id: 'B', text: { en: 'Mount an Azure Files share', de: 'Eine Azure Files-Freigabe einbinden' } },
        { id: 'C', text: { en: 'Deploy into a virtual network', de: 'In ein virtuelles Netzwerk bereitstellen' } },
        { id: 'D', text: { en: 'Expose the Kubernetes control plane', de: 'Die Kubernetes-Steuerungsebene bereitstellen' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'ACI supports rapid startup, volume mounts, and VNET deployment, but it does not provide a Kubernetes control plane.', de: 'ACI unterstützt schnellen Start, Volume-Einbindungen und Bereitstellung im VNET, stellt jedoch keine Kubernetes-Steuerungsebene bereit.' },
      hint: { en: 'Select lightweight container hosting capabilities, not cluster orchestration features.', de: 'Wählen Sie leichte Containerhostingfunktionen und keine Clusterorchestrierungsfunktionen aus.' },
      reference: 'https://learn.microsoft.com/en-us/azure/container-instances/container-instances-overview'
    },
    {
      id: 'az204-015',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which App Service capability provides built-in sign-in and token validation for web apps and APIs?', de: 'Welche App Service-Funktion bietet integrierte Anmeldung und Tokenüberprüfung für Web-Apps und APIs?' },
      options: [
        { id: 'A', text: { en: 'App Service Authentication', de: 'App Service-Authentifizierung' } },
        { id: 'B', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'C', text: { en: 'Azure Front Door', de: 'Azure Front Door' } },
        { id: 'D', text: { en: 'Azure Automation', de: 'Azure Automation' } }
      ],
      correct: ['A'],
      explanation: { en: 'App Service Authentication and Authorization can validate tokens and sign in users before requests reach the application code.', de: 'App Service-Authentifizierung und -Autorisierung kann Token überprüfen und Benutzer anmelden, bevor Anforderungen den Anwendungscode erreichen.' },
      hint: { en: 'This feature is often called Easy Auth.', de: 'Diese Funktion wird oft Easy Auth genannt.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview-authentication-authorization'
    },
    {
      id: 'az204-016',
      type: 'scenario',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: { en: 'Woodgrove Bank uses an App Service app with a staging slot and a production slot. Each slot must keep its own database connection string after a swap.', de: 'Woodgrove Bank verwendet eine App Service-App mit einem Staging-Slot und einem Produktionsslot. Jeder Slot muss nach einem Tausch seine eigene Datenbankverbindungszeichenfolge behalten.' },
      question: { en: 'What should the developers configure?', de: 'Was sollten die Entwickler konfigurieren?' },
      options: [
        { id: 'A', text: { en: 'Mark the connection string as a slot setting', de: 'Die Verbindungszeichenfolge als Slot-Einstellung markieren' } },
        { id: 'B', text: { en: 'Store the connection string in a route table', de: 'Die Verbindungszeichenfolge in einer Routentabelle speichern' } },
        { id: 'C', text: { en: 'Use a different App Service plan for each slot', de: 'Für jeden Slot einen anderen App Service-Plan verwenden' } },
        { id: 'D', text: { en: 'Disable swapping', de: 'Das Tauschen deaktivieren' } }
      ],
      correct: ['A'],
      explanation: { en: 'Sticky slot settings remain with the slot during swap and are the correct choice for environment-specific values such as connection strings.', de: 'Angeheftete Slot-Einstellungen bleiben beim Tausch beim Slot und sind die richtige Wahl für umgebungsspezifische Werte wie Verbindungszeichenfolgen.' },
      hint: { en: 'The requirement is about swap behavior for settings.', de: 'Die Anforderung betrifft das Tauschverhalten von Einstellungen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az204-017',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure resource defines the region, pricing tier, and scale characteristics shared by App Service apps?', de: 'Welche Azure-Ressource definiert die Region, den Tarif und die Skalierungsmerkmale, die von App Service-Apps gemeinsam genutzt werden?' },
      options: [
        { id: 'A', text: { en: 'App Service plan', de: 'App Service-Plan' } },
        { id: 'B', text: { en: 'Deployment slot', de: 'Bereitstellungsslot' } },
        { id: 'C', text: { en: 'Application Insights resource', de: 'Application Insights-Ressource' } },
        { id: 'D', text: { en: 'Key Vault', de: 'Key Vault' } }
      ],
      correct: ['A'],
      explanation: { en: 'The App Service plan determines the compute resources, region, and SKU used by web apps and function apps on dedicated hosting.', de: 'Der App Service-Plan bestimmt die Compute-Ressourcen, die Region und die SKU, die von Web-Apps und Function Apps auf dediziertem Hosting verwendet werden.' },
      hint: { en: 'Think about the shared compute container for App Service apps.', de: 'Denken Sie an den gemeinsamen Compute-Container für App Service-Apps.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview'
    },
    {
      id: 'az204-018',
      type: 'multiple',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which AKS characteristics reduce the amount of infrastructure you must manage? Choose all that apply.', de: 'Welche AKS-Merkmale verringern den Infrastrukturverwaltungsaufwand? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Managed Kubernetes control plane', de: 'Verwaltete Kubernetes-Steuerungsebene' } },
        { id: 'B', text: { en: 'Cluster autoscaler support', de: 'Unterstützung für Cluster-Autoskalierung' } },
        { id: 'C', text: { en: 'Node pool management', de: 'Node-Pool-Verwaltung' } },
        { id: 'D', text: { en: 'Deployment slots for pods', de: 'Bereitstellungsslots für Pods' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'AKS manages the control plane and provides managed scaling and node pool capabilities, but deployment slots are an App Service concept.', de: 'AKS verwaltet die Steuerungsebene und bietet verwaltete Skalierung sowie Node-Pool-Funktionen, aber Bereitstellungsslots sind ein App Service-Konzept.' },
      hint: { en: 'Choose the Kubernetes platform features, not App Service features.', de: 'Wählen Sie die Kubernetes-Plattformfunktionen und nicht App Service-Funktionen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/what-is-aks'
    },
    {
      id: 'az204-019',
      type: 'scenario',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Proseware Inc. exposes a webhook endpoint that sometimes receives very large bursts of events. The code should scale per event and billing should depend on actual execution time.', de: 'Proseware Inc. stellt einen Webhook-Endpunkt bereit, der manchmal sehr große Ereignisspitzen empfängt. Der Code soll pro Ereignis skalieren und die Abrechnung soll von der tatsächlichen Ausführungszeit abhängen.' },
      question: { en: 'Which Azure compute option is the best fit?', de: 'Welche Azure-Compute-Option passt am besten?' },
      options: [
        { id: 'A', text: { en: 'Azure Functions', de: 'Azure Functions' } },
        { id: 'B', text: { en: 'Azure Virtual Desktop', de: 'Azure Virtual Desktop' } },
        { id: 'C', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'D', text: { en: 'Azure Batch', de: 'Azure Batch' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Functions is designed for event-driven execution and scales with the event load while billing can align to execution usage.', de: 'Azure Functions ist für ereignisgesteuerte Ausführung konzipiert und skaliert mit der Ereignislast, während sich die Abrechnung an der Ausführungsnutzung orientieren kann.' },
      hint: { en: 'Look for the event-driven serverless platform.', de: 'Suchen Sie nach der ereignisgesteuerten serverlosen Plattform.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview'
    },
    {
      id: 'az204-020',
      type: 'single',
      domain: { en: 'Develop Azure compute solutions', de: 'Azure-Compute-Lösungen entwickeln' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which App Service setting keeps the app process loaded to reduce startup delay for continuously running applications on dedicated hosting?', de: 'Welche App Service-Einstellung hält den App-Prozess geladen, um die Startverzögerung bei kontinuierlich laufenden Anwendungen auf dediziertem Hosting zu verringern?' },
      options: [
        { id: 'A', text: { en: 'Always On', de: 'Always On' } },
        { id: 'B', text: { en: 'Auto Heal', de: 'Auto Heal' } },
        { id: 'C', text: { en: 'SCM Basic Auth', de: 'SCM Basic Auth' } },
        { id: 'D', text: { en: 'FTP state', de: 'FTP-Status' } }
      ],
      correct: ['A'],
      explanation: { en: 'Always On keeps the app loaded on dedicated plans so background processing and first-request latency are improved.', de: 'Always On hält die App auf dedizierten Plänen geladen, sodass Hintergrundverarbeitung und Latenz der ersten Anforderung verbessert werden.' },
      hint: { en: 'This setting prevents the app from idling out.', de: 'Diese Einstellung verhindert, dass die App in den Leerlauf wechselt.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview'
    },
    {
      id: 'az204-021',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Blob Storage type is optimized for append operations such as application log collection?', de: 'Welcher Blob Storage-Typ ist für Anfügevorgänge wie die Erfassung von Anwendungsprotokollen optimiert?' },
      options: [
        { id: 'A', text: { en: 'Block blob', de: 'Blockblob' } },
        { id: 'B', text: { en: 'Append blob', de: 'Append-Blob' } },
        { id: 'C', text: { en: 'Page blob', de: 'Page-Blob' } },
        { id: 'D', text: { en: 'Queue message', de: 'Queue-Nachricht' } }
      ],
      correct: ['B'],
      explanation: { en: 'Append blobs are designed for append-heavy workloads where data is added to the end of the blob, such as logs.', de: 'Append-Blobs sind für workloads mit vielen Anfügevorgängen ausgelegt, bei denen Daten an das Ende des Blobs angehängt werden, etwa Protokolle.' },
      hint: { en: 'Choose the blob type named for the write pattern.', de: 'Wählen Sie den Blob-Typ, der nach dem Schreibmuster benannt ist.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction'
    },
    {
      id: 'az204-022',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure Cosmos DB design choice determines how items are logically grouped and distributed across physical partitions?', de: 'Welche Entwurfsentscheidung in Azure Cosmos DB bestimmt, wie Elemente logisch gruppiert und über physische Partitionen verteilt werden?' },
      options: [
        { id: 'A', text: { en: 'Consistency level', de: 'Konsistenzstufe' } },
        { id: 'B', text: { en: 'Partition key', de: 'Partitionsschlüssel' } },
        { id: 'C', text: { en: 'Indexing mode', de: 'Indizierungsmodus' } },
        { id: 'D', text: { en: 'TTL value', de: 'TTL-Wert' } }
      ],
      correct: ['B'],
      explanation: { en: 'The partition key controls logical partitioning and strongly influences scale, RU usage, and query efficiency in Cosmos DB.', de: 'Der Partitionsschlüssel steuert die logische Partitionierung und beeinflusst Skalierung, RU-Nutzung und Abfrageeffizienz in Cosmos DB maßgeblich.' },
      hint: { en: 'This choice affects both scalability and point-read efficiency.', de: 'Diese Entscheidung beeinflusst sowohl Skalierbarkeit als auch die Effizienz von Punktlesevorgängen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/partitioning-overview'
    },
    {
      id: 'az204-023',
      type: 'scenario',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Contoso Ltd. stores tenant-specific orders in a Cosmos DB container. Nearly all reads and writes filter by tenantId, and the application must scale to many tenants with predictable RU consumption.', de: 'Contoso Ltd. speichert mandantenspezifische Bestellungen in einem Cosmos DB-Container. Fast alle Lese- und Schreibvorgänge filtern nach tenantId, und die Anwendung muss auf viele Mandanten mit vorhersehbarem RU-Verbrauch skalieren.' },
      question: { en: 'Which property is the best partition key choice?', de: 'Welche Eigenschaft ist die beste Wahl für den Partitionsschlüssel?' },
      options: [
        { id: 'A', text: { en: 'tenantId', de: 'tenantId' } },
        { id: 'B', text: { en: 'createdDate', de: 'createdDate' } },
        { id: 'C', text: { en: 'status', de: 'status' } },
        { id: 'D', text: { en: 'isProcessed', de: 'isProcessed' } }
      ],
      correct: ['A'],
      explanation: { en: 'A good partition key aligns with the main access pattern and provides high cardinality. tenantId fits both requirements in this scenario.', de: 'Ein guter Partitionsschlüssel entspricht dem Hauptzugriffsmuster und bietet eine hohe Kardinalität. tenantId erfüllt in diesem Szenario beide Anforderungen.' },
      hint: { en: 'Choose the property most queries already use and that spreads data well.', de: 'Wählen Sie die Eigenschaft, die die meisten Abfragen bereits verwenden und die Daten gut verteilt.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/partitioning-overview'
    },
    {
      id: 'az204-024',
      type: 'multiple',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Blob Storage features help recover from accidental overwrite or deletion? Choose all that apply.', de: 'Welche Blob Storage-Funktionen helfen bei der Wiederherstellung nach versehentlichem Überschreiben oder Löschen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Blob versioning', de: 'Blob-Versionierung' } },
        { id: 'B', text: { en: 'Blob soft delete', de: 'Blob-Soft-Delete' } },
        { id: 'C', text: { en: 'Append position condition', de: 'Append-Positionsbedingung' } },
        { id: 'D', text: { en: 'Lease break duration', de: 'Lease-Break-Dauer' } }
      ],
      correct: ['A', 'B'],
      explanation: { en: 'Blob versioning and soft delete are recovery-focused features that protect against accidental data loss or overwrite.', de: 'Blob-Versionierung und Soft Delete sind auf Wiederherstellung ausgerichtete Funktionen, die vor versehentlichem Datenverlust oder Überschreiben schützen.' },
      hint: { en: 'Pick the features that preserve or recover older blob states.', de: 'Wählen Sie die Funktionen aus, die ältere Blob-Zustände erhalten oder wiederherstellen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/versioning-overview'
    },
    {
      id: 'az204-025',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure Cosmos DB consistency level provides the strongest read guarantees?', de: 'Welche Azure Cosmos DB-Konsistenzstufe bietet die stärksten Lesegarantien?' },
      options: [
        { id: 'A', text: { en: 'Eventual', de: 'Eventual' } },
        { id: 'B', text: { en: 'Consistent prefix', de: 'Consistent Prefix' } },
        { id: 'C', text: { en: 'Session', de: 'Session' } },
        { id: 'D', text: { en: 'Strong', de: 'Strong' } }
      ],
      correct: ['D'],
      explanation: { en: 'Strong consistency guarantees the most up-to-date reads, but it can increase latency and reduce write-region flexibility.', de: 'Strong-Konsistenz garantiert die aktuellsten Lesevorgänge, kann jedoch die Latenz erhöhen und die Flexibilität der Schreibregionen verringern.' },
      hint: { en: 'Choose the highest guarantee, not the default balance.', de: 'Wählen Sie die höchste Garantie und nicht den Standardkompromiss.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/consistency-levels'
    },
    {
      id: 'az204-026',
      type: 'scenario',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: { en: 'Fabrikam Inc. stores operational data in Azure Cosmos DB. Every insert and update must trigger near-real-time downstream processing without repeatedly polling the container.', de: 'Fabrikam Inc. speichert Betriebsdaten in Azure Cosmos DB. Jeder Einfüge- und Aktualisierungsvorgang muss eine nahezu Echtzeit-Nachverarbeitung auslösen, ohne den Container ständig abzufragen.' },
      question: { en: 'Which Cosmos DB feature should be used?', de: 'Welche Cosmos DB-Funktion sollte verwendet werden?' },
      options: [
        { id: 'A', text: { en: 'Change feed', de: 'Change Feed' } },
        { id: 'B', text: { en: 'Indexing policy', de: 'Indizierungsrichtlinie' } },
        { id: 'C', text: { en: 'Snapshot debugger', de: 'Snapshot-Debugger' } },
        { id: 'D', text: { en: 'Stored query cache', de: 'Gespeicherter Abfragecache' } }
      ],
      correct: ['A'],
      explanation: { en: 'The change feed exposes ordered changes within logical partitions so applications can react to inserts and updates efficiently.', de: 'Der Change Feed stellt geordnete Änderungen innerhalb logischer Partitionen bereit, sodass Anwendungen effizient auf Einfügungen und Aktualisierungen reagieren können.' },
      hint: { en: 'The requirement is event-driven processing from data changes.', de: 'Die Anforderung betrifft ereignisgesteuerte Verarbeitung aus Datenänderungen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/change-feed'
    },
    {
      id: 'az204-027',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Blob Storage access tier is optimized for data that is accessed frequently and needs low access latency?', de: 'Welche Blob Storage-Zugriffsebene ist für Daten optimiert, auf die häufig zugegriffen wird und die eine geringe Zugriffsverzögerung benötigen?' },
      options: [
        { id: 'A', text: { en: 'Archive', de: 'Archive' } },
        { id: 'B', text: { en: 'Cool', de: 'Cool' } },
        { id: 'C', text: { en: 'Hot', de: 'Hot' } },
        { id: 'D', text: { en: 'Offline', de: 'Offline' } }
      ],
      correct: ['C'],
      explanation: { en: 'The Hot tier is intended for frequently accessed data and provides the lowest access latency among Blob tiers.', de: 'Die Hot-Stufe ist für häufig genutzte Daten vorgesehen und bietet die geringste Zugriffsverzögerung unter den Blob-Stufen.' },
      hint: { en: 'Pick the tier for active data, not archival data.', de: 'Wählen Sie die Stufe für aktive und nicht für archivierte Daten.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction'
    },
    {
      id: 'az204-028',
      type: 'multiple',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which statements about optimistic concurrency for blobs are correct? Choose all that apply.', de: 'Welche Aussagen zur optimistischen Parallelitätssteuerung für Blobs sind richtig? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'You can use If-Match with the current ETag.', de: 'Sie können If-Match mit dem aktuellen ETag verwenden.' } },
        { id: 'B', text: { en: 'The write can fail if another client changed the blob.', de: 'Der Schreibvorgang kann fehlschlagen, wenn ein anderer Client den Blob geändert hat.' } },
        { id: 'C', text: { en: 'Every blob update requires a lease.', de: 'Jede Blob-Aktualisierung erfordert eine Lease.' } },
        { id: 'D', text: { en: 'ETags help clients detect conflicting updates.', de: 'ETags helfen Clients, kollidierende Aktualisierungen zu erkennen.' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: { en: 'Optimistic concurrency relies on ETags and conditional headers to detect conflicts without taking an exclusive lock for every write.', de: 'Optimistische Parallelitätssteuerung basiert auf ETags und bedingten Headern, um Konflikte zu erkennen, ohne für jeden Schreibvorgang eine exklusive Sperre zu setzen.' },
      hint: { en: 'Think about conditional writes rather than mandatory leases.', de: 'Denken Sie an bedingte Schreibvorgänge statt an verpflichtende Leases.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction'
    },
    {
      id: 'az204-029',
      type: 'scenario',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Tailwind Traders expects global growth for a shopping application. The data store must handle massive JSON scale, low-latency reads, and distribution across Azure regions.', de: 'Tailwind Traders erwartet globales Wachstum für eine Einkaufsanwendung. Der Datenspeicher muss massive JSON-Skalierung, Lesevorgänge mit geringer Latenz und Verteilung über Azure-Regionen hinweg unterstützen.' },
      question: { en: 'Which Azure data service is the best fit?', de: 'Welcher Azure-Datendienst ist am besten geeignet?' },
      options: [
        { id: 'A', text: { en: 'Azure Cosmos DB for NoSQL', de: 'Azure Cosmos DB for NoSQL' } },
        { id: 'B', text: { en: 'Azure Files', de: 'Azure Files' } },
        { id: 'C', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'D', text: { en: 'Azure App Service', de: 'Azure App Service' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Cosmos DB for NoSQL is built for globally distributed, low-latency access to large volumes of non-relational JSON data.', de: 'Azure Cosmos DB for NoSQL ist für global verteilten Zugriff mit geringer Latenz auf große Mengen nicht relationaler JSON-Daten ausgelegt.' },
      hint: { en: 'The workload needs global distribution and JSON at scale.', de: 'Die Arbeitslast benötigt globale Verteilung und JSON im großen Maßstab.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/partitioning-overview'
    },
    {
      id: 'az204-030',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'How can you minimize RU consumption for a point read in Azure Cosmos DB?', de: 'Wie können Sie den RU-Verbrauch für einen Punktlesevorgang in Azure Cosmos DB minimieren?' },
      options: [
        { id: 'A', text: { en: 'Use a query that scans all partitions', de: 'Eine Abfrage verwenden, die alle Partitionen durchsucht' } },
        { id: 'B', text: { en: 'Read the item by id and partition key', de: 'Das Element per ID und Partitionsschlüssel lesen' } },
        { id: 'C', text: { en: 'Disable indexing before reading', de: 'Vor dem Lesen die Indizierung deaktivieren' } },
        { id: 'D', text: { en: 'Use the archive access tier', de: 'Die Archive-Zugriffsebene verwenden' } }
      ],
      correct: ['B'],
      explanation: { en: 'Point reads that include both the item id and partition key are the most efficient and predictable read pattern in Cosmos DB.', de: 'Punktlesevorgänge, die sowohl die Element-ID als auch den Partitionsschlüssel enthalten, sind das effizienteste und vorhersagbarste Lesemuster in Cosmos DB.' },
      hint: { en: 'Avoid cross-partition queries when you already know the exact item.', de: 'Vermeiden Sie partitionsübergreifende Abfragen, wenn Sie das genaue Element bereits kennen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/request-units'
    },
    {
      id: 'az204-031',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Blob Storage feature can automatically move blobs to cool or archive tiers based on rules?', de: 'Welche Blob Storage-Funktion kann Blobs anhand von Regeln automatisch in die Cool- oder Archive-Stufe verschieben?' },
      options: [
        { id: 'A', text: { en: 'Lifecycle management', de: 'Lebenszyklusverwaltung' } },
        { id: 'B', text: { en: 'Object replication', de: 'Objektreplikation' } },
        { id: 'C', text: { en: 'Container lease', de: 'Container-Lease' } },
        { id: 'D', text: { en: 'RA-GRS failover', de: 'RA-GRS-Failover' } }
      ],
      correct: ['A'],
      explanation: { en: 'Lifecycle management policies automate tiering and deletion actions based on age and other blob conditions.', de: 'Lebenszyklusverwaltungsrichtlinien automatisieren Tiering- und Löschaktionen auf Basis von Alter und anderen Blob-Bedingungen.' },
      hint: { en: 'This feature is policy-based and cost-focused.', de: 'Diese Funktion ist richtlinienbasiert und auf Kostenoptimierung ausgerichtet.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview'
    },
    {
      id: 'az204-032',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which condition should you send when updating a blob only if it has not changed since you last read it?', de: 'Welche Bedingung sollten Sie beim Aktualisieren eines Blobs senden, wenn er sich seit dem letzten Lesen nicht geändert haben darf?' },
      options: [
        { id: 'A', text: { en: 'If-Match with the current ETag', de: 'If-Match mit dem aktuellen ETag' } },
        { id: 'B', text: { en: 'If-None-Match with a wildcard', de: 'If-None-Match mit einem Platzhalter' } },
        { id: 'C', text: { en: 'x-ms-version with latest date', de: 'x-ms-version mit aktuellem Datum' } },
        { id: 'D', text: { en: 'Content-Type set to application/json', de: 'Content-Type auf application/json gesetzt' } }
      ],
      correct: ['A'],
      explanation: { en: 'If-Match together with the known ETag implements conditional updates and protects against lost updates.', de: 'If-Match zusammen mit dem bekannten ETag implementiert bedingte Aktualisierungen und schützt vor verlorenen Updates.' },
      hint: { en: 'Use the header that checks the exact blob version you previously read.', de: 'Verwenden Sie den Header, der genau die Blob-Version prüft, die Sie zuvor gelesen haben.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction'
    },
    {
      id: 'az204-033',
      type: 'scenario',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Litware Inc. needs to give a customer a download link to a blob that expires after 15 minutes. The backend uses Microsoft Entra credentials and must avoid storage account keys.', de: 'Litware Inc. muss einem Kunden einen Downloadlink zu einem Blob bereitstellen, der nach 15 Minuten abläuft. Das Backend verwendet Microsoft Entra-Anmeldeinformationen und muss Speicherkontoschlüssel vermeiden.' },
      question: { en: 'What should the backend generate?', de: 'Was sollte das Backend generieren?' },
      options: [
        { id: 'A', text: { en: 'User delegation SAS', de: 'User Delegation SAS' } },
        { id: 'B', text: { en: 'Storage account key', de: 'Speicherkontoschlüssel' } },
        { id: 'C', text: { en: 'Public blob URL', de: 'Öffentliche Blob-URL' } },
        { id: 'D', text: { en: 'Connection string', de: 'Verbindungszeichenfolge' } }
      ],
      correct: ['A'],
      explanation: { en: 'A user delegation SAS is signed with Microsoft Entra credentials and provides time-limited delegated access to Blob data.', de: 'Eine User Delegation SAS wird mit Microsoft Entra-Anmeldeinformationen signiert und bietet zeitlich begrenzten delegierten Zugriff auf Blob-Daten.' },
      hint: { en: 'The access should expire and must not rely on account keys.', de: 'Der Zugriff soll ablaufen und darf nicht auf Kontoschlüsseln basieren.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az204-034',
      type: 'multiple',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which settings directly affect Azure Cosmos DB query and write distribution? Choose all that apply.', de: 'Welche Einstellungen beeinflussen direkt die Verteilung von Azure Cosmos DB-Abfragen und Schreibvorgängen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Partition key choice', de: 'Wahl des Partitionsschlüssels' } },
        { id: 'B', text: { en: 'Indexing policy', de: 'Indizierungsrichtlinie' } },
        { id: 'C', text: { en: 'Provisioned or autoscale throughput', de: 'Bereitgestellter oder autoskalierter Durchsatz' } },
        { id: 'D', text: { en: 'App Service deployment slot swap', de: 'App Service-Bereitstellungsslot-Tausch' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Partitioning, indexing, and throughput configuration all influence RU usage and how efficiently reads and writes are served.', de: 'Partitionierung, Indizierung und Durchsatzkonfiguration beeinflussen alle die RU-Nutzung und wie effizient Lese- und Schreibvorgänge bedient werden.' },
      hint: { en: 'Stay inside Cosmos DB design choices, not web app deployment features.', de: 'Bleiben Sie bei Cosmos DB-Entwurfsentscheidungen und nicht bei Web-App-Bereitstellungsfunktionen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/index-overview'
    },
    {
      id: 'az204-035',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure Cosmos DB feature automatically indexes properties and can be customized to exclude specific paths?', de: 'Welche Azure Cosmos DB-Funktion indiziert Eigenschaften automatisch und kann so angepasst werden, dass bestimmte Pfade ausgeschlossen werden?' },
      options: [
        { id: 'A', text: { en: 'Indexing policy', de: 'Indizierungsrichtlinie' } },
        { id: 'B', text: { en: 'Resource lock', de: 'Ressourcensperre' } },
        { id: 'C', text: { en: 'Blob tiering rule', de: 'Blob-Tiering-Regel' } },
        { id: 'D', text: { en: 'App role assignment', de: 'App-Rollenzuweisung' } }
      ],
      correct: ['A'],
      explanation: { en: 'Cosmos DB uses an indexing policy to control which paths are indexed and how queries are optimized.', de: 'Cosmos DB verwendet eine Indizierungsrichtlinie, um zu steuern, welche Pfade indiziert werden und wie Abfragen optimiert werden.' },
      hint: { en: 'This feature controls automatic indexing behavior.', de: 'Diese Funktion steuert das Verhalten der automatischen Indizierung.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/index-overview'
    },
    {
      id: 'az204-036',
      type: 'scenario',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: { en: 'Woodgrove Bank wants browser clients to upload files directly to Blob Storage for 30 minutes without proxying the file content through the web API.', de: 'Woodgrove Bank möchte, dass Browser-Clients Dateien 30 Minuten lang direkt in Blob Storage hochladen, ohne den Dateiinhalt über die Web-API zu leiten.' },
      question: { en: 'What should the API return to the client?', de: 'Was sollte die API an den Client zurückgeben?' },
      options: [
        { id: 'A', text: { en: 'A shared access signature', de: 'Eine Shared Access Signature' } },
        { id: 'B', text: { en: 'The storage account primary key', de: 'Den primären Speicherkontoschlüssel' } },
        { id: 'C', text: { en: 'A permanent public container URL', de: 'Eine dauerhafte öffentliche Container-URL' } },
        { id: 'D', text: { en: 'A virtual network route table', de: 'Eine Routingtabelle für das virtuelle Netzwerk' } }
      ],
      correct: ['A'],
      explanation: { en: 'A SAS token delegates limited, time-bound permissions so clients can upload directly without exposing account keys.', de: 'Ein SAS-Token delegiert begrenzte, zeitlich gebundene Berechtigungen, sodass Clients direkt hochladen können, ohne Kontoschlüssel offenzulegen.' },
      hint: { en: 'The client needs temporary direct data-plane access.', de: 'Der Client benötigt temporären direkten Datenebenen-Zugriff.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az204-037',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which blob type is used for Azure virtual machine disks and supports random read and write operations?', de: 'Welcher Blob-Typ wird für Azure-VM-Datenträger verwendet und unterstützt zufällige Lese- und Schreibvorgänge?' },
      options: [
        { id: 'A', text: { en: 'Page blob', de: 'Page-Blob' } },
        { id: 'B', text: { en: 'Append blob', de: 'Append-Blob' } },
        { id: 'C', text: { en: 'Versioned blob', de: 'Versionierter Blob' } },
        { id: 'D', text: { en: 'Queue blob', de: 'Queue-Blob' } }
      ],
      correct: ['A'],
      explanation: { en: 'Page blobs are designed for random I/O scenarios such as virtual hard disks.', de: 'Page-Blobs sind für Zufalls-E/A-Szenarien wie virtuelle Festplatten ausgelegt.' },
      hint: { en: 'Think about the blob type tied to VHD workloads.', de: 'Denken Sie an den Blob-Typ, der an VHD-Workloads gebunden ist.' },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction'
    },
    {
      id: 'az204-038',
      type: 'multiple',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which design choices can improve latency for globally distributed Azure Cosmos DB workloads? Choose all that apply.', de: 'Welche Entwurfsentscheidungen können die Latenz für global verteilte Azure Cosmos DB-Workloads verbessern? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Use multi-region replication', de: 'Multi-Region-Replikation verwenden' } },
        { id: 'B', text: { en: 'Select an appropriate consistency level', de: 'Eine geeignete Konsistenzstufe wählen' } },
        { id: 'C', text: { en: 'Choose an efficient partition key', de: 'Einen effizienten Partitionsschlüssel wählen' } },
        { id: 'D', text: { en: 'Move active data to the archive tier', de: 'Aktive Daten in die Archive-Stufe verschieben' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Replication, consistency, and partitioning choices all affect proximity, query efficiency, and overall latency in Cosmos DB.', de: 'Replikation, Konsistenz und Partitionierung beeinflussen alle die Nähe, Abfrageeffizienz und Gesamtverzögerung in Cosmos DB.' },
      hint: { en: 'Focus on Cosmos DB architecture choices, not Blob archival options.', de: 'Konzentrieren Sie sich auf Architekturentscheidungen in Cosmos DB und nicht auf Blob-Archivoptionen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/consistency-levels'
    },
    {
      id: 'az204-039',
      type: 'scenario',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'hard',
      scenario: { en: 'Proseware Inc. stores order documents in a Cosmos DB container. A service must update multiple items atomically, but all targeted items share the same logical partition key value.', de: 'Proseware Inc. speichert Auftragsdokumente in einem Cosmos DB-Container. Ein Dienst muss mehrere Elemente atomar aktualisieren, aber alle betroffenen Elemente teilen sich denselben Wert des logischen Partitionsschlüssels.' },
      question: { en: 'Which Cosmos DB capability should be used?', de: 'Welche Cosmos DB-Funktionalität sollte verwendet werden?' },
      options: [
        { id: 'A', text: { en: 'Transactional batch', de: 'Transaktionsbatch' } },
        { id: 'B', text: { en: 'Blob snapshot', de: 'Blob-Snapshot' } },
        { id: 'C', text: { en: 'Cross-region query', de: 'Regionsübergreifende Abfrage' } },
        { id: 'D', text: { en: 'Autoscale throughput', de: 'Autoskalierter Durchsatz' } }
      ],
      correct: ['A'],
      explanation: { en: 'Transactional batch supports atomic operations across multiple items within the same logical partition in Cosmos DB.', de: 'Transaktionsbatch unterstützt atomare Vorgänge über mehrere Elemente innerhalb derselben logischen Partition in Cosmos DB.' },
      hint: { en: 'The transaction boundary is a single logical partition.', de: 'Die Transaktionsgrenze ist eine einzelne logische Partition.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/partitioning-overview'
    },
    {
      id: 'az204-040',
      type: 'single',
      domain: { en: 'Develop for Azure storage', de: 'Für Azure-Speicher entwickeln' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which Azure Cosmos DB setting can automatically delete items after a configured number of seconds?', de: 'Welche Azure Cosmos DB-Einstellung kann Elemente nach einer konfigurierten Anzahl von Sekunden automatisch löschen?' },
      options: [
        { id: 'A', text: { en: 'Time to live', de: 'Time to Live' } },
        { id: 'B', text: { en: 'Partition key', de: 'Partitionsschlüssel' } },
        { id: 'C', text: { en: 'Analytical store', de: 'Analytical Store' } },
        { id: 'D', text: { en: 'Region failover priority', de: 'Region-Failover-Priorität' } }
      ],
      correct: ['A'],
      explanation: { en: 'TTL lets Cosmos DB expire and remove items automatically, which is useful for transient or retention-bound data.', de: 'TTL ermöglicht es Cosmos DB, Elemente automatisch ablaufen zu lassen und zu entfernen, was für flüchtige oder aufbewahrungsgebundene Daten nützlich ist.' },
      hint: { en: 'This feature is based on item age, not indexing.', de: 'Diese Funktion basiert auf dem Alter des Elements und nicht auf der Indizierung.' },
      reference: 'https://learn.microsoft.com/en-us/azure/cosmos-db/request-units'
    },
    {
      id: 'az204-041',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure service is designed to store secrets, certificates, and encryption keys for applications?', de: 'Welcher Azure-Dienst ist dafür ausgelegt, Geheimnisse, Zertifikate und Verschlüsselungsschlüssel für Anwendungen zu speichern?' },
      options: [
        { id: 'A', text: { en: 'Azure Key Vault', de: 'Azure Key Vault' } },
        { id: 'B', text: { en: 'Azure Files', de: 'Azure Files' } },
        { id: 'C', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'D', text: { en: 'Azure Monitor', de: 'Azure Monitor' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Key Vault is the managed service for storing and controlling access to secrets, certificates, and keys.', de: 'Azure Key Vault ist der verwaltete Dienst zum Speichern und Steuern des Zugriffs auf Geheimnisse, Zertifikate und Schlüssel.' },
      hint: { en: 'Think about Azure’s dedicated secret store.', de: 'Denken Sie an den speziellen Geheimnisspeicher von Azure.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-042',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which managed identity type can be attached to multiple Azure resources?', de: 'Welcher Typ verwalteter Identität kann mehreren Azure-Ressourcen zugeordnet werden?' },
      options: [
        { id: 'A', text: { en: 'System-assigned managed identity', de: 'Systemseitig zugewiesene verwaltete Identität' } },
        { id: 'B', text: { en: 'User-assigned managed identity', de: 'Benutzerseitig zugewiesene verwaltete Identität' } },
        { id: 'C', text: { en: 'Dynamic group identity', de: 'Dynamische Gruppenidentität' } },
        { id: 'D', text: { en: 'Application Insights identity', de: 'Application Insights-Identität' } }
      ],
      correct: ['B'],
      explanation: { en: 'A user-assigned managed identity is a standalone Azure resource that can be reused across multiple services.', de: 'Eine benutzerseitig zugewiesene verwaltete Identität ist eine eigenständige Azure-Ressource, die von mehreren Diensten wiederverwendet werden kann.' },
      hint: { en: 'Choose the identity whose lifecycle is independent from one resource.', de: 'Wählen Sie die Identität, deren Lebenszyklus unabhängig von einer einzelnen Ressource ist.' },
      reference: 'https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview'
    },
    {
      id: 'az204-043',
      type: 'scenario',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'hard',
      scenario: { en: 'Contoso Ltd. has an App Service app, several Azure Functions, and an Azure Container Instance. All of them need the same permissions to Key Vault and Storage, and the identity must survive redeployments.', de: 'Contoso Ltd. verfügt über eine App Service-App, mehrere Azure Functions und eine Azure Container Instance. Alle benötigen dieselben Berechtigungen für Key Vault und Storage, und die Identität muss Neu-Bereitstellungen überstehen.' },
      question: { en: 'Which identity approach should be implemented?', de: 'Welcher Identitätsansatz sollte implementiert werden?' },
      options: [
        { id: 'A', text: { en: 'A separate system-assigned identity on every resource', de: 'Eine separate systemseitig zugewiesene Identität auf jeder Ressource' } },
        { id: 'B', text: { en: 'One user-assigned managed identity shared across the resources', de: 'Eine benutzerseitig zugewiesene verwaltete Identität, die von den Ressourcen gemeinsam genutzt wird' } },
        { id: 'C', text: { en: 'A storage account key in app settings', de: 'Ein Speicherkontoschlüssel in den App-Einstellungen' } },
        { id: 'D', text: { en: 'An embedded client secret in source code', de: 'Ein eingebettetes Clientgeheimnis im Quellcode' } }
      ],
      correct: ['B'],
      explanation: { en: 'A shared user-assigned managed identity simplifies permission management and keeps the same principal across redeployments.', de: 'Eine gemeinsam genutzte benutzerseitig zugewiesene verwaltete Identität vereinfacht die Berechtigungsverwaltung und behält denselben Prinzipal über Neu-Bereitstellungen hinweg.' },
      hint: { en: 'The identity must be reusable and independent from one deployment instance.', de: 'Die Identität muss wiederverwendbar und unabhängig von einer einzelnen Bereitstellungsinstanz sein.' },
      reference: 'https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview'
    },
    {
      id: 'az204-044',
      type: 'multiple',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which approaches can an application use to authenticate to Azure Key Vault? Choose all that apply.', de: 'Welche Ansätze kann eine Anwendung zur Authentifizierung bei Azure Key Vault verwenden? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Managed identity', de: 'Verwaltete Identität' } },
        { id: 'B', text: { en: 'Service principal with a certificate', de: 'Dienstprinzipal mit Zertifikat' } },
        { id: 'C', text: { en: 'Anonymous public access', de: 'Anonymer öffentlicher Zugriff' } },
        { id: 'D', text: { en: 'Blob access tier', de: 'Blob-Zugriffsebene' } }
      ],
      correct: ['A', 'B'],
      explanation: { en: 'Applications typically authenticate to Key Vault by using managed identities or Microsoft Entra applications such as service principals.', de: 'Anwendungen authentifizieren sich bei Key Vault typischerweise mit verwalteten Identitäten oder Microsoft Entra-Anwendungen wie Dienstprinzipalen.' },
      hint: { en: 'Select real Azure identity mechanisms, not data settings.', de: 'Wählen Sie echte Azure-Identitätsmechanismen und keine Dateneinstellungen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-045',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which OAuth 2.0 flow is commonly used by a server-side web app that signs in users and can protect a client secret on the backend?', de: 'Welcher OAuth 2.0-Flow wird üblicherweise von einer serverseitigen Web-App verwendet, die Benutzer anmeldet und ein Clientgeheimnis im Backend schützen kann?' },
      options: [
        { id: 'A', text: { en: 'Authorization code flow', de: 'Authorization Code Flow' } },
        { id: 'B', text: { en: 'Implicit flow', de: 'Implicit Flow' } },
        { id: 'C', text: { en: 'Device code flow', de: 'Device Code Flow' } },
        { id: 'D', text: { en: 'ROPC flow', de: 'ROPC-Flow' } }
      ],
      correct: ['A'],
      explanation: { en: 'The authorization code flow is the recommended interactive flow for confidential web apps that can keep secrets or certificates on the server.', de: 'Der Authorization Code Flow ist der empfohlene interaktive Flow für vertrauliche Web-Apps, die Geheimnisse oder Zertifikate auf dem Server sicher speichern können.' },
      hint: { en: 'Choose the flow used by confidential web apps, not legacy browser flows.', de: 'Wählen Sie den Flow für vertrauliche Web-Apps und nicht für ältere Browser-Flows.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow'
    },
    {
      id: 'az204-046',
      type: 'scenario',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: { en: 'Fabrikam Inc. hosts an API in Azure App Service. The API must read a secret from Key Vault without storing any credentials in configuration or source code.', de: 'Fabrikam Inc. hostet eine API in Azure App Service. Die API muss ein Geheimnis aus Key Vault lesen, ohne Anmeldeinformationen in Konfiguration oder Quellcode zu speichern.' },
      question: { en: 'What should be configured first?', de: 'Was sollte zuerst konfiguriert werden?' },
      options: [
        { id: 'A', text: { en: 'Enable a managed identity for the web app', de: 'Eine verwaltete Identität für die Web-App aktivieren' } },
        { id: 'B', text: { en: 'Store the Key Vault secret name in source code only', de: 'Den Key Vault-Geheimnisnamen nur im Quellcode speichern' } },
        { id: 'C', text: { en: 'Embed the Key Vault access key in web.config', de: 'Den Key Vault-Zugriffsschlüssel in web.config einbetten' } },
        { id: 'D', text: { en: 'Create a public anonymous vault', de: 'Einen öffentlichen anonymen Vault erstellen' } }
      ],
      correct: ['A'],
      explanation: { en: 'A managed identity lets the App Service app obtain tokens for Key Vault without storing credentials in the application.', de: 'Eine verwaltete Identität ermöglicht es der App Service-App, Token für Key Vault zu beziehen, ohne Anmeldeinformationen in der Anwendung zu speichern.' },
      hint: { en: 'The goal is secretless authentication from App Service to Key Vault.', de: 'Das Ziel ist eine geheimnisfreie Authentifizierung von App Service zu Key Vault.' },
      reference: 'https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview'
    },
    {
      id: 'az204-047',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Key Vault object type should you use to store a database password?', de: 'Welchen Key Vault-Objekttyp sollten Sie verwenden, um ein Datenbankkennwort zu speichern?' },
      options: [
        { id: 'A', text: { en: 'Secret', de: 'Geheimnis' } },
        { id: 'B', text: { en: 'Key', de: 'Schlüssel' } },
        { id: 'C', text: { en: 'Certificate', de: 'Zertifikat' } },
        { id: 'D', text: { en: 'Partition', de: 'Partition' } }
      ],
      correct: ['A'],
      explanation: { en: 'A secret is the Key Vault object type for storing textual sensitive values such as passwords and connection strings.', de: 'Ein Geheimnis ist der Key Vault-Objekttyp zum Speichern textueller sensibler Werte wie Kennwörter und Verbindungszeichenfolgen.' },
      hint: { en: 'Use the simplest Key Vault object for a password value.', de: 'Verwenden Sie den einfachsten Key Vault-Objekttyp für einen Kennwortwert.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-048',
      type: 'multiple',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which token types can Microsoft Entra ID issue to applications? Choose all that apply.', de: 'Welche Tokentypen kann Microsoft Entra ID an Anwendungen ausstellen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'ID token', de: 'ID-Token' } },
        { id: 'B', text: { en: 'Access token', de: 'Access Token' } },
        { id: 'C', text: { en: 'Refresh token', de: 'Refresh Token' } },
        { id: 'D', text: { en: 'Storage account key', de: 'Speicherkontoschlüssel' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Microsoft Entra ID can issue ID, access, and refresh tokens depending on the flow and application type.', de: 'Microsoft Entra ID kann je nach Flow und Anwendungstyp ID-, Access- und Refresh-Token ausstellen.' },
      hint: { en: 'Choose the items that belong to OAuth and OpenID Connect.', de: 'Wählen Sie die Elemente aus, die zu OAuth und OpenID Connect gehören.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/msal-authentication-flows'
    },
    {
      id: 'az204-049',
      type: 'scenario',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'hard',
      scenario: { en: 'Tailwind Traders is building a daemon that runs nightly without user interaction and must call Microsoft Graph by using application permissions.', de: 'Tailwind Traders entwickelt einen Daemon, der nachts ohne Benutzerinteraktion läuft und Microsoft Graph mit Anwendungsberechtigungen aufrufen muss.' },
      question: { en: 'Which OAuth 2.0 flow should be used?', de: 'Welcher OAuth 2.0-Flow sollte verwendet werden?' },
      options: [
        { id: 'A', text: { en: 'Client credentials flow', de: 'Client Credentials Flow' } },
        { id: 'B', text: { en: 'Authorization code flow', de: 'Authorization Code Flow' } },
        { id: 'C', text: { en: 'Device code flow', de: 'Device Code Flow' } },
        { id: 'D', text: { en: 'Implicit flow', de: 'Implicit Flow' } }
      ],
      correct: ['A'],
      explanation: { en: 'The client credentials flow is intended for app-only access where no signed-in user exists.', de: 'Der Client Credentials Flow ist für App-Only-Zugriff vorgesehen, bei dem kein angemeldeter Benutzer vorhanden ist.' },
      hint: { en: 'There is no interactive sign-in in this scenario.', de: 'In diesem Szenario gibt es keine interaktive Anmeldung.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-client-creds-grant-flow'
    },
    {
      id: 'az204-050',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which Key Vault permission model is recommended for new solutions instead of legacy vault access policies?', de: 'Welches Key Vault-Berechtigungsmodell wird für neue Lösungen anstelle der veralteten Tresorzugriffsrichtlinien empfohlen?' },
      options: [
        { id: 'A', text: { en: 'Azure RBAC', de: 'Azure RBAC' } },
        { id: 'B', text: { en: 'NTFS ACLs', de: 'NTFS-ACLs' } },
        { id: 'C', text: { en: 'Container ACLs', de: 'Container-ACLs' } },
        { id: 'D', text: { en: 'Local admin group', de: 'Lokale Administratorgruppe' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure RBAC is the recommended authorization model for Key Vault because it centralizes permissions and governance in Azure.', de: 'Azure RBAC ist das empfohlene Autorisierungsmodell für Key Vault, weil es Berechtigungen und Governance zentral in Azure verwaltet.' },
      hint: { en: 'Choose the modern Azure-wide authorization model.', de: 'Wählen Sie das moderne, Azure-weite Autorisierungsmodell.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide'
    },
    {
      id: 'az204-051',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which token should an API validate to authorize a caller?', de: 'Welches Token sollte eine API überprüfen, um einen Aufrufer zu autorisieren?' },
      options: [
        { id: 'A', text: { en: 'Access token', de: 'Access Token' } },
        { id: 'B', text: { en: 'Refresh token', de: 'Refresh Token' } },
        { id: 'C', text: { en: 'SAS token', de: 'SAS-Token' } },
        { id: 'D', text: { en: 'CSRF token', de: 'CSRF-Token' } }
      ],
      correct: ['A'],
      explanation: { en: 'An API should validate an access token because it carries the audience, scopes, and claims intended for API authorization.', de: 'Eine API sollte ein Access Token überprüfen, weil es Audience, Scopes und Claims für die API-Autorisierung enthält.' },
      hint: { en: 'Choose the token type that represents permission to call a resource.', de: 'Wählen Sie den Tokentyp, der die Berechtigung zum Aufruf einer Ressource darstellt.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/msal-authentication-flows'
    },
    {
      id: 'az204-052',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'What is the main security benefit of using a system-assigned managed identity instead of a client secret stored in configuration?', de: 'Was ist der wichtigste Sicherheitsvorteil der Verwendung einer systemseitig zugewiesenen verwalteten Identität statt eines in der Konfiguration gespeicherten Clientgeheimnisses?' },
      options: [
        { id: 'A', text: { en: 'The application no longer has to store and rotate the secret itself', de: 'Die Anwendung muss das Geheimnis nicht mehr selbst speichern und rotieren' } },
        { id: 'B', text: { en: 'The app can bypass Microsoft Entra ID', de: 'Die App kann Microsoft Entra ID umgehen' } },
        { id: 'C', text: { en: 'The app becomes publicly accessible', de: 'Die App wird öffentlich zugänglich' } },
        { id: 'D', text: { en: 'The app can skip RBAC assignments', de: 'Die App kann RBAC-Zuweisungen überspringen' } }
      ],
      correct: ['A'],
      explanation: { en: 'Managed identities remove secret handling from the application and let Azure manage token issuance and credential lifecycle.', de: 'Verwaltete Identitäten nehmen der Anwendung die Geheimnisverwaltung ab und lassen Azure die Tokenausstellung und den Lebenszyklus der Anmeldeinformationen verwalten.' },
      hint: { en: 'Focus on what the application no longer needs to keep.', de: 'Konzentrieren Sie sich darauf, was die Anwendung nicht mehr selbst aufbewahren muss.' },
      reference: 'https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview'
    },
    {
      id: 'az204-053',
      type: 'scenario',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'hard',
      scenario: { en: 'Litware Inc. is building a single-page application that signs in users directly in the browser and then calls a protected API. The sign-in flow must follow current security guidance.', de: 'Litware Inc. entwickelt eine Single-Page-Anwendung, die Benutzer direkt im Browser anmeldet und dann eine geschützte API aufruft. Der Anmeldeflow muss den aktuellen Sicherheitsempfehlungen folgen.' },
      question: { en: 'Which flow should the developers use?', de: 'Welchen Flow sollten die Entwickler verwenden?' },
      options: [
        { id: 'A', text: { en: 'Authorization code flow with PKCE', de: 'Authorization Code Flow mit PKCE' } },
        { id: 'B', text: { en: 'Implicit flow only', de: 'Nur Implicit Flow' } },
        { id: 'C', text: { en: 'Client credentials flow', de: 'Client Credentials Flow' } },
        { id: 'D', text: { en: 'SAS flow', de: 'SAS-Flow' } }
      ],
      correct: ['A'],
      explanation: { en: 'For SPAs, the recommended interactive flow is authorization code with PKCE because it is more secure than the older implicit flow.', de: 'Für SPAs ist der empfohlene interaktive Flow der Authorization Code Flow mit PKCE, weil er sicherer als der ältere Implicit Flow ist.' },
      hint: { en: 'Pick the current browser-based sign-in pattern.', de: 'Wählen Sie das aktuelle browserbasierte Anmeldemuster.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow'
    },
    {
      id: 'az204-054',
      type: 'multiple',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which items can Azure Key Vault store? Choose all that apply.', de: 'Welche Elemente kann Azure Key Vault speichern? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Secrets', de: 'Geheimnisse' } },
        { id: 'B', text: { en: 'Keys', de: 'Schlüssel' } },
        { id: 'C', text: { en: 'Certificates', de: 'Zertifikate' } },
        { id: 'D', text: { en: 'Virtual network route tables', de: 'Routingtabellen für virtuelle Netzwerke' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Key Vault stores secrets, keys, and certificates. Networking resources are managed elsewhere in Azure.', de: 'Key Vault speichert Geheimnisse, Schlüssel und Zertifikate. Netzwerkressourcen werden an anderer Stelle in Azure verwaltet.' },
      hint: { en: 'Pick the cryptographic and secret objects.', de: 'Wählen Sie die kryptografischen und geheimen Objekte aus.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-055',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which app registration setting defines where Microsoft Entra ID sends the authorization response after a user signs in?', de: 'Welche App-Registrierungseinstellung legt fest, wohin Microsoft Entra ID die Autorisierungsantwort nach der Benutzeranmeldung sendet?' },
      options: [
        { id: 'A', text: { en: 'Redirect URI', de: 'Umleitungs-URI' } },
        { id: 'B', text: { en: 'Tenant display name', de: 'Mandantenanzeigename' } },
        { id: 'C', text: { en: 'Management group', de: 'Verwaltungsgruppe' } },
        { id: 'D', text: { en: 'Blob endpoint', de: 'Blob-Endpunkt' } }
      ],
      correct: ['A'],
      explanation: { en: 'The redirect URI tells Microsoft Entra ID where to return the authorization code or tokens after sign-in.', de: 'Die Umleitungs-URI teilt Microsoft Entra ID mit, wohin der Autorisierungscode oder die Token nach der Anmeldung zurückgesendet werden.' },
      hint: { en: 'This value is part of the sign-in round trip.', de: 'Dieser Wert ist Teil des Anmeldeumlaufs.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow'
    },
    {
      id: 'az204-056',
      type: 'scenario',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: { en: 'Woodgrove Bank must centrally store and rotate a TLS certificate that is used by several Azure-hosted applications. The solution requires auditing and controlled access.', de: 'Woodgrove Bank muss ein TLS-Zertifikat, das von mehreren in Azure gehosteten Anwendungen verwendet wird, zentral speichern und rotieren. Die Lösung erfordert Überwachung und kontrollierten Zugriff.' },
      question: { en: 'Which Azure service should store the certificate?', de: 'Welcher Azure-Dienst sollte das Zertifikat speichern?' },
      options: [
        { id: 'A', text: { en: 'Azure Key Vault', de: 'Azure Key Vault' } },
        { id: 'B', text: { en: 'Azure Cache for Redis', de: 'Azure Cache for Redis' } },
        { id: 'C', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'D', text: { en: 'Azure Event Grid', de: 'Azure Event Grid' } }
      ],
      correct: ['A'],
      explanation: { en: 'Key Vault includes certificate management and supports secure access, auditing, and controlled distribution.', de: 'Key Vault enthält Zertifikatsverwaltung und unterstützt sicheren Zugriff, Überwachung und kontrollierte Verteilung.' },
      hint: { en: 'Treat certificates as security assets, not as configuration text.', de: 'Behandeln Sie Zertifikate als Sicherheitsobjekte und nicht als Konfigurationstext.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-057',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Key Vault networking feature gives the vault a private IP address inside your virtual network?', de: 'Welche Key Vault-Netzwerkfunktion gibt dem Vault eine private IP-Adresse innerhalb Ihres virtuellen Netzwerks?' },
      options: [
        { id: 'A', text: { en: 'Private endpoint', de: 'Private Endpoint' } },
        { id: 'B', text: { en: 'Traffic Manager profile', de: 'Traffic Manager-Profil' } },
        { id: 'C', text: { en: 'Autoscale rule', de: 'Autoskalierungsregel' } },
        { id: 'D', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } }
      ],
      correct: ['A'],
      explanation: { en: 'A private endpoint maps the Key Vault service to a private IP in your VNET, reducing public exposure.', de: 'Ein Private Endpoint bildet den Key Vault-Dienst auf eine private IP in Ihrem VNET ab und reduziert die öffentliche Angriffsfläche.' },
      hint: { en: 'The requirement is private connectivity, not routing.', de: 'Die Anforderung betrifft private Konnektivität und nicht Routing.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-058',
      type: 'multiple',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which practices help protect application secrets in Azure? Choose all that apply.', de: 'Welche Vorgehensweisen helfen dabei, Anwendungsgeheimnisse in Azure zu schützen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Use managed identities where possible', de: 'Nach Möglichkeit verwaltete Identitäten verwenden' } },
        { id: 'B', text: { en: 'Store secrets in Azure Key Vault', de: 'Geheimnisse in Azure Key Vault speichern' } },
        { id: 'C', text: { en: 'Grant least privilege with RBAC', de: 'Least Privilege mit RBAC gewähren' } },
        { id: 'D', text: { en: 'Hard-code secrets in the application', de: 'Geheimnisse in der Anwendung fest codieren' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Managed identities, Key Vault, and least privilege reduce secret exposure and access risk. Hard-coding secrets increases risk.', de: 'Verwaltete Identitäten, Key Vault und Least Privilege verringern die Offenlegung von Geheimnissen und Zugriffsrisiken. Das Festcodieren von Geheimnissen erhöht das Risiko.' },
      hint: { en: 'Pick the options that remove or tightly control secrets.', de: 'Wählen Sie die Optionen, die Geheimnisse entfernen oder streng kontrollieren.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide'
    },
    {
      id: 'az204-059',
      type: 'scenario',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'hard',
      scenario: { en: 'Proseware Inc. is registering an application that must accept sign-ins only from users in the company tenant and must reject accounts from all other organizations and personal Microsoft accounts.', de: 'Proseware Inc. registriert eine Anwendung, die Anmeldungen nur von Benutzern im Unternehmensmandanten akzeptieren und Konten aus allen anderen Organisationen sowie persönliche Microsoft-Konten ablehnen muss.' },
      question: { en: 'Which supported account type should be selected for the app registration?', de: 'Welcher unterstützte Kontotyp sollte für die App-Registrierung ausgewählt werden?' },
      options: [
        { id: 'A', text: { en: 'Accounts in this organizational directory only', de: 'Konten nur in diesem Organisationsverzeichnis' } },
        { id: 'B', text: { en: 'Accounts in any organizational directory', de: 'Konten in jedem Organisationsverzeichnis' } },
        { id: 'C', text: { en: 'Personal Microsoft accounts only', de: 'Nur persönliche Microsoft-Konten' } },
        { id: 'D', text: { en: 'Any Azure subscription owner', de: 'Jeder Azure-Abonnementbesitzer' } }
      ],
      correct: ['A'],
      explanation: { en: 'A single-tenant app registration restricts sign-in to users from the home tenant only.', de: 'Eine Single-Tenant-App-Registrierung beschränkt die Anmeldung auf Benutzer aus dem Heimmandanten.' },
      hint: { en: 'The application must not trust identities from other tenants.', de: 'Die Anwendung darf Identitäten aus anderen Mandanten nicht vertrauen.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/single-and-multi-tenant-apps'
    },
    {
      id: 'az204-060',
      type: 'single',
      domain: { en: 'Implement Azure security', de: 'Azure-Sicherheit implementieren' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which App Service feature lets application settings reference Azure Key Vault secrets so secret values are not stored directly in the app configuration?', de: 'Welche App Service-Funktion ermöglicht es, in Anwendungseinstellungen auf Azure Key Vault-Geheimnisse zu verweisen, sodass Geheimniswerte nicht direkt in der App-Konfiguration gespeichert werden?' },
      options: [
        { id: 'A', text: { en: 'Key Vault references', de: 'Key Vault-Referenzen' } },
        { id: 'B', text: { en: 'Deployment slots', de: 'Bereitstellungsslots' } },
        { id: 'C', text: { en: 'Health check', de: 'Health Check' } },
        { id: 'D', text: { en: 'Autoscale settings', de: 'Autoskalierungseinstellungen' } }
      ],
      correct: ['A'],
      explanation: { en: 'Key Vault references allow App Service configuration values to be resolved from Key Vault at runtime instead of storing the secret value directly.', de: 'Key Vault-Referenzen ermöglichen es, Konfigurationswerte in App Service zur Laufzeit aus Key Vault aufzulösen, anstatt den Geheimniswert direkt zu speichern.' },
      hint: { en: 'The app configuration should point to a secret, not contain it.', de: 'Die App-Konfiguration soll auf ein Geheimnis zeigen und es nicht enthalten.' },
      reference: 'https://learn.microsoft.com/en-us/azure/key-vault/general/overview'
    },
    {
      id: 'az204-061',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure service collects request, dependency, exception, and trace telemetry for applications?', de: 'Welcher Azure-Dienst erfasst Anforderungen, Abhängigkeiten, Ausnahmen und Trace-Telemetrie für Anwendungen?' },
      options: [
        { id: 'A', text: { en: 'Application Insights', de: 'Application Insights' } },
        { id: 'B', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'C', text: { en: 'Azure Policy', de: 'Azure Policy' } },
        { id: 'D', text: { en: 'Microsoft Purview', de: 'Microsoft Purview' } }
      ],
      correct: ['A'],
      explanation: { en: 'Application Insights is Azure Monitor’s application performance management component for telemetry, diagnostics, and analysis.', de: 'Application Insights ist die Anwendungsleistungsmanagement-Komponente von Azure Monitor für Telemetrie, Diagnose und Analyse.' },
      hint: { en: 'Think about the service dedicated to application telemetry.', de: 'Denken Sie an den Dienst, der speziell für Anwendungstelemetrie vorgesehen ist.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-062',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure Monitor resource stores log data that you query by using Kusto Query Language?', de: 'Welche Azure Monitor-Ressource speichert Protokolldaten, die Sie mit Kusto Query Language abfragen?' },
      options: [
        { id: 'A', text: { en: 'Log Analytics workspace', de: 'Log Analytics-Arbeitsbereich' } },
        { id: 'B', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'C', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'D', text: { en: 'Route filter', de: 'Routenfilter' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Monitor Logs stores and analyzes log data in a Log Analytics workspace by using KQL.', de: 'Azure Monitor Logs speichert und analysiert Protokolldaten in einem Log Analytics-Arbeitsbereich mithilfe von KQL.' },
      hint: { en: 'Choose the workspace, not the notification target.', de: 'Wählen Sie den Arbeitsbereich und nicht das Benachrichtigungsziel.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/design-logs-deployment'
    },
    {
      id: 'az204-063',
      type: 'scenario',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'hard',
      scenario: { en: 'Contoso Ltd. needs to trace a customer request as it moves through App Service, Azure Functions, Service Bus, and Cosmos DB to find where latency is introduced.', de: 'Contoso Ltd. muss eine Kundenanforderung nachverfolgen, während sie App Service, Azure Functions, Service Bus und Cosmos DB durchläuft, um festzustellen, wo Latenz entsteht.' },
      question: { en: 'Which capability should the team use?', de: 'Welche Funktionalität sollte das Team verwenden?' },
      options: [
        { id: 'A', text: { en: 'Application Insights distributed tracing', de: 'Verteiltes Tracing mit Application Insights' } },
        { id: 'B', text: { en: 'Azure Policy compliance scan', de: 'Azure Policy-Complianceprüfung' } },
        { id: 'C', text: { en: 'Storage lifecycle management', de: 'Storage-Lebenszyklusverwaltung' } },
        { id: 'D', text: { en: 'Key Vault certificate rotation', de: 'Key Vault-Zertifikatsrotation' } }
      ],
      correct: ['A'],
      explanation: { en: 'Distributed tracing correlates telemetry across components so you can see the full end-to-end request path and latency contributions.', de: 'Verteiltes Tracing korreliert Telemetrie über Komponenten hinweg, sodass Sie den vollständigen End-to-End-Anforderungspfad und die Latenzbeiträge sehen können.' },
      hint: { en: 'The requirement is end-to-end correlation across services.', de: 'Die Anforderung betrifft End-to-End-Korrelation über Dienste hinweg.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-064',
      type: 'multiple',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which telemetry types can Application Insights automatically collect for a web application? Choose all that apply.', de: 'Welche Telemetrietypen kann Application Insights für eine Webanwendung automatisch erfassen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Requests', de: 'Anforderungen' } },
        { id: 'B', text: { en: 'Dependencies', de: 'Abhängigkeiten' } },
        { id: 'C', text: { en: 'Exceptions', de: 'Ausnahmen' } },
        { id: 'D', text: { en: 'RBAC role assignments', de: 'RBAC-Rollenzuweisungen' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Application Insights collects application telemetry such as requests, dependency calls, and exceptions. RBAC assignments are governance data, not app telemetry.', de: 'Application Insights erfasst Anwendungstelemetrie wie Anforderungen, Abhängigkeitsaufrufe und Ausnahmen. RBAC-Zuweisungen sind Governance-Daten und keine Anwendungstelemetrie.' },
      hint: { en: 'Pick runtime app telemetry, not Azure governance information.', de: 'Wählen Sie Laufzeit-Anwendungstelemetrie und keine Azure-Governanceinformationen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-065',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure Monitor component sends email, SMS, push, or webhook notifications when an alert fires?', de: 'Welche Azure Monitor-Komponente sendet E-Mail-, SMS-, Push- oder Webhook-Benachrichtigungen, wenn ein Alarm ausgelöst wird?' },
      options: [
        { id: 'A', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'B', text: { en: 'Workbook', de: 'Arbeitsmappe' } },
        { id: 'C', text: { en: 'Data collection endpoint', de: 'Datensammlungsendpunkt' } },
        { id: 'D', text: { en: 'Role assignment', de: 'Rollenzuweisung' } }
      ],
      correct: ['A'],
      explanation: { en: 'Action groups define who gets notified and what actions run when an alert rule is triggered.', de: 'Aktionsgruppen definieren, wer benachrichtigt wird und welche Aktionen ausgeführt werden, wenn eine Alarmregel ausgelöst wird.' },
      hint: { en: 'The alert rule detects the condition, but another object handles actions.', de: 'Die Alarmregel erkennt die Bedingung, aber ein anderes Objekt behandelt die Aktionen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups'
    },
    {
      id: 'az204-066',
      type: 'scenario',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: { en: 'Fabrikam Inc. runs a latency-sensitive HTTP API on Azure Functions. The team sees cold-start delays and wants lower startup time while keeping event-driven scaling.', de: 'Fabrikam Inc. betreibt eine latenzempfindliche HTTP-API auf Azure Functions. Das Team beobachtet Cold-Start-Verzögerungen und möchte niedrigere Startzeiten bei weiterhin ereignisgesteuerter Skalierung.' },
      question: { en: 'Which hosting change is most appropriate?', de: 'Welche Hostingänderung ist am sinnvollsten?' },
      options: [
        { id: 'A', text: { en: 'Move to the Premium plan with pre-warmed instances', de: 'Auf den Premium-Plan mit vorgewärmten Instanzen wechseln' } },
        { id: 'B', text: { en: 'Store telemetry in Blob Storage only', de: 'Telemetrie nur in Blob Storage speichern' } },
        { id: 'C', text: { en: 'Disable retries', de: 'Wiederholungen deaktivieren' } },
        { id: 'D', text: { en: 'Replace Application Insights with DNS', de: 'Application Insights durch DNS ersetzen' } }
      ],
      correct: ['A'],
      explanation: { en: 'Premium plan pre-warmed instances reduce cold-start impact while preserving a managed Azure Functions hosting experience.', de: 'Vorbereitete Instanzen im Premium-Plan verringern die Auswirkungen von Cold Starts und erhalten gleichzeitig ein verwaltetes Azure Functions-Hosting.' },
      hint: { en: 'The solution should improve startup time without abandoning Functions.', de: 'Die Lösung soll die Startzeit verbessern, ohne Functions aufzugeben.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-functions/functions-scale'
    },
    {
      id: 'az204-067',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which App Service capability probes a path and removes unhealthy instances from the load balancer rotation?', de: 'Welche App Service-Funktion prüft einen Pfad und entfernt fehlerhafte Instanzen aus der Load-Balancer-Rotation?' },
      options: [
        { id: 'A', text: { en: 'Health check', de: 'Health Check' } },
        { id: 'B', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'C', text: { en: 'Deployment center', de: 'Bereitstellungscenter' } },
        { id: 'D', text: { en: 'Autoscale profile', de: 'Autoskalierungsprofil' } }
      ],
      correct: ['A'],
      explanation: { en: 'Health check sends periodic probes to a configured endpoint and helps App Service route traffic only to healthy instances.', de: 'Health Check sendet regelmäßige Prüfungen an einen konfigurierten Endpunkt und hilft App Service, Datenverkehr nur an fehlerfreie Instanzen zu leiten.' },
      hint: { en: 'The feature watches instance health, not global DNS routing.', de: 'Die Funktion überwacht die Integrität von Instanzen und nicht das globale DNS-Routing.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview'
    },
    {
      id: 'az204-068',
      type: 'multiple',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which actions can reduce repeated database reads for frequently used data? Choose all that apply.', de: 'Welche Maßnahmen können wiederholte Datenbanklesevorgänge für häufig verwendete Daten reduzieren? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Use Azure Cache for Redis', de: 'Azure Cache for Redis verwenden' } },
        { id: 'B', text: { en: 'Cache immutable reference data in memory where appropriate', de: 'Unveränderliche Referenzdaten bei Bedarf im Speicher zwischenspeichern' } },
        { id: 'C', text: { en: 'Cache frequently read data strategically', de: 'Häufig gelesene Daten gezielt zwischenspeichern' } },
        { id: 'D', text: { en: 'Disable HTTPS', de: 'HTTPS deaktivieren' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Caching is a common optimization for read-heavy workloads. Disabling HTTPS does not solve repeated database access.', de: 'Caching ist eine übliche Optimierung für leseintensive Workloads. Das Deaktivieren von HTTPS löst wiederholte Datenbankzugriffe nicht.' },
      hint: { en: 'Choose the options that avoid unnecessary trips to the database.', de: 'Wählen Sie die Optionen aus, die unnötige Datenbankzugriffe vermeiden.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-cache-for-redis/cache-overview'
    },
    {
      id: 'az204-069',
      type: 'scenario',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'hard',
      scenario: { en: 'Tailwind Traders must alert the operations team when the 95th percentile request duration for a production API exceeds two seconds for 15 minutes.', de: 'Tailwind Traders muss das Betriebsteam benachrichtigen, wenn die Anforderungsdauer im 95. Perzentil für eine Produktions-API 15 Minuten lang zwei Sekunden überschreitet.' },
      question: { en: 'Which alert type should be configured?', de: 'Welcher Alarmtyp sollte konfiguriert werden?' },
      options: [
        { id: 'A', text: { en: 'Metric alert', de: 'Metrikalarm' } },
        { id: 'B', text: { en: 'Activity log alert', de: 'Aktivitätsprotokollalarm' } },
        { id: 'C', text: { en: 'Azure Policy assignment', de: 'Azure Policy-Zuweisung' } },
        { id: 'D', text: { en: 'RBAC role alert', de: 'RBAC-Rollenalarm' } }
      ],
      correct: ['A'],
      explanation: { en: 'Metric alerts are designed for time-series signals such as percentile-based request duration thresholds.', de: 'Metrikalarme sind für Zeitreihensignale wie Schwellenwerte für die Anforderungsdauer im Perzentil ausgelegt.' },
      hint: { en: 'The condition is numeric telemetry over time.', de: 'Die Bedingung ist numerische Telemetrie über die Zeit.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-overview'
    },
    {
      id: 'az204-070',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which query language is used to analyze data in Log Analytics and Application Insights logs?', de: 'Welche Abfragesprache wird verwendet, um Daten in Log Analytics und Application Insights-Protokollen zu analysieren?' },
      options: [
        { id: 'A', text: { en: 'Kusto Query Language', de: 'Kusto Query Language' } },
        { id: 'B', text: { en: 'T-SQL', de: 'T-SQL' } },
        { id: 'C', text: { en: 'XQuery', de: 'XQuery' } },
        { id: 'D', text: { en: 'GraphQL', de: 'GraphQL' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure Monitor Logs uses Kusto Query Language for filtering, aggregating, and correlating telemetry.', de: 'Azure Monitor Logs verwendet Kusto Query Language zum Filtern, Aggregieren und Korrelieren von Telemetrie.' },
      hint: { en: 'Think of the language used across Azure Monitor log analysis.', de: 'Denken Sie an die Sprache, die in der Azure Monitor-Protokollanalyse verwendet wird.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/design-logs-deployment'
    },
    {
      id: 'az204-071',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Application Insights feature periodically tests URL availability from multiple regions?', de: 'Welche Application Insights-Funktion testet regelmäßig die URL-Verfügbarkeit aus mehreren Regionen?' },
      options: [
        { id: 'A', text: { en: 'Availability test', de: 'Verfügbarkeitstest' } },
        { id: 'B', text: { en: 'Role assignment', de: 'Rollenzuweisung' } },
        { id: 'C', text: { en: 'Blob lease', de: 'Blob-Lease' } },
        { id: 'D', text: { en: 'Management group', de: 'Verwaltungsgruppe' } }
      ],
      correct: ['A'],
      explanation: { en: 'Availability tests send requests to your endpoint from multiple locations to validate uptime and responsiveness.', de: 'Verfügbarkeitstests senden Anforderungen von mehreren Standorten an Ihren Endpunkt, um Betriebszeit und Reaktionsfähigkeit zu prüfen.' },
      hint: { en: 'This feature simulates external user reachability.', de: 'Diese Funktion simuliert die Erreichbarkeit aus Sicht externer Benutzer.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/availability-overview'
    },
    {
      id: 'az204-072',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Application Insights feature reduces telemetry volume while preserving statistical usefulness for analysis?', de: 'Welche Application Insights-Funktion reduziert das Telemetrievolumen und erhält gleichzeitig die statistische Aussagekraft für Analysen?' },
      options: [
        { id: 'A', text: { en: 'Sampling', de: 'Sampling' } },
        { id: 'B', text: { en: 'Private endpoint', de: 'Private Endpoint' } },
        { id: 'C', text: { en: 'Geo-redundant storage', de: 'Georedundanter Speicher' } },
        { id: 'D', text: { en: 'Traffic routing', de: 'Verkehrslenkung' } }
      ],
      correct: ['A'],
      explanation: { en: 'Sampling lowers ingestion volume and cost while retaining a representative dataset for trends and diagnostics.', de: 'Sampling verringert Aufnahmevolumen und Kosten und behält dennoch einen repräsentativen Datensatz für Trends und Diagnose.' },
      hint: { en: 'The goal is lower telemetry cost, not lower traffic.', de: 'Das Ziel sind geringere Telemetriekosten und nicht weniger Datenverkehr.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-073',
      type: 'scenario',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'hard',
      scenario: { en: 'Litware Inc. needs to keep enough production telemetry to diagnose rare issues, but full telemetry ingestion has become too expensive.', de: 'Litware Inc. muss genügend Produktionstelemetrie behalten, um seltene Probleme zu diagnostizieren, aber die vollständige Telemetrieaufnahme ist zu teuer geworden.' },
      question: { en: 'What should the team enable?', de: 'Was sollte das Team aktivieren?' },
      options: [
        { id: 'A', text: { en: 'Application Insights sampling', de: 'Application Insights-Sampling' } },
        { id: 'B', text: { en: 'Public container access', de: 'Öffentlicher Containerzugriff' } },
        { id: 'C', text: { en: 'Storage account key rotation only', de: 'Nur Rotation des Speicherkontoschlüssels' } },
        { id: 'D', text: { en: 'API version rollback', de: 'Rollback der API-Version' } }
      ],
      correct: ['A'],
      explanation: { en: 'Sampling is the standard way to reduce telemetry volume and cost while retaining useful observability patterns.', de: 'Sampling ist der Standardweg, um Telemetrievolumen und -kosten zu reduzieren und dennoch nützliche Beobachtungsmuster zu behalten.' },
      hint: { en: 'The team wants fewer telemetry items, not less functionality.', de: 'Das Team möchte weniger Telemetrieelemente und nicht weniger Funktionalität.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-074',
      type: 'multiple',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which signals can drive Azure Monitor autoscale rules? Choose all that apply.', de: 'Welche Signale können Azure Monitor-Autoskalierungsregeln steuern? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'CPU percentage', de: 'CPU-Prozentsatz' } },
        { id: 'B', text: { en: 'Request count', de: 'Anforderungsanzahl' } },
        { id: 'C', text: { en: 'A schedule', de: 'Ein Zeitplan' } },
        { id: 'D', text: { en: 'RBAC assignment count', de: 'Anzahl der RBAC-Zuweisungen' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Autoscale can respond to metrics such as CPU or requests and can also follow scheduled scaling rules.', de: 'Autoskalierung kann auf Metriken wie CPU oder Anforderungen reagieren und auch geplanten Skalierungsregeln folgen.' },
      hint: { en: 'Choose valid autoscale inputs, not governance metadata.', de: 'Wählen Sie gültige Autoskalierungseingaben und keine Governance-Metadaten.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/autoscale/autoscale-overview'
    },
    {
      id: 'az204-075',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure resource lets you centralize and correlate logs from many Azure resources in one place?', de: 'Welche Azure-Ressource ermöglicht es, Protokolle vieler Azure-Ressourcen an einem Ort zu zentralisieren und zu korrelieren?' },
      options: [
        { id: 'A', text: { en: 'Log Analytics workspace', de: 'Log Analytics-Arbeitsbereich' } },
        { id: 'B', text: { en: 'Network security group', de: 'Netzwerksicherheitsgruppe' } },
        { id: 'C', text: { en: 'Container registry', de: 'Container Registry' } },
        { id: 'D', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } }
      ],
      correct: ['A'],
      explanation: { en: 'A Log Analytics workspace is the central store for Azure Monitor log data from many sources.', de: 'Ein Log Analytics-Arbeitsbereich ist der zentrale Speicher für Azure Monitor-Protokolldaten aus vielen Quellen.' },
      hint: { en: 'This resource is the core container for Azure Monitor Logs.', de: 'Diese Ressource ist der zentrale Container für Azure Monitor Logs.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/design-logs-deployment'
    },
    {
      id: 'az204-076',
      type: 'scenario',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: { en: 'Woodgrove Bank wants to release a new version of a production App Service app gradually and limit user impact if the version has hidden failures.', de: 'Woodgrove Bank möchte eine neue Version einer produktiven App Service-App schrittweise freigeben und die Auswirkungen auf Benutzer begrenzen, falls die Version versteckte Fehler enthält.' },
      question: { en: 'Which App Service approach should be used?', de: 'Welcher App Service-Ansatz sollte verwendet werden?' },
      options: [
        { id: 'A', text: { en: 'Deployment slots with traffic routing', de: 'Bereitstellungsslots mit Verkehrslenkung' } },
        { id: 'B', text: { en: 'Permanent public preview endpoint', de: 'Dauerhafter öffentlicher Vorschauendpunkt' } },
        { id: 'C', text: { en: 'Disable monitoring during deployment', de: 'Überwachung während der Bereitstellung deaktivieren' } },
        { id: 'D', text: { en: 'Manual DNS edits for every deployment', de: 'Manuelle DNS-Änderungen für jede Bereitstellung' } }
      ],
      correct: ['A'],
      explanation: { en: 'Deployment slots and traffic routing allow staged rollout and quick rollback with lower production risk.', de: 'Bereitstellungsslots und Verkehrslenkung ermöglichen einen gestuften Rollout und ein schnelles Rollback mit geringerem Produktionsrisiko.' },
      hint: { en: 'Use the App Service deployment feature built for safe releases.', de: 'Verwenden Sie die App Service-Bereitstellungsfunktion für sichere Releases.' },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az204-077',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Application Insights feature visualizes application components and their dependency relationships?', de: 'Welche Application Insights-Funktion visualisiert Anwendungskomponenten und ihre Abhängigkeitsbeziehungen?' },
      options: [
        { id: 'A', text: { en: 'Application Map', de: 'Application Map' } },
        { id: 'B', text: { en: 'Resource lock', de: 'Ressourcensperre' } },
        { id: 'C', text: { en: 'Role assignment', de: 'Rollenzuweisung' } },
        { id: 'D', text: { en: 'Blob inventory', de: 'Blob-Inventar' } }
      ],
      correct: ['A'],
      explanation: { en: 'Application Map helps visualize request flow and dependencies among monitored application components.', de: 'Application Map hilft dabei, Anforderungsfluss und Abhängigkeiten zwischen überwachten Anwendungskomponenten zu visualisieren.' },
      hint: { en: 'The feature draws a topology of app relationships.', de: 'Die Funktion zeichnet eine Topologie der App-Beziehungen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-078',
      type: 'multiple',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Application Insights capabilities help diagnose live production problems? Choose all that apply.', de: 'Welche Application Insights-Funktionen helfen bei der Diagnose von Live-Produktionsproblemen? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Live Metrics', de: 'Live Metrics' } },
        { id: 'B', text: { en: 'Application Map', de: 'Application Map' } },
        { id: 'C', text: { en: 'Smart Detection', de: 'Smart Detection' } },
        { id: 'D', text: { en: 'Route table', de: 'Routentabelle' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Live Metrics, Application Map, and Smart Detection are Application Insights features for observing health and diagnosing issues.', de: 'Live Metrics, Application Map und Smart Detection sind Application Insights-Funktionen zur Beobachtung des Zustands und zur Diagnose von Problemen.' },
      hint: { en: 'Choose the diagnostic tools from Application Insights.', de: 'Wählen Sie die Diagnosetools aus Application Insights.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-079',
      type: 'scenario',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'hard',
      scenario: { en: 'Proseware Inc. has a failed request in production and must identify the exact dependency call and exception that caused the failure for that single transaction.', de: 'Proseware Inc. hat eine fehlgeschlagene Anforderung in der Produktion und muss den genauen Abhängigkeitsaufruf und die Ausnahme identifizieren, die den Fehler für diese einzelne Transaktion verursacht haben.' },
      question: { en: 'Which tool should the developer use first?', de: 'Welches Tool sollte der Entwickler zuerst verwenden?' },
      options: [
        { id: 'A', text: { en: 'Application Insights transaction search and end-to-end transaction details', de: 'Application Insights-Transaktionssuche und End-to-End-Transaktionsdetails' } },
        { id: 'B', text: { en: 'Azure Policy initiative assignment', de: 'Azure Policy-Initiativzuweisung' } },
        { id: 'C', text: { en: 'Blob lifecycle rules', de: 'Blob-Lebenszyklusregeln' } },
        { id: 'D', text: { en: 'DNS zone transfer', de: 'DNS-Zonentransfer' } }
      ],
      correct: ['A'],
      explanation: { en: 'Transaction search and related transaction details let developers inspect the exact request, dependency chain, and exception path for one failure.', de: 'Transaktionssuche und zugehörige Transaktionsdetails ermöglichen Entwicklern die Untersuchung der genauen Anforderung, der Abhängigkeitskette und des Ausnahmepfads für einen einzelnen Fehler.' },
      hint: { en: 'The team needs per-request drill-down, not a governance report.', de: 'Das Team benötigt eine Detailanalyse pro Anforderung und keinen Governance-Bericht.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview'
    },
    {
      id: 'az204-080',
      type: 'single',
      domain: { en: 'Monitor, troubleshoot, and optimize Azure solutions', de: 'Azure-Lösungen überwachen, Fehler beheben und optimieren' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'If an App Service plan shows sustained high CPU because demand is legitimately increasing, which optimization should you apply first?', de: 'Wenn ein App Service-Plan dauerhaft hohe CPU-Werte zeigt, weil die Nachfrage tatsächlich steigt, welche Optimierung sollten Sie zuerst anwenden?' },
      options: [
        { id: 'A', text: { en: 'Scale out the App Service plan', de: 'Den App Service-Plan horizontal skalieren' } },
        { id: 'B', text: { en: 'Disable logging', de: 'Protokollierung deaktivieren' } },
        { id: 'C', text: { en: 'Delete Application Insights', de: 'Application Insights löschen' } },
        { id: 'D', text: { en: 'Remove health checks', de: 'Health Checks entfernen' } }
      ],
      correct: ['A'],
      explanation: { en: 'When the load is real and growing, scaling out adds instances to distribute work and reduce CPU pressure.', de: 'Wenn die Last real ist und wächst, fügt horizontale Skalierung Instanzen hinzu, um die Arbeit zu verteilen und die CPU-Belastung zu senken.' },
      hint: { en: 'The app is healthy but overloaded, so add capacity.', de: 'Die App ist funktionsfähig, aber überlastet, daher sollte Kapazität hinzugefügt werden.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/autoscale/autoscale-overview'
    },
    {
      id: 'az204-081',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure service acts as a managed gateway for publishing, securing, transforming, and throttling APIs?', de: 'Welcher Azure-Dienst fungiert als verwaltetes Gateway zum Veröffentlichen, Absichern, Transformieren und Drosseln von APIs?' },
      options: [
        { id: 'A', text: { en: 'Azure API Management', de: 'Azure API Management' } },
        { id: 'B', text: { en: 'Azure Backup', de: 'Azure Backup' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'Azure Monitor', de: 'Azure Monitor' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure API Management provides a managed API gateway with policies, products, subscriptions, and analytics.', de: 'Azure API Management bietet ein verwaltetes API-Gateway mit Richtlinien, Produkten, Abonnements und Analysen.' },
      hint: { en: 'Think about the gateway service for APIs.', de: 'Denken Sie an den Gateway-Dienst für APIs.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts'
    },
    {
      id: 'az204-082',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure messaging service should you use for reliable command processing with dead-letter support?', de: 'Welchen Azure-Nachrichtendienst sollten Sie für zuverlässige Befehlsverarbeitung mit Dead-Letter-Unterstützung verwenden?' },
      options: [
        { id: 'A', text: { en: 'Service Bus queue', de: 'Service Bus-Warteschlange' } },
        { id: 'B', text: { en: 'Event Grid topic', de: 'Event Grid-Thema' } },
        { id: 'C', text: { en: 'Azure DNS zone', de: 'Azure DNS-Zone' } },
        { id: 'D', text: { en: 'Azure Files share', de: 'Azure Files-Freigabe' } }
      ],
      correct: ['A'],
      explanation: { en: 'Service Bus queues provide durable messaging, dead-lettering, retries, and enterprise messaging semantics.', de: 'Service Bus-Warteschlangen bieten dauerhafte Nachrichtenübermittlung, Dead-Lettering, Wiederholungen und Enterprise-Messaging-Semantik.' },
      hint: { en: 'Choose the brokered messaging service, not the event routing service.', de: 'Wählen Sie den brokerbasierten Nachrichtendienst und nicht den Ereignisrouting-Dienst.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-083',
      type: 'scenario',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'hard',
      scenario: { en: 'Contoso Ltd. must notify multiple downstream systems whenever a blob is created. New subscribers may be added later without changing the storage application.', de: 'Contoso Ltd. muss mehrere nachgelagerte Systeme benachrichtigen, sobald ein Blob erstellt wird. Neue Abonnenten sollen später hinzugefügt werden können, ohne die Speicheranwendung zu ändern.' },
      question: { en: 'Which Azure service should distribute these notifications?', de: 'Welcher Azure-Dienst sollte diese Benachrichtigungen verteilen?' },
      options: [
        { id: 'A', text: { en: 'Event Grid', de: 'Event Grid' } },
        { id: 'B', text: { en: 'Azure Backup', de: 'Azure Backup' } },
        { id: 'C', text: { en: 'Azure Key Vault', de: 'Azure Key Vault' } },
        { id: 'D', text: { en: 'Azure Files', de: 'Azure Files' } }
      ],
      correct: ['A'],
      explanation: { en: 'Event Grid is designed for push-based event routing and fan-out to multiple subscribers when Azure resources emit events.', de: 'Event Grid ist für pushbasiertes Ereignisrouting und Fan-Out an mehrere Abonnenten ausgelegt, wenn Azure-Ressourcen Ereignisse ausgeben.' },
      hint: { en: 'The solution must support publish-subscribe for events.', de: 'Die Lösung muss Publish-Subscribe für Ereignisse unterstützen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/event-grid/overview'
    },
    {
      id: 'az204-084',
      type: 'multiple',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Azure API Management policies are commonly applied at the gateway? Choose all that apply.', de: 'Welche Azure API Management-Richtlinien werden häufig am Gateway angewendet? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'rate-limit', de: 'rate-limit' } },
        { id: 'B', text: { en: 'validate-jwt', de: 'validate-jwt' } },
        { id: 'C', text: { en: 'set-header', de: 'set-header' } },
        { id: 'D', text: { en: 'create-vnet', de: 'create-vnet' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'API Management policies can throttle, validate tokens, and transform headers. create-vnet is not an API gateway policy.', de: 'API Management-Richtlinien können drosseln, Token validieren und Header transformieren. create-vnet ist keine API-Gateway-Richtlinie.' },
      hint: { en: 'Pick the inbound or outbound policy statements, not infrastructure operations.', de: 'Wählen Sie die Inbound- oder Outbound-Richtlinienanweisungen und keine Infrastrukturvorgänge.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-policies'
    },
    {
      id: 'az204-085',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Service Bus feature lets multiple receivers process independent copies of the same message stream?', de: 'Welche Service Bus-Funktion ermöglicht es mehreren Empfängern, unabhängige Kopien desselben Nachrichtenstroms zu verarbeiten?' },
      options: [
        { id: 'A', text: { en: 'Topic with subscriptions', de: 'Thema mit Abonnements' } },
        { id: 'B', text: { en: 'Queue with one consumer', de: 'Warteschlange mit einem Verbraucher' } },
        { id: 'C', text: { en: 'Blob container', de: 'Blob-Container' } },
        { id: 'D', text: { en: 'Storage account firewall', de: 'Speicherkonto-Firewall' } }
      ],
      correct: ['A'],
      explanation: { en: 'Service Bus topics and subscriptions implement publish-subscribe messaging so each subscription can receive its own copy.', de: 'Service Bus-Themen und -Abonnements implementieren Publish-Subscribe-Messaging, sodass jedes Abonnement seine eigene Kopie erhält.' },
      hint: { en: 'The requirement is fan-out, not competing consumers.', de: 'Die Anforderung ist Fan-Out und nicht konkurrierende Verbraucher.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-086',
      type: 'scenario',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: { en: 'Fabrikam Inc. wants to publish a public API endpoint, apply header transformations, enforce subscriptions, and cache GET responses without changing the backend service.', de: 'Fabrikam Inc. möchte einen öffentlichen API-Endpunkt veröffentlichen, Header transformieren, Abonnements erzwingen und GET-Antworten cachen, ohne den Back-End-Dienst zu ändern.' },
      question: { en: 'Which Azure service should be placed in front of the backend?', de: 'Welcher Azure-Dienst sollte vor das Backend gesetzt werden?' },
      options: [
        { id: 'A', text: { en: 'Azure API Management', de: 'Azure API Management' } },
        { id: 'B', text: { en: 'Azure Policy', de: 'Azure Policy' } },
        { id: 'C', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'D', text: { en: 'Azure Cache for Redis only', de: 'Nur Azure Cache for Redis' } }
      ],
      correct: ['A'],
      explanation: { en: 'API Management provides a managed facade that can secure, transform, throttle, and cache API traffic without modifying the backend implementation.', de: 'API Management bietet eine verwaltete Fassade, die API-Datenverkehr absichern, transformieren, drosseln und cachen kann, ohne die Backend-Implementierung zu ändern.' },
      hint: { en: 'The requirement is an API gateway with policies.', de: 'Die Anforderung ist ein API-Gateway mit Richtlinien.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts'
    },
    {
      id: 'az204-087',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'How does Event Grid typically deliver events to an HTTPS endpoint?', de: 'Wie stellt Event Grid Ereignisse typischerweise an einen HTTPS-Endpunkt zu?' },
      options: [
        { id: 'A', text: { en: 'Webhook push delivery', de: 'Webhook-Push-Zustellung' } },
        { id: 'B', text: { en: 'Polling over SMB', de: 'Polling über SMB' } },
        { id: 'C', text: { en: 'FTP upload', de: 'FTP-Upload' } },
        { id: 'D', text: { en: 'DNS zone transfer', de: 'DNS-Zonentransfer' } }
      ],
      correct: ['A'],
      explanation: { en: 'Event Grid uses push delivery to call subscribed endpoints such as webhooks when matching events occur.', de: 'Event Grid verwendet Push-Zustellung, um abonnierte Endpunkte wie Webhooks aufzurufen, wenn passende Ereignisse auftreten.' },
      hint: { en: 'Event Grid is push-based, not a polling service.', de: 'Event Grid ist pushbasiert und kein Polling-Dienst.' },
      reference: 'https://learn.microsoft.com/en-us/azure/event-grid/overview'
    },
    {
      id: 'az204-088',
      type: 'multiple',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Service Bus capabilities help support reliable message processing? Choose all that apply.', de: 'Welche Service Bus-Funktionen helfen bei zuverlässiger Nachrichtenverarbeitung? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Duplicate detection', de: 'Duplikaterkennung' } },
        { id: 'B', text: { en: 'Dead-letter queue', de: 'Dead-Letter-Warteschlange' } },
        { id: 'C', text: { en: 'PeekLock receive mode', de: 'PeekLock-Empfangsmodus' } },
        { id: 'D', text: { en: 'Anonymous internet delivery', de: 'Anonyme Internetzustellung' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Duplicate detection, dead-letter queues, and PeekLock all contribute to durable and controlled message handling in Service Bus.', de: 'Duplikaterkennung, Dead-Letter-Warteschlangen und PeekLock tragen alle zu robuster und kontrollierter Nachrichtenverarbeitung in Service Bus bei.' },
      hint: { en: 'Choose broker features for safe processing, not open anonymous delivery.', de: 'Wählen Sie Broker-Funktionen für sichere Verarbeitung und keine offene anonyme Zustellung.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-089',
      type: 'scenario',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'hard',
      scenario: { en: 'Tailwind Traders processes purchase orders from many stores. Messages must be processed in order for each store and should stay grouped while still allowing parallel processing across stores.', de: 'Tailwind Traders verarbeitet Bestellungen aus vielen Filialen. Nachrichten müssen pro Filiale in Reihenfolge verarbeitet werden und gruppiert bleiben, während gleichzeitig parallele Verarbeitung über Filialen hinweg möglich sein soll.' },
      question: { en: 'Which Service Bus feature should be enabled?', de: 'Welche Service Bus-Funktion sollte aktiviert werden?' },
      options: [
        { id: 'A', text: { en: 'Sessions', de: 'Sitzungen' } },
        { id: 'B', text: { en: 'Blob versioning', de: 'Blob-Versionierung' } },
        { id: 'C', text: { en: 'API revisions', de: 'API-Revisionen' } },
        { id: 'D', text: { en: 'DNS aliases', de: 'DNS-Aliase' } }
      ],
      correct: ['A'],
      explanation: { en: 'Service Bus sessions preserve ordered processing for related messages while allowing concurrency across different session IDs.', de: 'Service Bus-Sitzungen erhalten die geordnete Verarbeitung zusammengehöriger Nachrichten und erlauben gleichzeitig Parallelität über verschiedene Sitzungs-IDs hinweg.' },
      hint: { en: 'The key requirement is ordered message groups.', de: 'Die zentrale Anforderung sind geordnete Nachrichtengruppen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-090',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which Azure API Management tier is commonly chosen for large enterprise scenarios that require virtual network support and advanced scale?', de: 'Welche Azure API Management-Stufe wird häufig für große Unternehmensszenarien gewählt, die Unterstützung für virtuelle Netzwerke und erweiterte Skalierung erfordern?' },
      options: [
        { id: 'A', text: { en: 'Premium', de: 'Premium' } },
        { id: 'B', text: { en: 'Consumption', de: 'Consumption' } },
        { id: 'C', text: { en: 'Developer', de: 'Developer' } },
        { id: 'D', text: { en: 'Basic v2 only', de: 'Nur Basic v2' } }
      ],
      correct: ['A'],
      explanation: { en: 'Premium tier is the enterprise-focused API Management tier for advanced scale and network integration scenarios.', de: 'Die Premium-Stufe ist die auf Unternehmen ausgerichtete API Management-Stufe für erweiterte Skalierungs- und Netzwerkintegrationsszenarien.' },
      hint: { en: 'Pick the enterprise tier, not the development or lightweight tier.', de: 'Wählen Sie die Enterprise-Stufe und nicht die Entwicklungs- oder Leichtgewichtsstufe.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts'
    },
    {
      id: 'az204-091',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Azure service provides push-based routing of resource events such as Blob Storage changes?', de: 'Welcher Azure-Dienst bietet pushbasiertes Routing von Ressourcenereignissen wie Blob Storage-Änderungen?' },
      options: [
        { id: 'A', text: { en: 'Event Grid', de: 'Event Grid' } },
        { id: 'B', text: { en: 'Azure Firewall', de: 'Azure Firewall' } },
        { id: 'C', text: { en: 'Azure Files', de: 'Azure Files' } },
        { id: 'D', text: { en: 'Key Vault', de: 'Key Vault' } }
      ],
      correct: ['A'],
      explanation: { en: 'Event Grid is the Azure event routing service for reactive integration with Azure resource events and custom events.', de: 'Event Grid ist der Azure-Ereignisroutingdienst für reaktive Integration mit Azure-Ressourcenereignissen und benutzerdefinierten Ereignissen.' },
      hint: { en: 'Choose the event router, not the message queue.', de: 'Wählen Sie den Ereignisrouter und nicht die Nachrichtenwarteschlange.' },
      reference: 'https://learn.microsoft.com/en-us/azure/event-grid/overview'
    },
    {
      id: 'az204-092',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which HTTP header is commonly used to send an OAuth 2.0 bearer token when calling a REST API?', de: 'Welcher HTTP-Header wird üblicherweise verwendet, um beim Aufruf einer REST-API ein OAuth 2.0-Bearer-Token zu senden?' },
      options: [
        { id: 'A', text: { en: 'Authorization', de: 'Authorization' } },
        { id: 'B', text: { en: 'Content-Length', de: 'Content-Length' } },
        { id: 'C', text: { en: 'If-Match', de: 'If-Match' } },
        { id: 'D', text: { en: 'Retry-After', de: 'Retry-After' } }
      ],
      correct: ['A'],
      explanation: { en: 'Bearer tokens are typically sent in the Authorization header by using the Bearer scheme.', de: 'Bearer-Token werden typischerweise im Authorization-Header mit dem Bearer-Schema gesendet.' },
      hint: { en: 'This header carries credentials for many HTTP-based APIs.', de: 'Dieser Header überträgt Anmeldeinformationen für viele HTTP-basierte APIs.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow'
    },
    {
      id: 'az204-093',
      type: 'scenario',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'hard',
      scenario: { en: 'Litware Inc. exposes a backend SOAP service, but external partners require a RESTful facade with policy enforcement, analytics, and developer onboarding.', de: 'Litware Inc. stellt einen Back-End-SOAP-Dienst bereit, aber externe Partner benötigen eine REST-orientierte Fassade mit Richtliniendurchsetzung, Analysen und Entwickler-Onboarding.' },
      question: { en: 'Which Azure service should front the backend?', de: 'Welcher Azure-Dienst sollte vor dem Backend eingesetzt werden?' },
      options: [
        { id: 'A', text: { en: 'Azure API Management', de: 'Azure API Management' } },
        { id: 'B', text: { en: 'Azure Storage account', de: 'Azure-Speicherkonto' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'Azure Files', de: 'Azure Files' } }
      ],
      correct: ['A'],
      explanation: { en: 'API Management is the Azure service for publishing existing backends through a governed API facade with policies and analytics.', de: 'API Management ist der Azure-Dienst zum Veröffentlichen vorhandener Backends über eine gesteuerte API-Fassade mit Richtlinien und Analysen.' },
      hint: { en: 'The backend needs an API product layer in front of it.', de: 'Das Backend benötigt eine API-Produktschicht davor.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts'
    },
    {
      id: 'az204-094',
      type: 'multiple',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which integration patterns are supported directly by Azure API Management? Choose all that apply.', de: 'Welche Integrationsmuster werden direkt von Azure API Management unterstützt? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Request or response transformation', de: 'Anforderungs- oder Antworttransformation' } },
        { id: 'B', text: { en: 'Response caching', de: 'Antwortcaching' } },
        { id: 'C', text: { en: 'Subscription key enforcement', de: 'Erzwingen von Abonnementschlüsseln' } },
        { id: 'D', text: { en: 'Kubernetes node autoscaling', de: 'Kubernetes-Node-Autoskalierung' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'API Management can transform payloads and headers, cache responses, and require subscription keys at the gateway. Kubernetes node autoscaling is unrelated.', de: 'API Management kann Nutzdaten und Header transformieren, Antworten cachen und Abonnementschlüssel am Gateway erzwingen. Kubernetes-Node-Autoskalierung ist nicht relevant.' },
      hint: { en: 'Choose the gateway features, not cluster operations.', de: 'Wählen Sie die Gateway-Funktionen und nicht Clusteroperationen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-policies'
    },
    {
      id: 'az204-095',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which Service Bus entity is best for a competing-consumer pattern where each work item should be processed once by one worker?', de: 'Welche Service Bus-Entität eignet sich am besten für ein Competing-Consumer-Muster, bei dem jedes Arbeitselement einmal von genau einem Worker verarbeitet werden soll?' },
      options: [
        { id: 'A', text: { en: 'Queue', de: 'Warteschlange' } },
        { id: 'B', text: { en: 'Topic with many subscriptions', de: 'Thema mit vielen Abonnements' } },
        { id: 'C', text: { en: 'Event Grid system topic', de: 'Event Grid-Systemthema' } },
        { id: 'D', text: { en: 'Application Map', de: 'Application Map' } }
      ],
      correct: ['A'],
      explanation: { en: 'A queue is the standard Service Bus entity for distributing work items among competing consumers.', de: 'Eine Warteschlange ist die Standard-Service Bus-Entität zur Verteilung von Arbeitselementen unter konkurrierenden Verbrauchern.' },
      hint: { en: 'You want one consumer to handle each message.', de: 'Sie möchten, dass genau ein Verbraucher jede Nachricht verarbeitet.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-096',
      type: 'scenario',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: { en: 'Woodgrove Bank needs to publish custom integration events from an application to Azure Functions and a third-party webhook with minimal custom fan-out code.', de: 'Woodgrove Bank muss benutzerdefinierte Integrationsereignisse aus einer Anwendung mit minimalem benutzerdefiniertem Fan-Out-Code an Azure Functions und einen Drittanbieter-Webhook veröffentlichen.' },
      question: { en: 'Which service should the application publish to?', de: 'An welchen Dienst sollte die Anwendung veröffentlichen?' },
      options: [
        { id: 'A', text: { en: 'Event Grid custom topic', de: 'Event Grid-Benutzerdefiniertes Thema' } },
        { id: 'B', text: { en: 'Azure Files share', de: 'Azure Files-Freigabe' } },
        { id: 'C', text: { en: 'App Service deployment slot', de: 'App Service-Bereitstellungsslot' } },
        { id: 'D', text: { en: 'Azure Bastion host', de: 'Azure Bastion-Host' } }
      ],
      correct: ['A'],
      explanation: { en: 'An Event Grid custom topic is the right choice when an application needs to publish custom events to many subscribers.', de: 'Ein benutzerdefiniertes Event Grid-Thema ist die richtige Wahl, wenn eine Anwendung benutzerdefinierte Ereignisse an viele Abonnenten veröffentlichen muss.' },
      hint: { en: 'The events come from your app, not from a built-in Azure resource.', de: 'Die Ereignisse kommen aus Ihrer App und nicht aus einer integrierten Azure-Ressource.' },
      reference: 'https://learn.microsoft.com/en-us/azure/event-grid/overview'
    },
    {
      id: 'az204-097',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Service Bus receive mode lets a worker lock a message before it completes processing?', de: 'Welcher Service Bus-Empfangsmodus ermöglicht es einem Worker, eine Nachricht zu sperren, bevor die Verarbeitung abgeschlossen wird?' },
      options: [
        { id: 'A', text: { en: 'PeekLock', de: 'PeekLock' } },
        { id: 'B', text: { en: 'ReceiveAndDelete only', de: 'Nur ReceiveAndDelete' } },
        { id: 'C', text: { en: 'Broadcast mode', de: 'Broadcast-Modus' } },
        { id: 'D', text: { en: 'Archive mode', de: 'Archivmodus' } }
      ],
      correct: ['A'],
      explanation: { en: 'PeekLock lets the consumer process the message and then explicitly complete or abandon it, which supports reliable processing.', de: 'PeekLock erlaubt dem Verbraucher, die Nachricht zu verarbeiten und sie dann explizit abzuschließen oder aufzugeben, was eine zuverlässige Verarbeitung unterstützt.' },
      hint: { en: 'This mode protects the message until the worker succeeds.', de: 'Dieser Modus schützt die Nachricht, bis der Worker erfolgreich ist.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-098',
      type: 'multiple',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which Event Grid features help control event delivery behavior? Choose all that apply.', de: 'Welche Event Grid-Funktionen helfen dabei, das Zustellungsverhalten von Ereignissen zu steuern? Wählen Sie alle zutreffenden Antworten aus.' },
      options: [
        { id: 'A', text: { en: 'Subject or advanced filters', de: 'Betreff- oder erweiterte Filter' } },
        { id: 'B', text: { en: 'Retry policy', de: 'Wiederholungsrichtlinie' } },
        { id: 'C', text: { en: 'Dead-letter destination', de: 'Dead-Letter-Ziel' } },
        { id: 'D', text: { en: 'Deployment slot swap', de: 'Bereitstellungsslot-Tausch' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Event Grid subscriptions support filtering, retries, and dead-lettering to control how events are delivered and handled when endpoints fail.', de: 'Event Grid-Abonnements unterstützen Filterung, Wiederholungen und Dead-Lettering, um zu steuern, wie Ereignisse zugestellt und bei Endpunktfehlern behandelt werden.' },
      hint: { en: 'Choose delivery controls from Event Grid subscriptions.', de: 'Wählen Sie Zustellungssteuerungen aus Event Grid-Abonnements.' },
      reference: 'https://learn.microsoft.com/en-us/azure/event-grid/overview'
    },
    {
      id: 'az204-099',
      type: 'scenario',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'hard',
      scenario: { en: 'Proseware Inc. integrates with a payment provider that can be slow or temporarily unavailable. Checkout should complete quickly, and settlement work must be retried later without losing messages.', de: 'Proseware Inc. integriert einen Zahlungsanbieter, der langsam oder vorübergehend nicht verfügbar sein kann. Der Checkout soll schnell abgeschlossen werden, und die Abwicklungsarbeit muss später wiederholt werden können, ohne Nachrichten zu verlieren.' },
      question: { en: 'Which Azure service should buffer the settlement work?', de: 'Welcher Azure-Dienst sollte die Abwicklungsarbeit puffern?' },
      options: [
        { id: 'A', text: { en: 'Service Bus queue', de: 'Service Bus-Warteschlange' } },
        { id: 'B', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'C', text: { en: 'Blob index tags', de: 'Blob-Index-Tags' } },
        { id: 'D', text: { en: 'Application Map', de: 'Application Map' } }
      ],
      correct: ['A'],
      explanation: { en: 'A Service Bus queue decouples the user-facing checkout flow from slower downstream processing and supports retries and durable delivery.', de: 'Eine Service Bus-Warteschlange entkoppelt den benutzerseitigen Checkout-Ablauf von langsamerer nachgelagerter Verarbeitung und unterstützt Wiederholungen sowie dauerhafte Zustellung.' },
      hint: { en: 'The requirement is durable asynchronous buffering.', de: 'Die Anforderung ist dauerhafte asynchrone Pufferung.' },
      reference: 'https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview'
    },
    {
      id: 'az204-100',
      type: 'single',
      domain: { en: 'Connect to and consume Azure services and third-party services', de: 'Azure-Dienste und Dienste von Drittanbietern verbinden und nutzen' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which Azure API Management policy should you apply to require a valid Microsoft Entra access token at the gateway?', de: 'Welche Azure API Management-Richtlinie sollten Sie anwenden, um am Gateway ein gültiges Microsoft Entra-Access-Token zu erzwingen?' },
      options: [
        { id: 'A', text: { en: 'validate-jwt', de: 'validate-jwt' } },
        { id: 'B', text: { en: 'rewrite-uri', de: 'rewrite-uri' } },
        { id: 'C', text: { en: 'set-backend-service', de: 'set-backend-service' } },
        { id: 'D', text: { en: 'cache-store', de: 'cache-store' } }
      ],
      correct: ['A'],
      explanation: { en: 'The validate-jwt policy validates issuer, audience, signing keys, and token claims before the request reaches the backend.', de: 'Die Richtlinie validate-jwt überprüft Aussteller, Audience, Signaturschlüssel und Tokenansprüche, bevor die Anforderung das Backend erreicht.' },
      hint: { en: 'Choose the policy that checks bearer tokens.', de: 'Wählen Sie die Richtlinie, die Bearer-Token prüft.' },
      reference: 'https://learn.microsoft.com/en-us/azure/api-management/api-management-policies'
    }
  ]
};
