window.ExamData = window.ExamData || {};
window.ExamData['az-104'] = {
  meta: {
    id: 'az-104',
    title: {
      en: 'Microsoft Azure Administrator',
      de: 'Microsoft Azure-Administrator'
    },
    description: {
      en: 'This exam measures your ability to manage Azure identities, governance, storage, compute, and virtual networks.',
      de: 'Diese Prüfung misst Ihre Fähigkeit, Azure-Identitäten, Governance, Speicher, Compute und virtuelle Netzwerke zu verwalten.'
    },
    icon: '⚙️',
    level: 'associate',
    passingScore: 700,
    totalTime: 120,
    questionCount: '40-60',
    msLearnUrl: 'https://learn.microsoft.com/en-us/certifications/exams/az-104/',
    domains: [
      {
        name: {
          en: 'Manage Azure Identities and Governance',
          de: 'Azure-Identitäten und Governance verwalten'
        },
        weight: '20-25%'
      },
      {
        name: {
          en: 'Implement and Manage Storage',
          de: 'Speicher implementieren und verwalten'
        },
        weight: '15-20%'
      },
      {
        name: {
          en: 'Deploy and Manage Azure Compute Resources',
          de: 'Azure-Compute-Ressourcen bereitstellen und verwalten'
        },
        weight: '20-25%'
      },
      {
        name: {
          en: 'Implement and Manage Virtual Networking',
          de: 'Virtuelle Netzwerke implementieren und verwalten'
        },
        weight: '15-20%'
      },
      {
        name: {
          en: 'Monitor and Maintain Azure Resources',
          de: 'Azure-Ressourcen überwachen und warten'
        },
        weight: '10-15%'
      }
    ]
  },
  questions: [
    {
      id: 'az104-001',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'You must let the Helpdesk group start, stop, and restart virtual machines in one resource group by using least privilege. Which built-in Azure role should you assign?',
        de: 'Sie müssen der Helpdesk-Gruppe erlauben, virtuelle Computer in einer Ressourcengruppe mit minimalen Rechten zu starten, zu beenden und neu zu starten. Welche integrierte Azure-Rolle sollten Sie zuweisen?'
      },
      options: [
        { id: 'A', text: { en: 'Reader', de: 'Leser' } },
        { id: 'B', text: { en: 'Contributor', de: 'Mitwirkender' } },
        { id: 'C', text: { en: 'Virtual Machine Contributor', de: 'Mitwirkender für virtuelle Computer' } },
        { id: 'D', text: { en: 'Owner', de: 'Besitzer' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Virtual Machine Contributor is the best fit because it allows VM management actions such as start, stop, and restart without granting broad permissions like Owner or Contributor. Reader cannot perform operational changes.',
        de: 'Mitwirkender für virtuelle Computer ist die beste Wahl, weil die Rolle Verwaltungsaktionen für VMs wie Starten, Beenden und Neustarten erlaubt, ohne so weitreichende Rechte wie Besitzer oder Mitwirkender zu vergeben. Leser kann keine operativen Änderungen ausführen.'
      },
      hint: {
        en: 'Think about the built-in RBAC role that is focused on VM operations instead of full resource administration.',
        de: 'Denken Sie an die integrierte RBAC-Rolle, die auf VM-Vorgänge statt auf die vollständige Ressourcenverwaltung ausgerichtet ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles'
    },
    {
      id: 'az104-002',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'Contoso, Ltd. has several Azure subscriptions for different business units. A governance team wants every new and existing subscription to require a CostCenter tag on resource groups.',
        de: 'Contoso, Ltd. verfügt über mehrere Azure-Abonnements für verschiedene Geschäftsbereiche. Ein Governance-Team möchte, dass für jedes neue und bestehende Abonnement eine CostCenter-Markierung für Ressourcengruppen erforderlich ist.'
      },
      question: {
        en: 'At which scope should you assign the Azure Policy so that all current and future child subscriptions inherit it?',
        de: 'Auf welcher Ebene sollten Sie die Azure Policy zuweisen, damit alle aktuellen und zukünftigen untergeordneten Abonnements sie erben?'
      },
      options: [
        { id: 'A', text: { en: 'At each resource group individually', de: 'Einzeln für jede Ressourcengruppe' } },
        { id: 'B', text: { en: 'At one subscription only', de: 'Nur in einem Abonnement' } },
        { id: 'C', text: { en: 'At the management group', de: 'Auf der Verwaltungsebenengruppe' } },
        { id: 'D', text: { en: 'Inside the storage account', de: 'Im Speicherkonto' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'A policy assigned at a management group scope is inherited by all subscriptions and resource groups beneath it. This makes it the correct place for centralized governance that must apply broadly over time.',
        de: 'Eine Richtlinie, die auf Ebene einer Verwaltungsgruppe zugewiesen wird, wird von allen darunterliegenden Abonnements und Ressourcengruppen geerbt. Dadurch ist dies die richtige Stelle für zentrale Governance, die dauerhaft breit gelten soll.'
      },
      hint: {
        en: 'Choose the highest practical scope in the Azure hierarchy that can govern many subscriptions at once.',
        de: 'Wählen Sie die höchste praktische Ebene in der Azure-Hierarchie, die mehrere Abonnements gleichzeitig steuern kann.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-003',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Microsoft Entra group type automatically adds users based on a rule such as Department equals Finance?',
        de: 'Welcher Microsoft Entra-Gruppentyp fügt Benutzer automatisch anhand einer Regel wie Abteilung gleich Finance hinzu?'
      },
      options: [
        { id: 'A', text: { en: 'Administrative unit', de: 'Administrative Einheit' } },
        { id: 'B', text: { en: 'Dynamic security group', de: 'Dynamische Sicherheitsgruppe' } },
        { id: 'C', text: { en: 'Mail-enabled security group with manual membership', de: 'E-Mail-fähige Sicherheitsgruppe mit manueller Mitgliedschaft' } },
        { id: 'D', text: { en: 'Managed identity', de: 'Verwaltete Identität' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A dynamic security group uses membership rules to evaluate user or device attributes automatically. This removes the need for administrators to manually update group membership when attributes change.',
        de: 'Eine dynamische Sicherheitsgruppe verwendet Mitgliedschaftsregeln, um Benutzer- oder Geräteattribute automatisch auszuwerten. Dadurch müssen Administratoren die Gruppenmitgliedschaft bei Attributänderungen nicht manuell pflegen.'
      },
      hint: {
        en: 'Look for the Entra ID group option that is rule-based and self-updating.',
        de: 'Suchen Sie nach der Entra ID-Gruppenoption, die regelbasiert ist und sich selbst aktualisiert.'
      },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/users/groups-dynamic-membership'
    },
    {
      id: 'az104-004',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure Policy effects are valid? Choose all that apply.',
        de: 'Welche Azure Policy-Effekte sind gültig? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Audit', de: 'Audit' } },
        { id: 'B', text: { en: 'Deny', de: 'Verweigern' } },
        { id: 'C', text: { en: 'Append', de: 'Anhängen' } },
        { id: 'D', text: { en: 'RestartVirtualMachine', de: 'RestartVirtualMachine' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Audit, Deny, and Append are standard Azure Policy effects. Azure Policy can also use effects such as Modify or DeployIfNotExists, but it does not directly restart virtual machines as a policy effect.',
        de: 'Audit, Verweigern und Anhängen sind standardmäßige Azure Policy-Effekte. Azure Policy kann auch Effekte wie Modify oder DeployIfNotExists verwenden, startet jedoch virtuelle Computer nicht direkt als Policy-Effekt neu.'
      },
      hint: {
        en: 'Choose the items that describe governance or compliance behavior, not operational VM actions.',
        de: 'Wählen Sie die Elemente aus, die Governance- oder Compliance-Verhalten beschreiben, nicht operative VM-Aktionen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/policy/concepts/effect-basics'
    },
    {
      id: 'az104-005',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need a separate billing boundary, quota boundary, and access boundary for a new business unit in Azure. What should you create?',
        de: 'Sie benötigen für einen neuen Geschäftsbereich in Azure eine separate Abrechnungsgrenze, Kontingentgrenze und Zugriffsgrenze. Was sollten Sie erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'A resource group', de: 'Eine Ressourcengruppe' } },
        { id: 'B', text: { en: 'A management group', de: 'Eine Verwaltungsgruppe' } },
        { id: 'C', text: { en: 'A subscription', de: 'Ein Abonnement' } },
        { id: 'D', text: { en: 'A tag', de: 'Ein Tag' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'A subscription is the Azure construct that creates billing separation, quota limits, and a major access-management boundary. Resource groups and tags organize resources, but they do not provide separate billing or quotas.',
        de: 'Ein Abonnement ist das Azure-Konstrukt, das Abrechnungstrennung, Kontingentgrenzen und eine wichtige Grenze für die Zugriffsverwaltung schafft. Ressourcengruppen und Tags organisieren Ressourcen, bieten jedoch keine separate Abrechnung oder Kontingente.'
      },
      hint: {
        en: 'Think bigger than a resource group. Azure uses a higher-level container for billing and quota separation.',
        de: 'Denken Sie größer als an eine Ressourcengruppe. Azure verwendet für Abrechnungs- und Kontingenttrennung einen Container auf höherer Ebene.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/organize-resources'
    },
    {
      id: 'az104-006',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Contoso, Ltd., a subscription is moved from the Dev management group to the Prod management group. Both management groups have different inherited RBAC assignments and Azure Policy assignments.',
        de: 'Bei Contoso, Ltd.: ein Abonnement wird von der Verwaltungsgruppe Dev in die Verwaltungsgruppe Prod verschoben. Beide Verwaltungsgruppen besitzen unterschiedliche geerbte RBAC-Zuweisungen und Azure Policy-Zuweisungen.'
      },
      question: {
        en: 'What is the effect of this move on inheritance for the subscription?',
        de: 'Welche Auswirkung hat dieser Wechsel auf die Vererbung für das Abonnement?'
      },
      options: [
        { id: 'A', text: { en: 'It keeps inheriting from both the old and new management groups', de: 'Es erbt weiterhin sowohl von der alten als auch von der neuen Verwaltungsgruppe' } },
        { id: 'B', text: { en: 'It stops inheriting from Dev and starts inheriting from Prod', de: 'Es beendet die Vererbung von Dev und beginnt mit der Vererbung von Prod' } },
        { id: 'C', text: { en: 'Inheritance does not change until you restart the subscription', de: 'Die Vererbung ändert sich erst, wenn Sie das Abonnement neu starten' } },
        { id: 'D', text: { en: 'All direct role assignments on the subscription are deleted automatically', de: 'Alle direkten Rollenzuweisungen im Abonnement werden automatisch gelöscht' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'When a subscription is moved to a different management group, inherited policy and RBAC assignments come from the new parent scope. Inheritance from the old parent no longer applies, while direct assignments at the subscription scope remain.',
        de: 'Wenn ein Abonnement in eine andere Verwaltungsgruppe verschoben wird, stammen geerbte Policy- und RBAC-Zuweisungen vom neuen übergeordneten Bereich. Die Vererbung vom alten übergeordneten Bereich gilt nicht mehr, während direkte Zuweisungen auf Abonnementebene bestehen bleiben.'
      },
      hint: {
        en: 'Focus on inherited settings versus direct settings. Moving the parent changes inheritance, not direct scope assignments.',
        de: 'Konzentrieren Sie sich auf geerbte Einstellungen im Gegensatz zu direkten Einstellungen. Das Ändern des übergeordneten Bereichs ändert die Vererbung, nicht direkte Zuweisungen auf derselben Ebene.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-007',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'An external partner needs access to Azure resources in your tenant by using their existing corporate sign-in. Which user type should you invite?',
        de: 'Ein externer Partner benötigt Zugriff auf Azure-Ressourcen in Ihrem Mandanten mit seiner vorhandenen Unternehmensanmeldung. Welchen Benutzertyp sollten Sie einladen?'
      },
      options: [
        { id: 'A', text: { en: 'Guest user', de: 'Gastbenutzer' } },
        { id: 'B', text: { en: 'Managed identity', de: 'Verwaltete Identität' } },
        { id: 'C', text: { en: 'Service principal only', de: 'Nur Dienstprinzipal' } },
        { id: 'D', text: { en: 'Device object', de: 'Geräteobjekt' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Microsoft Entra B2B collaboration uses guest users so external people can authenticate with their own identity provider and be granted access in your tenant. Managed identities and service principals are intended for applications and services, not partner user access.',
        de: 'Microsoft Entra B2B-Zusammenarbeit verwendet Gastbenutzer, damit externe Personen sich mit ihrem eigenen Identitätsanbieter authentifizieren und in Ihrem Mandanten Zugriff erhalten können. Verwaltete Identitäten und Dienstprinzipale sind für Anwendungen und Dienste gedacht, nicht für den Zugriff von Partnerbenutzern.'
      },
      hint: {
        en: 'This is a person from another organization, not an application identity.',
        de: 'Es handelt sich um eine Person aus einer anderen Organisation, nicht um eine Anwendungsidentität.'
      },
      reference: 'https://learn.microsoft.com/en-us/entra/external-id/what-is-b2b'
    },
    {
      id: 'az104-008',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which of the following are valid scopes for Azure RBAC role assignments for Azure resources? Choose all that apply.',
        de: 'Welche der folgenden Ebenen sind gültige Bereiche für Azure RBAC-Rollenzuweisungen für Azure-Ressourcen? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Management group', de: 'Verwaltungsgruppe' } },
        { id: 'B', text: { en: 'Subscription', de: 'Abonnement' } },
        { id: 'C', text: { en: 'Resource group', de: 'Ressourcengruppe' } },
        { id: 'D', text: { en: 'Azure region', de: 'Azure-Region' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Azure RBAC assignments can be made at management group, subscription, resource group, or individual resource scope. An Azure region is a physical location, not an RBAC scope in the resource hierarchy.',
        de: 'Azure RBAC-Zuweisungen können auf Ebene der Verwaltungsgruppe, des Abonnements, der Ressourcengruppe oder einzelner Ressourcen erfolgen. Eine Azure-Region ist ein physischer Standort und kein RBAC-Bereich in der Ressourcenhierarchie.'
      },
      hint: {
        en: 'Think in terms of the Azure resource hierarchy, not geography.',
        de: 'Denken Sie in der Azure-Ressourcenhierarchie, nicht in geografischen Standorten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/scope-overview'
    },
    {
      id: 'az104-009',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which storage account kind is recommended for most Azure Storage scenarios and supports blob lifecycle management?',
        de: 'Welche Speicherkontoart wird für die meisten Azure Storage-Szenarien empfohlen und unterstützt Blob-Lebenszyklusverwaltung?'
      },
      options: [
        { id: 'A', text: { en: 'Premium BlockBlobStorage', de: 'Premium BlockBlobStorage' } },
        { id: 'B', text: { en: 'General-purpose v1', de: 'General Purpose v1' } },
        { id: 'C', text: { en: 'Standard general-purpose v2', de: 'Standard General Purpose v2' } },
        { id: 'D', text: { en: 'Premium FileStorage', de: 'Premium FileStorage' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'General-purpose v2 storage accounts are the recommended standard choice for most workloads because they support the latest Azure Storage features, including lifecycle management, tiers, blobs, files, queues, and tables.',
        de: 'General Purpose v2-Speicherkonten sind die empfohlene Standardwahl für die meisten Workloads, da sie die neuesten Azure Storage-Funktionen unterstützen, einschließlich Lebenszyklusverwaltung, Zugriffsebenen, Blobs, Dateien, Queues und Tabellen.'
      },
      hint: {
        en: 'Choose the modern and feature-complete storage account type rather than the legacy general-purpose option.',
        de: 'Wählen Sie die moderne und funktionsreiche Speicherkontoart statt der älteren General-Purpose-Option.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview'
    },
    {
      id: 'az104-010',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'You need to grant a vendor time-limited read-only access to one blob without sharing the storage account key. What should you use?',
        de: 'Sie müssen einem Lieferanten zeitlich begrenzten schreibgeschützten Zugriff auf ein einzelnes Blob gewähren, ohne den Speicherkontoschlüssel freizugeben. Was sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'The storage account access key', de: 'Den Zugriffsschlüssel des Speicherkontos' } },
        { id: 'B', text: { en: 'A shared access signature (SAS) token', de: 'Ein Shared Access Signature (SAS)-Token' } },
        { id: 'C', text: { en: 'Azure Storage Explorer only', de: 'Nur Azure Storage Explorer' } },
        { id: 'D', text: { en: 'A private endpoint', de: 'Einen privaten Endpunkt' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A SAS token delegates limited permissions to specific storage resources for a defined time. This is safer than sharing the account key because you can scope access to one blob and set explicit permissions and expiration.',
        de: 'Ein SAS-Token delegiert begrenzte Berechtigungen für bestimmte Speicherressourcen für einen definierten Zeitraum. Das ist sicherer, als den Kontoschlüssel weiterzugeben, weil Sie den Zugriff auf ein Blob beschränken und explizite Berechtigungen sowie eine Ablaufzeit festlegen können.'
      },
      hint: {
        en: 'Use the mechanism that delegates narrow, temporary access instead of exposing the master secret.',
        de: 'Verwenden Sie den Mechanismus, der engen, temporären Zugriff delegiert, statt das Hauptgeheimnis offenzulegen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az104-011',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Fabrikam, Inc. Your team needs the storage transfer tool that is designed for bulk, automated copies rather than a graphical browser.',
        de: 'Sie arbeiten für Fabrikam, Inc. Ihr Team benötigt das Speicherübertragungstool, das für Massenkopien und Automatisierung ausgelegt ist, nicht einen grafischen Browser.'
      },
      question: {
        en: 'Which tool should you use?',
        de: 'Welches Tool sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'AzCopy', de: 'AzCopy' } },
        { id: 'B', text: { en: 'Azure Storage Explorer', de: 'Azure Storage Explorer' } },
        { id: 'C', text: { en: 'A manual copy in the Azure portal', de: 'Eine manuelle Kopie im Azure-Portal' } },
        { id: 'D', text: { en: 'Microsoft Word', de: 'Microsoft Word' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'AzCopy is the recommended command-line utility for high-performance data transfer to and from Azure Storage. It supports large datasets, automation, resume capabilities, and efficient parallel transfer.',
        de: 'AzCopy ist das empfohlene Befehlszeilenprogramm für Hochleistungs-Datenübertragungen zu und von Azure Storage. Es unterstützt große Datenmengen, Automatisierung, Fortsetzungsfunktionen und effiziente parallele Übertragungen.'
      },
      hint: {
        en: 'Choose the storage transfer tool that is designed for bulk, automated copies rather than a graphical browser.',
        de: 'Wählen Sie das Speicherübertragungstool, das für Massenkopien und Automatisierung ausgelegt ist, nicht einen grafischen Browser.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10'
    },
    {
      id: 'az104-012',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which actions can you automate with Azure Blob lifecycle management rules? Choose all that apply.',
        de: 'Welche Aktionen können Sie mit Regeln zur Azure Blob-Lebenszyklusverwaltung automatisieren? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Move blobs to the cool tier after a specified number of days', de: 'Blobs nach einer bestimmten Anzahl von Tagen in die Cool-Ebene verschieben' } },
        { id: 'B', text: { en: 'Archive blobs after a specified number of days', de: 'Blobs nach einer bestimmten Anzahl von Tagen archivieren' } },
        { id: 'C', text: { en: 'Delete old blob versions or snapshots automatically', de: 'Alte Blob-Versionen oder Snapshots automatisch löschen' } },
        { id: 'D', text: { en: 'Replicate blobs automatically to another subscription as a lifecycle action', de: 'Blobs als Lebenszyklusaktion automatisch in ein anderes Abonnement replizieren' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Lifecycle management can transition blobs between access tiers and delete data such as old versions or snapshots based on rule conditions. Cross-subscription replication is not a lifecycle action in the blob lifecycle engine.',
        de: 'Die Lebenszyklusverwaltung kann Blobs abhängig von Regelbedingungen zwischen Zugriffsebenen verschieben und Daten wie alte Versionen oder Snapshots löschen. Eine abonnementsübergreifende Replikation ist keine Lebenszyklusaktion der Blob-Lebenszyklus-Engine.'
      },
      hint: {
        en: 'Lifecycle rules manage storage cost and data retention. Think tier transitions and controlled deletion.',
        de: 'Lebenszyklusregeln verwalten Speicherkosten und Datenaufbewahrung. Denken Sie an Ebenenwechsel und kontrolliertes Löschen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/lifecycle-management-overview'
    },
    {
      id: 'az104-013',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which tool provides a graphical interface to manage Azure Storage data across local and cloud environments?',
        de: 'Welches Tool bietet eine grafische Oberfläche zur Verwaltung von Azure Storage-Daten über lokale und Cloud-Umgebungen hinweg?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Storage Explorer', de: 'Azure Storage Explorer' } },
        { id: 'B', text: { en: 'AzCopy only', de: 'Nur AzCopy' } },
        { id: 'C', text: { en: 'Windows Disk Management', de: 'Windows-Datenträgerverwaltung' } },
        { id: 'D', text: { en: 'Azure Policy', de: 'Azure Policy' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Storage Explorer is the desktop GUI tool for browsing and managing blobs, files, queues, and tables. It is useful when you want a visual experience rather than command-line automation.',
        de: 'Azure Storage Explorer ist das Desktop-GUI-Tool zum Durchsuchen und Verwalten von Blobs, Dateien, Queues und Tabellen. Es ist nützlich, wenn Sie eine visuelle Oberfläche statt Befehlszeilenautomatisierung wünschen.'
      },
      hint: {
        en: 'Pick the Azure Storage tool with a desktop user interface.',
        de: 'Wählen Sie das Azure Storage-Tool mit einer Desktop-Benutzeroberfläche.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-explorer-overview'
    },
    {
      id: 'az104-014',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which storage redundancy option allows you to read data from the secondary region if the primary region becomes unavailable?',
        de: 'Welche Speicherredundanzoption ermöglicht es Ihnen, Daten aus der sekundären Region zu lesen, wenn die primäre Region nicht verfügbar ist?'
      },
      options: [
        { id: 'A', text: { en: 'LRS', de: 'LRS' } },
        { id: 'B', text: { en: 'ZRS', de: 'ZRS' } },
        { id: 'C', text: { en: 'GRS', de: 'GRS' } },
        { id: 'D', text: { en: 'RA-GRS', de: 'RA-GRS' } }
      ],
      correct: ['D'],
      explanation: {
        en: 'Read-access geo-redundant storage, or RA-GRS, replicates data to a secondary region and allows read access there. Standard GRS replicates data but does not provide read access to the secondary endpoint.',
        de: 'Read-Access Geo-Redundant Storage, also RA-GRS, repliziert Daten in eine sekundäre Region und erlaubt dort Lesezugriff. Normales GRS repliziert Daten ebenfalls, bietet jedoch keinen Lesezugriff auf den sekundären Endpunkt.'
      },
      hint: {
        en: 'Look for the redundancy option whose name explicitly includes read access.',
        de: 'Suchen Sie nach der Redundanzoption, deren Name ausdrücklich Lesezugriff enthält.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy'
    },
    {
      id: 'az104-015',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'A team at Northwind Traders needs to host a web application on a managed platform with built-in scaling and no operating system maintenance. The application does not require Kubernetes.',
        de: 'Ein Team bei Northwind Traders muss eine Webanwendung auf einer verwalteten Plattform mit integrierter Skalierung und ohne Betriebssystemwartung hosten. Die Anwendung erfordert kein Kubernetes.'
      },
      question: {
        en: 'Which Azure compute option best fits this requirement?',
        de: 'Welche Azure-Compute-Option passt am besten zu dieser Anforderung?'
      },
      options: [
        { id: 'A', text: { en: 'Virtual Machine Scale Sets', de: 'Skalierungsgruppen für virtuelle Computer' } },
        { id: 'B', text: { en: 'Azure App Service in an App Service plan', de: 'Azure App Service in einem App Service-Plan' } },
        { id: 'C', text: { en: 'Azure Container Instances', de: 'Azure Container Instances' } },
        { id: 'D', text: { en: 'Azure Kubernetes Service', de: 'Azure Kubernetes Service' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure App Service is a managed PaaS web hosting platform that removes server administration and supports scaling. It is ideal for web apps when you do not need a full container orchestration platform such as AKS.',
        de: 'Azure App Service ist eine verwaltete PaaS-Webhostingplattform, die Serveradministration eliminiert und Skalierung unterstützt. Sie ist ideal für Web-Apps, wenn Sie keine vollständige Container-Orchestrierungsplattform wie AKS benötigen.'
      },
      hint: {
        en: 'Choose the web-focused PaaS offering rather than an infrastructure or container orchestration service.',
        de: 'Wählen Sie das weborientierte PaaS-Angebot statt eines Infrastruktur- oder Container-Orchestrierungsdienstes.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans'
    },
    {
      id: 'az104-016',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about Azure App Service plans are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure App Service-Plänen sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Apps in the same App Service plan share the underlying compute resources', de: 'Apps im selben App Service-Plan teilen sich die zugrunde liegenden Compute-Ressourcen' } },
        { id: 'B', text: { en: 'Scaling the App Service plan can affect all apps in that plan', de: 'Das Skalieren des App Service-Plans kann alle Apps in diesem Plan betreffen' } },
        { id: 'C', text: { en: 'One App Service plan can span multiple Azure regions', de: 'Ein App Service-Plan kann mehrere Azure-Regionen umfassen' } },
        { id: 'D', text: { en: 'Windows and Linux apps cannot run in the same App Service plan', de: 'Windows- und Linux-Apps können nicht im selben App Service-Plan ausgeführt werden' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Apps in one App Service plan run on the same worker pool, so scaling the plan changes the compute available to those apps. An App Service plan is tied to one region and one operating system stack, so it cannot span regions or mix Windows and Linux in the same plan.',
        de: 'Apps in einem App Service-Plan laufen auf demselben Workerpool, daher verändert das Skalieren des Plans die für diese Apps verfügbaren Compute-Ressourcen. Ein App Service-Plan ist an eine Region und einen Betriebssystem-Stack gebunden und kann daher weder mehrere Regionen umfassen noch Windows und Linux im selben Plan mischen.'
      },
      hint: {
        en: 'Remember that the plan defines the workers. Think shared workers, one region, and one OS type.',
        de: 'Denken Sie daran, dass der Plan die Worker definiert. Denken Sie an gemeinsame Worker, eine Region und einen Betriebssystemtyp.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans'
    },
    {
      id: 'az104-017',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. Your team needs the service that manages a fleet of identical VMs rather than simply separating a few VMs across domains.',
        de: 'Sie arbeiten für Contoso, Ltd. Ihr Team sucht nach dem Dienst, der eine Flotte identischer VMs verwaltet, statt nur wenige VMs über Domänen zu verteilen.'
      },
      question: {
        en: 'Which Azure service should you deploy?',
        de: 'Welchen Azure-Dienst sollten Sie bereitstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'B', text: { en: 'Virtual Machine Scale Set', de: 'Skalierungsgruppe für virtuelle Computer' } },
        { id: 'C', text: { en: 'Dedicated Host', de: 'Dedicated Host' } },
        { id: 'D', text: { en: 'Container group', de: 'Containergruppe' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Virtual Machine Scale Sets are built for large groups of identical VMs that scale automatically and commonly integrate with Azure Load Balancer. Availability sets improve availability but do not provide autoscaling of a fleet.',
        de: 'Skalierungsgruppen für virtuelle Computer sind für große Gruppen identischer VMs gedacht, die automatisch skalieren und häufig mit Azure Load Balancer integriert werden. Verfügbarkeitsgruppen verbessern die Verfügbarkeit, bieten jedoch keine automatische Skalierung einer Flotte.'
      },
      hint: {
        en: 'Look for the service that manages a fleet of identical VMs rather than simply separating a few VMs across domains.',
        de: 'Suchen Sie nach dem Dienst, der eine Flotte identischer VMs verwaltet, statt nur wenige VMs über Domänen zu verteilen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview'
    },
    {
      id: 'az104-018',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'An availability set helps protect Azure virtual machines by distributing them across which two concepts?',
        de: 'Eine Verfügbarkeitsgruppe schützt Azure-VMs, indem sie über welche zwei Konzepte verteilt werden?'
      },
      options: [
        { id: 'A', text: { en: 'Availability zones and subscriptions', de: 'Verfügbarkeitszonen und Abonnements' } },
        { id: 'B', text: { en: 'Fault domains and update domains', de: 'Fehlerdomänen und Updatedomänen' } },
        { id: 'C', text: { en: 'Regions and management groups', de: 'Regionen und Verwaltungsgruppen' } },
        { id: 'D', text: { en: 'Scale units and tenants', de: 'Skalierungseinheiten und Mandanten' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Availability sets distribute VMs across fault domains and update domains. This reduces the risk that all VMs are affected at the same time by hardware failure or planned maintenance.',
        de: 'Verfügbarkeitsgruppen verteilen VMs auf Fehlerdomänen und Updatedomänen. Dadurch wird das Risiko verringert, dass alle VMs gleichzeitig von Hardwareausfällen oder geplanter Wartung betroffen sind.'
      },
      hint: {
        en: 'One domain type is about underlying hardware failure, and the other is about planned maintenance sequencing.',
        de: 'Ein Domänentyp betrifft zugrunde liegende Hardwarefehler, der andere die Reihenfolge geplanter Wartung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/availability-set-overview'
    },
    {
      id: 'az104-019',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need to run a short-lived containerized workload quickly without managing any orchestration cluster. Which Azure service should you use?',
        de: 'Sie müssen schnell einen kurzlebigen containerisierten Workload ausführen, ohne einen Orchestrierungscluster zu verwalten. Welchen Azure-Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'App Service Environment', de: 'App Service Environment' } },
        { id: 'B', text: { en: 'Azure Container Instances', de: 'Azure Container Instances' } },
        { id: 'C', text: { en: 'Azure Kubernetes Service', de: 'Azure Kubernetes Service' } },
        { id: 'D', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure Container Instances lets you run containers on demand without provisioning VMs or managing a Kubernetes cluster. It is well suited for simple, burst, or short-running container workloads.',
        de: 'Azure Container Instances ermöglicht das bedarfsgesteuerte Ausführen von Containern, ohne VMs bereitzustellen oder einen Kubernetes-Cluster zu verwalten. Der Dienst eignet sich gut für einfache, kurzzeitige oder stark schwankende Container-Workloads.'
      },
      hint: {
        en: 'Pick the serverless container option, not the managed Kubernetes service.',
        de: 'Wählen Sie die serverlose Containeroption, nicht den verwalteten Kubernetes-Dienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/container-instances/container-instances-overview'
    },
    {
      id: 'az104-020',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'The development team at Fabrikam, Inc. is modernizing a microservices application. They need Kubernetes orchestration, self-healing pods, rolling upgrades, and managed control plane components.',
        de: 'Das Entwicklungsteam von Fabrikam, Inc. modernisiert eine Microservices-Anwendung. Es benötigt Kubernetes-Orchestrierung, selbstheilende Pods, Rolling Upgrades und verwaltete Control-Plane-Komponenten.'
      },
      question: {
        en: 'Which Azure service should you recommend?',
        de: 'Welchen Azure-Dienst sollten Sie empfehlen?'
      },
      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 Virtual Desktop', de: 'Azure Virtual Desktop' } },
        { id: 'D', text: { en: 'App Service plan only', de: 'Nur App Service-Plan' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure Kubernetes Service is the managed Azure offering for Kubernetes orchestration. It provides managed control plane components while giving teams Kubernetes capabilities such as rolling updates, health-based scheduling, and self-healing.',
        de: 'Azure Kubernetes Service ist das verwaltete Azure-Angebot für Kubernetes-Orchestrierung. Es stellt verwaltete Control-Plane-Komponenten bereit und bietet Teams gleichzeitig Kubernetes-Funktionen wie Rolling Updates, gesundheitsbasierte Planung und Selbstheilung.'
      },
      hint: {
        en: 'The requirement explicitly points to Kubernetes features, not just container execution.',
        de: 'Die Anforderung verweist ausdrücklich auf Kubernetes-Funktionen und nicht nur auf die Ausführung von Containern.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/what-is-aks'
    },
    {
      id: 'az104-021',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'You want to stop paying compute charges for a development VM while keeping the operating system disk so that you can start it again later. What should you do?',
        de: 'Sie möchten keine Compute-Kosten mehr für eine Entwicklungs-VM zahlen, aber die Betriebssystemfestplatte behalten, damit Sie sie später wieder starten können. Was sollten Sie tun?'
      },
      options: [
        { id: 'A', text: { en: 'Restart the VM', de: 'Die VM neu starten' } },
        { id: 'B', text: { en: 'Stop the VM from inside the guest OS only', de: 'Die VM nur innerhalb des Gastbetriebssystems beenden' } },
        { id: 'C', text: { en: 'Deallocate the VM', de: 'Die VM freigeben' } },
        { id: 'D', text: { en: 'Capture the VM as an image', de: 'Die VM als Image erfassen' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'A deallocated VM no longer incurs compute charges, while its disks remain stored so you can start it again later. Stopping the VM from inside the guest OS does not always release the underlying compute allocation.',
        de: 'Eine freigegebene VM verursacht keine Compute-Kosten mehr, während ihre Datenträger gespeichert bleiben, sodass Sie sie später erneut starten können. Das Beenden der VM innerhalb des Gastbetriebssystems gibt die zugrunde liegende Compute-Zuweisung nicht immer frei.'
      },
      hint: {
        en: 'Make sure Azure releases the compute allocation, not just the operating system session.',
        de: 'Stellen Sie sicher, dass Azure die Compute-Zuweisung freigibt und nicht nur die Betriebssystem-Sitzung beendet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/states-billing'
    },
    {
      id: 'az104-022',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Two networks are already in Azure. You do not need on-premises connectivity technology.',
        de: 'Sie arbeiten für Northwind Traders. Beide Netzwerke befinden sich bereits in Azure. Sie benötigen keine Technologie für lokale Anbindung.'
      },
      question: {
        en: 'Which networking feature should you use?',
        de: 'Welche Netzwerkfunktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'VPN Gateway', de: 'VPN Gateway' } },
        { id: 'B', text: { en: 'ExpressRoute', de: 'ExpressRoute' } },
        { id: 'C', text: { en: 'VNet peering', de: 'VNet-Peering' } },
        { id: 'D', text: { en: 'Public Load Balancer', de: 'Öffentlicher Load Balancer' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'VNet peering directly connects Azure virtual networks over the Microsoft backbone with low latency and high bandwidth. It is the standard choice for private communication between VNets.',
        de: 'VNet-Peering verbindet Azure Virtual Networks direkt über das Microsoft-Backbone mit geringer Latenz und hoher Bandbreite. Es ist die Standardwahl für die private Kommunikation zwischen VNets.'
      },
      hint: {
        en: 'Both networks are already in Azure. You do not need on-premises connectivity technology.',
        de: 'Beide Netzwerke befinden sich bereits in Azure. Sie benötigen keine Technologie für lokale Anbindung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview'
    },
    {
      id: 'az104-023',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'To separate a virtual network into distinct IP ranges for web, application, and database tiers, what should you create?',
        de: 'Um ein virtuelles Netzwerk in getrennte IP-Bereiche für Web-, Anwendungs- und Datenbankebenen aufzuteilen, was sollten Sie erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Peerings', de: 'Peerings' } },
        { id: 'B', text: { en: 'Subnets', de: 'Subnetze' } },
        { id: 'C', text: { en: 'DNS zones', de: 'DNS-Zonen' } },
        { id: 'D', text: { en: 'Action groups', de: 'Aktionsgruppen' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Subnets divide a virtual network address space into smaller logical segments. They let you isolate tiers, apply security controls, and place resources into distinct network boundaries within the same VNet.',
        de: 'Subnetze teilen den Adressraum eines virtuellen Netzwerks in kleinere logische Segmente auf. Damit können Sie Ebenen isolieren, Sicherheitskontrollen anwenden und Ressourcen innerhalb desselben VNet in getrennte Netzwerkgrenzen platzieren.'
      },
      hint: {
        en: 'Think of the building blocks inside a VNet that define smaller IP segments.',
        de: 'Denken Sie an die Bausteine innerhalb eines VNet, die kleinere IP-Segmente definieren.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/subnet-overview'
    },
    {
      id: 'az104-024',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which Azure services can filter or inspect network or web traffic? Choose all that apply.',
        de: 'Welche Azure-Dienste können Netzwerk- oder Webverkehr filtern oder überprüfen? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Network Security Group', de: 'Network Security Group' } },
        { id: 'B', text: { en: 'Azure Firewall', de: 'Azure Firewall' } },
        { id: 'C', text: { en: 'Application Gateway with WAF', de: 'Application Gateway mit WAF' } },
        { id: 'D', text: { en: 'Azure DNS', de: 'Azure DNS' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'NSGs enforce packet-filtering rules, Azure Firewall provides centralized stateful filtering and policy control, and Application Gateway with WAF inspects and protects HTTP or HTTPS traffic. Azure DNS hosts name resolution data and does not perform traffic filtering.',
        de: 'NSGs erzwingen Paketfilterregeln, Azure Firewall bietet zentrale zustandsbehaftete Filterung und Richtliniensteuerung, und Application Gateway mit WAF überprüft und schützt HTTP- oder HTTPS-Datenverkehr. Azure DNS hostet Namensauflösungsdaten und führt keine Verkehrsfilterung durch.'
      },
      hint: {
        en: 'Pick the services that sit in the traffic path or enforce traffic rules, not the one that only hosts DNS records.',
        de: 'Wählen Sie die Dienste, die im Datenpfad sitzen oder Verkehrsregeln durchsetzen, nicht den Dienst, der nur DNS-Einträge hostet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/architecture/networking/guide/network-level-segmentation'
    },
    {
      id: 'az104-025',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure networking feature uses 5-tuple rules and can be associated with subnets or network interfaces?',
        de: 'Welche Azure-Netzwerkfunktion verwendet 5-Tupel-Regeln und kann mit Subnetzen oder Netzwerkschnittstellen verknüpft werden?'
      },
      options: [
        { id: 'A', text: { en: 'Network Security Group', de: 'Network Security Group' } },
        { id: 'B', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'C', text: { en: 'Route Server', de: 'Route Server' } },
        { id: 'D', text: { en: 'Traffic Manager', de: 'Traffic Manager' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A Network Security Group controls inbound and outbound traffic by using rules based on source, destination, port, protocol, and direction. NSGs can be applied to either a subnet or a network interface.',
        de: 'Eine Network Security Group steuert eingehenden und ausgehenden Datenverkehr mithilfe von Regeln basierend auf Quelle, Ziel, Port, Protokoll und Richtung. NSGs können entweder auf ein Subnetz oder auf eine Netzwerkschnittstelle angewendet werden.'
      },
      hint: {
        en: 'This is the basic Azure packet-filtering construct for subnets and NICs.',
        de: 'Dies ist das grundlegende Azure-Paketfilterkonstrukt für Subnetze und NICs.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview'
    },
    {
      id: 'az104-026',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You must distribute inbound TCP traffic across several virtual machines in Azure. Which service should you use?',
        de: 'Sie müssen eingehenden TCP-Datenverkehr auf mehrere virtuelle Computer in Azure verteilen. Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'B', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'C', text: { en: 'Azure Load Balancer', de: 'Azure Load Balancer' } },
        { id: 'D', text: { en: 'Network Watcher', de: 'Network Watcher' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Azure Load Balancer distributes Layer 4 TCP and UDP traffic across backend instances. It is the appropriate service for non-HTTP load distribution to virtual machines.',
        de: 'Azure Load Balancer verteilt Layer-4-TCP- und UDP-Datenverkehr auf Back-End-Instanzen. Er ist der passende Dienst für die nicht HTTP-basierte Lastverteilung auf virtuelle Computer.'
      },
      hint: {
        en: 'This requirement is about Layer 4 traffic, not web-specific Layer 7 routing.',
        de: 'Diese Anforderung betrifft Layer-4-Verkehr, nicht webspezifisches Layer-7-Routing.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-overview'
    },
    {
      id: 'az104-027',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., a web team needs path-based routing, TLS termination, and web application firewall capabilities for an internet-facing application.',
        de: 'Bei Fabrikam, Inc.: ein Webteam benötigt pfadbasiertes Routing, TLS-Terminierung und Web Application Firewall-Funktionen für eine internetseitige Anwendung.'
      },
      question: {
        en: 'Which Azure service should you deploy?',
        de: 'Welchen Azure-Dienst sollten Sie bereitstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Load Balancer', de: 'Azure Load Balancer' } },
        { id: 'B', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'C', text: { en: 'ExpressRoute', de: 'ExpressRoute' } },
        { id: 'D', text: { en: 'Azure DNS Private Resolver', de: 'Azure DNS Private Resolver' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Application Gateway is the Azure Layer 7 load balancer that supports path-based routing, TLS offload, and optional WAF protection. Azure Load Balancer works at Layer 4 and does not provide those web-specific features.',
        de: 'Application Gateway ist der Azure-Layer-7-Load-Balancer, der pfadbasiertes Routing, TLS-Offload und optionalen WAF-Schutz unterstützt. Azure Load Balancer arbeitet auf Layer 4 und bietet diese webspezifischen Funktionen nicht.'
      },
      hint: {
        en: 'The mention of web paths and TLS termination points to an HTTP-aware service.',
        de: 'Die Erwähnung von Webpfaden und TLS-Terminierung weist auf einen HTTP-bewussten Dienst hin.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/application-gateway/overview'
    },
    {
      id: 'az104-028',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which Azure services can connect an on-premises network to Azure virtual networks? Choose all that apply.',
        de: 'Welche Azure-Dienste können ein lokales Netzwerk mit Azure Virtual Networks verbinden? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'VPN Gateway', de: 'VPN Gateway' } },
        { id: 'B', text: { en: 'ExpressRoute', de: 'ExpressRoute' } },
        { id: 'C', text: { en: 'VNet peering', de: 'VNet-Peering' } },
        { id: 'D', text: { en: 'Azure DNS', de: 'Azure DNS' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'VPN Gateway provides encrypted connectivity over the public internet, while ExpressRoute provides private dedicated connectivity through a connectivity provider. VNet peering connects Azure VNets to each other, and Azure DNS handles name resolution.',
        de: 'VPN Gateway bietet verschlüsselte Konnektivität über das öffentliche Internet, während ExpressRoute private dedizierte Konnektivität über einen Konnektivitätsanbieter bereitstellt. VNet-Peering verbindet Azure-VNets untereinander, und Azure DNS übernimmt die Namensauflösung.'
      },
      hint: {
        en: 'Choose the hybrid connectivity services, not the service for Azure-to-Azure peering or DNS hosting.',
        de: 'Wählen Sie die Dienste für Hybridkonnektivität, nicht den Dienst für Azure-zu-Azure-Peering oder DNS-Hosting.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/architecture/networking/guide/networking-for-hybrid-connectivity'
    },
    {
      id: 'az104-029',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure service hosts DNS zones and records for name resolution in Azure?',
        de: 'Welcher Azure-Dienst hostet DNS-Zonen und Datensätze für die Namensauflösung in Azure?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Firewall', de: 'Azure Firewall' } },
        { id: 'B', text: { en: 'Azure DNS', de: 'Azure DNS' } },
        { id: 'C', text: { en: 'Azure Load Balancer', de: 'Azure Load Balancer' } },
        { id: 'D', text: { en: 'Route table', de: 'Routentabelle' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure DNS is the managed Azure service for hosting DNS zones and records. It supports reliable name resolution for public and private DNS scenarios in Azure.',
        de: 'Azure DNS ist der verwaltete Azure-Dienst zum Hosten von DNS-Zonen und Datensätzen. Er unterstützt eine zuverlässige Namensauflösung für öffentliche und private DNS-Szenarien in Azure.'
      },
      hint: {
        en: 'This is the managed DNS hosting service, not a traffic-filtering or routing feature.',
        de: 'Dies ist der verwaltete Dienst zum Hosten von DNS, nicht eine Funktion zur Verkehrsfilterung oder zum Routing.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/dns/dns-overview'
    },
    {
      id: 'az104-030',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need a central place to collect log data from Azure resources and virtual machines and query it with Kusto Query Language. What should you use?',
        de: 'Sie benötigen einen zentralen Ort, um Protokolldaten von Azure-Ressourcen und virtuellen Computern zu sammeln und mit der Kusto Query Language abzufragen. Was sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'B', text: { en: 'Log Analytics workspace', de: 'Log Analytics-Arbeitsbereich' } },
        { id: 'C', text: { en: 'Recovery Services vault', de: 'Recovery Services-Tresor' } },
        { id: 'D', text: { en: 'Network Security Group', de: 'Network Security Group' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A Log Analytics workspace is the central data store for many Azure Monitor logs and supports KQL queries. Action groups send notifications, while a Recovery Services vault is used for backup and disaster recovery data.',
        de: 'Ein Log Analytics-Arbeitsbereich ist der zentrale Datenspeicher für viele Azure Monitor-Protokolle und unterstützt KQL-Abfragen. Aktionsgruppen versenden Benachrichtigungen, während ein Recovery Services-Tresor für Backup- und Notfallwiederherstellungsdaten verwendet wird.'
      },
      hint: {
        en: 'Choose the analytics repository, not the notification or backup component.',
        de: 'Wählen Sie das Analyse-Repository, nicht die Benachrichtigungs- oder Backup-Komponente.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-analytics-workspace-overview'
    },
    {
      id: 'az104-031',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which signal sources can trigger Azure Monitor alerts? Choose all that apply.',
        de: 'Welche Signalquellen können Azure Monitor-Warnungen auslösen? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Metrics', de: 'Metriken' } },
        { id: 'B', text: { en: 'Log queries', de: 'Protokollabfragen' } },
        { id: 'C', text: { en: 'Activity Log events', de: 'Activity Log-Ereignisse' } },
        { id: 'D', text: { en: 'Azure Policy aliases', de: 'Azure Policy-Aliase' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Azure Monitor alerts can be based on metrics, log query results, and Activity Log events. Azure Policy aliases are metadata used in policy definitions and are not themselves alert signal types.',
        de: 'Azure Monitor-Warnungen können auf Metriken, Ergebnissen von Protokollabfragen und Activity Log-Ereignissen basieren. Azure Policy-Aliase sind Metadaten, die in Policy-Definitionen verwendet werden, und sind selbst keine Warnsignaltypen.'
      },
      hint: {
        en: 'Think about the main monitoring signal categories in Azure Monitor.',
        de: 'Denken Sie an die wichtigsten Überwachungssignalkategorien in Azure Monitor.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-overview'
    },
    {
      id: 'az104-032',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which Azure service should you use to perform packet capture, IP flow verify, and connection troubleshooting for virtual networks?',
        de: 'Welchen Azure-Dienst sollten Sie verwenden, um Paketaufzeichnung, IP Flow Verify und Verbindungsfehlerbehebung für virtuelle Netzwerke durchzuführen?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Monitor', de: 'Azure Monitor' } },
        { id: 'B', text: { en: 'Network Watcher', de: 'Network Watcher' } },
        { id: 'C', text: { en: 'Service Health', de: 'Service Health' } },
        { id: 'D', text: { en: 'Microsoft Defender for Cloud', de: 'Microsoft Defender for Cloud' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Network Watcher provides network diagnostic and monitoring tools such as packet capture, IP flow verify, connection troubleshoot, and topology views. These capabilities are specifically designed for Azure networking analysis.',
        de: 'Network Watcher stellt Netzwerkdiagnose- und Überwachungstools wie Paketaufzeichnung, IP Flow Verify, Verbindungsfehlerbehebung und Topologieansichten bereit. Diese Funktionen sind speziell für die Analyse von Azure-Netzwerken ausgelegt.'
      },
      hint: {
        en: 'Use the networking diagnostics service, not the broad monitoring or security service.',
        de: 'Verwenden Sie den Dienst für Netzwerkdiagnose, nicht den allgemeinen Überwachungs- oder Sicherheitsdienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/network-watcher-monitoring-overview'
    },
    {
      id: 'az104-033',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure service is the overall platform for metrics, logs, alerts, and dashboards?',
        de: 'Welcher Azure-Dienst ist die übergreifende Plattform für Metriken, Protokolle, Warnungen und Dashboards?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Monitor', de: 'Azure Monitor' } },
        { id: 'B', text: { en: 'Azure Policy', de: 'Azure Policy' } },
        { id: 'C', text: { en: 'Azure Backup', de: 'Azure Backup' } },
        { id: 'D', text: { en: 'Azure DNS', de: 'Azure DNS' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Monitor is the umbrella monitoring platform in Azure. It brings together metrics, logs, alerts, workbooks, and visualization features for observing resource health and performance.',
        de: 'Azure Monitor ist die übergreifende Überwachungsplattform in Azure. Sie vereint Metriken, Protokolle, Warnungen, Workbooks und Visualisierungsfunktionen zur Beobachtung von Ressourcenstatus und Leistung.'
      },
      hint: {
        en: 'Think of the top-level Azure monitoring brand, not a governance or backup service.',
        de: 'Denken Sie an die zentrale Azure-Überwachungsplattform, nicht an einen Governance- oder Backup-Dienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/fundamentals/overview'
    },
    {
      id: 'az104-034',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. Use the managed backup service and its vault, not just storage snapshots.',
        de: 'Sie arbeiten für Contoso, Ltd. Verwenden Sie den verwalteten Backup-Dienst und seinen Tresor, nicht nur Speichersnapshots.'
      },
      question: {
        en: 'Which Azure component should you use?',
        de: 'Welche Azure-Komponente sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Snapshots only', de: 'Nur Snapshots' } },
        { id: 'B', text: { en: 'Log Analytics workspace', de: 'Log Analytics-Arbeitsbereich' } },
        { id: 'C', text: { en: 'Recovery Services vault with Azure Backup', de: 'Recovery Services-Tresor mit Azure Backup' } },
        { id: 'D', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Azure Backup uses a Recovery Services vault to protect Azure VMs and manage scheduling, retention, and recovery. Snapshots alone do not provide the same managed backup policy and restore experience.',
        de: 'Azure Backup verwendet einen Recovery Services-Tresor, um Azure-VMs zu schützen und Planung, Aufbewahrung und Wiederherstellung zu verwalten. Snapshots allein bieten nicht dieselbe verwaltete Backup-Richtlinie und Wiederherstellungserfahrung.'
      },
      hint: {
        en: 'Use the managed backup service and its vault, not just storage snapshots.',
        de: 'Verwenden Sie den verwalteten Backup-Dienst und seinen Tresor, nicht nur Speichersnapshots.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/backup-overview'
    },
    {
      id: 'az104-035',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'The operations team at Fabrikam, Inc. wants to be notified by email and webhook whenever a Network Security Group is deleted in a subscription. The signal must come from control plane events rather than guest operating system logs.',
        de: 'Das Betriebsteam von Fabrikam, Inc. möchte per E-Mail und Webhook benachrichtigt werden, wenn in einem Abonnement eine Network Security Group gelöscht wird. Das Signal muss aus Control-Plane-Ereignissen stammen und nicht aus Gastbetriebssystemprotokollen.'
      },
      question: {
        en: 'Which alert type should you create?',
        de: 'Welchen Warnungstyp sollten Sie erstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Metric alert', de: 'Metrikwarnung' } },
        { id: 'B', text: { en: 'Activity Log alert', de: 'Activity Log-Warnung' } },
        { id: 'C', text: { en: 'Log search alert from guest OS event logs only', de: 'Protokollsuchwarnung nur aus Gastbetriebssystem-Ereignisprotokollen' } },
        { id: 'D', text: { en: 'Backup alert', de: 'Backup-Warnung' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Deleting a Network Security Group is an Azure control plane operation recorded in the Activity Log. An Activity Log alert can watch for that event and trigger an action group for email, webhook, or other notifications.',
        de: 'Das Löschen einer Network Security Group ist ein Azure-Control-Plane-Vorgang, der im Activity Log erfasst wird. Eine Activity Log-Warnung kann dieses Ereignis überwachen und eine Aktionsgruppe für E-Mail-, Webhook- oder andere Benachrichtigungen auslösen.'
      },
      hint: {
        en: 'The requirement is about Azure resource management events, not performance metrics from inside a VM.',
        de: 'Die Anforderung betrifft Azure-Ressourcenverwaltungsereignisse, nicht Leistungsmetriken aus dem Inneren einer VM.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-activity-log-alert-rule'
    },
    {
      id: 'az104-036',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'Which property must be unique for each Microsoft Entra ID user within a tenant?', de: 'Welche Eigenschaft muss für jeden Microsoft Entra ID-Benutzer innerhalb eines Mandanten eindeutig sein?' },
      options: [
        { id: 'A', text: { en: 'Display name', de: 'Anzeigename' } },
        { id: 'B', text: { en: 'User principal name (UPN)', de: 'Benutzerprinzipalname (UPN)' } },
        { id: 'C', text: { en: 'Department', de: 'Abteilung' } },
        { id: 'D', text: { en: 'Usage location', de: 'Nutzungsstandort' } }
      ],
      correct: ['B'],
      explanation: { en: 'The user principal name uniquely identifies a user account in Microsoft Entra ID. Properties such as display name or department can be duplicated across multiple users.', de: 'Der Benutzerprinzipalname identifiziert ein Benutzerkonto in Microsoft Entra ID eindeutig. Eigenschaften wie Anzeigename oder Abteilung können bei mehreren Benutzern identisch sein.' },
      hint: { en: 'Think about the sign-in name.', de: 'Denken Sie an den Anmeldenamen.' },
      reference: 'https://learn.microsoft.com/en-us/entra/fundamentals/how-to-create-delete-users'
    },
    {
      id: 'az104-037',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: { en: 'You work for Northwind Traders. Two networks are already in Azure. You do not need on-premises connectivity technology.', de: 'Sie arbeiten für Northwind Traders. Beide Netzwerke befinden sich bereits in Azure. Sie benötigen keine Technologie für lokale Anbindung.' },
      question: { en: 'Which tasks can you delegate by using Microsoft Entra administrative units together with appropriately scoped roles?', de: 'Welche Aufgaben können Sie mit administrativen Einheiten in Microsoft Entra zusammen mit passend zugewiesenen Rollen delegieren?' },
      options: [
        { id: 'A', text: { en: 'Reset passwords for users in the administrative unit', de: 'Kennwörter für Benutzer in der administrativen Einheit zurücksetzen' } },
        { id: 'B', text: { en: 'Manage memberships of groups in the administrative unit', de: 'Mitgliedschaften von Gruppen in der administrativen Einheit verwalten' } },
        { id: 'C', text: { en: 'Create resource locks on Azure virtual machines', de: 'Ressourcensperren für Azure-VMs erstellen' } },
        { id: 'D', text: { en: 'Assign Azure Policy to subscriptions', de: 'Azure Policy Subskriptionen zuweisen' } }
      ],
      correct: ['A', 'B'],
      explanation: { en: 'Administrative units scope directory administration for users, groups, and devices. They do not govern Azure resources such as virtual machines or subscription-level Azure Policy assignments.', de: 'Administrative Einheiten begrenzen die Verzeichnisverwaltung auf Benutzer, Gruppen und Geräte. Sie steuern keine Azure-Ressourcen wie virtuelle Computer oder Azure Policy-Zuweisungen auf Subskriptionsebene.' },
      hint: { en: 'Administrative units apply to directory objects, not Azure resources.', de: 'Administrative Einheiten gelten für Verzeichnisobjekte, nicht für Azure-Ressourcen.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/administrative-units'
    },
    {
      id: 'az104-038',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which group type can be added as a member of another security group in Microsoft Entra ID?', de: 'Welcher Gruppentyp kann in Microsoft Entra ID als Mitglied einer anderen Sicherheitsgruppe hinzugefügt werden?' },
      options: [
        { id: 'A', text: { en: 'Microsoft 365 group', de: 'Microsoft 365-Gruppe' } },
        { id: 'B', text: { en: 'Security group', de: 'Sicherheitsgruppe' } },
        { id: 'C', text: { en: 'Administrative unit', de: 'Administrative Einheit' } },
        { id: 'D', text: { en: 'Management group', de: 'Verwaltungsgruppe' } }
      ],
      correct: ['B'],
      explanation: { en: 'Security groups can be nested inside other security groups to simplify access management. Microsoft 365 groups are collaboration groups and are not supported for group nesting in this way.', de: 'Sicherheitsgruppen können in andere Sicherheitsgruppen verschachtelt werden, um die Zugriffsverwaltung zu vereinfachen. Microsoft 365-Gruppen sind Kollaborationsgruppen und werden für diese Art der Gruppenverschachtelung nicht unterstützt.' },
      hint: { en: 'Only one option is also intended primarily for access control.', de: 'Nur eine Option ist ebenfalls primär für die Zugriffssteuerung gedacht.' },
      reference: 'https://learn.microsoft.com/en-us/entra/fundamentals/concept-learn-about-groups'
    },
    {
      id: 'az104-039',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'What is the primary purpose of Microsoft Entra access reviews?', de: 'Was ist der Hauptzweck von Microsoft Entra-Zugriffsüberprüfungen?' },
      options: [
        { id: 'A', text: { en: 'Automatically back up Azure virtual machines', de: 'Azure-VMs automatisch sichern' } },
        { id: 'B', text: { en: 'Regularly verify that users still need assigned access', de: 'Regelmäßig überprüfen, ob Benutzer den zugewiesenen Zugriff noch benötigen' } },
        { id: 'C', text: { en: 'Assign licenses to new users', de: 'Lizenzen neuen Benutzern zuweisen' } },
        { id: 'D', text: { en: 'Synchronize passwords from on-premises Active Directory', de: 'Kennwörter aus lokalem Active Directory synchronisieren' } }
      ],
      correct: ['B'],
      explanation: { en: 'Access reviews help organizations periodically validate membership and entitlement assignments. This reduces the risk of users keeping access that is no longer required.', de: 'Zugriffsüberprüfungen helfen Organisationen, Mitgliedschaften und Berechtigungszuweisungen regelmäßig zu validieren. Dadurch wird das Risiko verringert, dass Benutzer unnötigen Zugriff behalten.' },
      hint: { en: 'This feature supports periodic governance checks.', de: 'Diese Funktion unterstützt regelmäßige Governance-Prüfungen.' },
      reference: 'https://learn.microsoft.com/en-us/entra/id-governance/access-reviews-overview'
    },
    {
      id: 'az104-040',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: { en: 'At Contoso, Ltd., a storage account must be protected from accidental deletion, but administrators must still be able to change its configuration.', de: 'Bei Contoso, Ltd. muss vor versehentlichem Löschen geschützt werden, Administratoren müssen die Konfiguration jedoch weiterhin ändern können.' },
      question: { en: 'Which resource lock should you apply?', de: 'Welche Ressourcensperre sollten Sie anwenden?' },
      options: [
        { id: 'A', text: { en: 'ReadOnly', de: 'ReadOnly' } },
        { id: 'B', text: { en: 'CanNotDelete', de: 'CanNotDelete' } },
        { id: 'C', text: { en: 'Deny assignment', de: 'Deny Assignment' } },
        { id: 'D', text: { en: 'Delete protection tag', de: 'Tag für Löschschutz' } }
      ],
      correct: ['B'],
      explanation: { en: 'A CanNotDelete lock prevents deletion of the resource but still allows update operations. A ReadOnly lock is more restrictive because it blocks changes as well as deletion.', de: 'Eine CanNotDelete-Sperre verhindert das Löschen der Ressource, erlaubt jedoch weiterhin Aktualisierungen. Eine ReadOnly-Sperre ist restriktiver, weil sie sowohl Änderungen als auch Löschvorgänge blockiert.' },
      hint: { en: 'You must allow updates but block deletion.', de: 'Aktualisierungen müssen erlaubt bleiben, das Löschen jedoch nicht.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/lock-resources'
    },
    {
      id: 'az104-041',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which statements about Azure tags are correct?', de: 'Welche Aussagen zu Azure-Tags sind korrekt?' },
      options: [
        { id: 'A', text: { en: 'Tags are name and value pairs applied to resources', de: 'Tags sind Name-Wert-Paare, die Ressourcen zugewiesen werden' } },
        { id: 'B', text: { en: 'Tags automatically inherit to all child resources in every Azure service', de: 'Tags werden in jedem Azure-Dienst automatisch an alle untergeordneten Ressourcen vererbt' } },
        { id: 'C', text: { en: 'Tags can be used for cost reporting and organization', de: 'Tags können für Kostenberichte und zur Organisation verwendet werden' } },
        { id: 'D', text: { en: 'Tags determine RBAC permissions for users', de: 'Tags bestimmen RBAC-Berechtigungen für Benutzer' } }
      ],
      correct: ['A', 'C'],
      explanation: { en: 'Azure tags are metadata stored as name and value pairs. They are useful for organizing resources and analyzing costs, but they do not automatically inherit in all cases and they do not grant permissions.', de: 'Azure-Tags sind Metadaten, die als Name-Wert-Paare gespeichert werden. Sie sind nützlich zur Organisation von Ressourcen und zur Kostenanalyse, werden jedoch nicht in allen Fällen automatisch vererbt und vergeben keine Berechtigungen.' },
      hint: { en: 'Think of metadata and cost management, not access control.', de: 'Denken Sie an Metadaten und Kostenmanagement, nicht an Zugriffssteuerung.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources'
    },
    {
      id: 'az104-042',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: { en: 'At which scope should you assign governance settings when they must apply across multiple Azure subscriptions?', de: 'Auf welcher Ebene sollten Sie Governance-Einstellungen zuweisen, wenn sie für mehrere Azure-Subskriptionen gelten müssen?' },
      options: [
        { id: 'A', text: { en: 'Resource', de: 'Ressource' } },
        { id: 'B', text: { en: 'Resource group', de: 'Ressourcengruppe' } },
        { id: 'C', text: { en: 'Management group', de: 'Verwaltungsgruppe' } },
        { id: 'D', text: { en: 'Tag', de: 'Tag' } }
      ],
      correct: ['C'],
      explanation: { en: 'Management groups let you organize subscriptions and apply governance consistently above the subscription level. Policies and role assignments applied there inherit to child subscriptions and their resources.', de: 'Mit Verwaltungsgruppen können Sie Subskriptionen organisieren und Governance oberhalb der Subskriptionsebene einheitlich anwenden. Dort zugewiesene Richtlinien und Rollenzuweisungen werden an untergeordnete Subskriptionen und deren Ressourcen vererbt.' },
      hint: { en: 'You need a scope above subscriptions.', de: 'Sie benötigen einen Bereich oberhalb von Subskriptionen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-043',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which built-in Azure RBAC roles can create role assignments for other principals?', de: 'Welche integrierten Azure RBAC-Rollen können Rollenzuweisungen für andere Prinzipale erstellen?' },
      options: [
        { id: 'A', text: { en: 'Owner', de: 'Besitzer' } },
        { id: 'B', text: { en: 'Reader', de: 'Leser' } },
        { id: 'C', text: { en: 'User Access Administrator', de: 'Benutzerzugriffsadministrator' } },
        { id: 'D', text: { en: 'Contributor', de: 'Mitwirkender' } }
      ],
      correct: ['A', 'C'],
      explanation: { en: 'Owner includes full management rights, including the ability to grant access. User Access Administrator is specifically designed to manage user access through role assignments, while Contributor cannot grant access.', de: 'Die Rolle Besitzer umfasst vollständige Verwaltungsrechte einschließlich der Möglichkeit, Zugriff zu gewähren. Der Benutzerzugriffsadministrator ist speziell dafür vorgesehen, Benutzerzugriffe über Rollenzuweisungen zu verwalten, während Mitwirkende keinen Zugriff gewähren können.' },
      hint: { en: 'One role is full control, and one role is focused on access management.', de: 'Eine Rolle bietet vollständige Kontrolle, und eine Rolle ist auf Zugriffsverwaltung spezialisiert.' },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles'
    },
    {
      id: 'az104-044',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'When you create a custom Azure RBAC role, which property defines where the role can be assigned?', de: 'Welche Eigenschaft legt beim Erstellen einer benutzerdefinierten Azure RBAC-Rolle fest, wo die Rolle zugewiesen werden kann?' },
      options: [
        { id: 'A', text: { en: 'Actions', de: 'Actions' } },
        { id: 'B', text: { en: 'NotActions', de: 'NotActions' } },
        { id: 'C', text: { en: 'AssignableScopes', de: 'AssignableScopes' } },
        { id: 'D', text: { en: 'DataActions', de: 'DataActions' } }
      ],
      correct: ['C'],
      explanation: { en: 'AssignableScopes specifies the management groups, subscriptions, resource groups, or resources where the custom role can be used. Actions and DataActions define permissions, but they do not control assignment scope.', de: 'AssignableScopes gibt die Verwaltungsgruppen, Subskriptionen, Ressourcengruppen oder Ressourcen an, in denen die benutzerdefinierte Rolle verwendet werden kann. Actions und DataActions definieren Berechtigungen, steuern jedoch nicht den Zuweisungsbereich.' },
      hint: { en: 'Look for the property that limits where assignments are allowed.', de: 'Suchen Sie nach der Eigenschaft, die festlegt, wo Zuweisungen zulässig sind.' },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles'
    },
    {
      id: 'az104-045',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: { en: 'You work for Fabrikam, Inc. Your team needs the storage transfer tool that is designed for bulk, automated copies rather than a graphical browser.', de: 'Sie arbeiten für Fabrikam, Inc. Ihr Team benötigt das Speicherübertragungstool, das für Massenkopien und Automatisierung ausgelegt ist, nicht einen grafischen Browser.' },
      question: { en: 'Which statements about Azure Policy initiatives and remediation tasks are correct?', de: 'Welche Aussagen zu Azure Policy-Initiativen und Remediation-Aufgaben sind korrekt?' },
      options: [
        { id: 'A', text: { en: 'An initiative can contain multiple policy definitions', de: 'Eine Initiative kann mehrere Richtliniendefinitionen enthalten' } },
        { id: 'B', text: { en: 'A remediation task can fix existing non-compliant resources for supported policies', de: 'Eine Remediation-Aufgabe kann vorhandene nicht konforme Ressourcen für unterstützte Richtlinien korrigieren' } },
        { id: 'C', text: { en: 'Assigning an initiative always fixes existing resources immediately', de: 'Das Zuweisen einer Initiative korrigiert vorhandene Ressourcen immer sofort' } },
        { id: 'D', text: { en: 'An initiative can only be assigned at resource group scope', de: 'Eine Initiative kann nur auf Ebene der Ressourcengruppe zugewiesen werden' } }
      ],
      correct: ['A', 'B'],
      explanation: { en: 'An initiative is a collection of policy definitions managed as one assignment. Existing resources are not automatically corrected just by assigning the initiative; remediation tasks are needed for supported effects such as deployIfNotExists or modify.', de: 'Eine Initiative ist eine Sammlung von Richtliniendefinitionen, die als eine Zuweisung verwaltet wird. Vorhandene Ressourcen werden nicht allein durch das Zuweisen der Initiative automatisch korrigiert; für unterstützte Effekte wie deployIfNotExists oder modify sind Remediation-Aufgaben erforderlich.' },
      hint: { en: 'One feature groups policies, and another helps correct existing resources.', de: 'Eine Funktion bündelt Richtlinien, und eine andere hilft bei der Korrektur vorhandener Ressourcen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/policy/how-to/remediate-resources'
    },
    {
      id: 'az104-046',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: { en: 'You work for Northwind Traders. Administrative units apply to directory objects, not Azure resources.', de: 'Sie arbeiten für Northwind Traders. Administrative Einheiten gelten für Verzeichnisobjekte, nicht für Azure-Ressourcen.' },
      question: { en: 'Which governance mechanism is designed for this purpose?', de: 'Welcher Governance-Mechanismus ist für diesen Zweck vorgesehen?' },
      options: [
        { id: 'A', text: { en: 'Resource lock', de: 'Ressourcensperre' } },
        { id: 'B', text: { en: 'Deny assignment', de: 'Deny Assignment' } },
        { id: 'C', text: { en: 'Tag', de: 'Tag' } },
        { id: 'D', text: { en: 'Administrative unit', de: 'Administrative Einheit' } }
      ],
      correct: ['B'],
      explanation: { en: 'Deny assignments block specified actions even if a role assignment would otherwise grant them. Resource locks protect resources from modification or deletion, but they are not the identity-based RBAC restriction mechanism described here.', de: 'Deny Assignments blockieren bestimmte Aktionen, selbst wenn eine Rollenzuweisung sie ansonsten erlauben würde. Ressourcensperren schützen Ressourcen vor Änderungen oder Löschung, sind jedoch nicht der hier beschriebene identitätsbasierte RBAC-Einschränkungsmechanismus.' },
      hint: { en: 'This feature works with RBAC evaluation, not with resource metadata.', de: 'Diese Funktion wirkt in der RBAC-Auswertung, nicht über Ressourcenmetadaten.' },
      reference: 'https://learn.microsoft.com/en-us/azure/role-based-access-control/deny-assignments'
    },
    {
      id: 'az104-047',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'easy',
      scenario: { en: 'You work for Contoso, Ltd. Your team needs the service that manages a fleet of identical VMs rather than simply separating a few VMs across domains.', de: 'Sie arbeiten für Contoso, Ltd. Ihr Team sucht nach dem Dienst, der eine Flotte identischer VMs verwaltet, statt nur wenige VMs über Domänen zu verteilen.' },
      question: { en: 'Which Azure construct should you use to organize these resources?', de: 'Welches Azure-Konstrukt sollten Sie verwenden, um diese Ressourcen zu organisieren?' },
      options: [
        { id: 'A', text: { en: 'Management group', de: 'Verwaltungsgruppe' } },
        { id: 'B', text: { en: 'Resource group', de: 'Ressourcengruppe' } },
        { id: 'C', text: { en: 'Administrative unit', de: 'Administrative Einheit' } },
        { id: 'D', text: { en: 'Policy initiative', de: 'Policy-Initiative' } }
      ],
      correct: ['B'],
      explanation: { en: 'A resource group is the standard container for resources that share a lifecycle, permissions, and deployment model. Management groups organize subscriptions, not individual application resources.', de: 'Eine Ressourcengruppe ist der Standardcontainer für Ressourcen mit gemeinsamem Lebenszyklus, gemeinsamen Berechtigungen und gemeinsamem Bereitstellungsmodell. Verwaltungsgruppen organisieren Subskriptionen, nicht einzelne Anwendungsressourcen.' },
      hint: { en: 'Choose the container used for related Azure resources.', de: 'Wählen Sie den Container für zusammengehörige Azure-Ressourcen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/overview#resource-groups'
    },
    {
      id: 'az104-048',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'What is the main difference between a Microsoft Entra security group and a Microsoft 365 group?', de: 'Was ist der Hauptunterschied zwischen einer Microsoft Entra-Sicherheitsgruppe und einer Microsoft 365-Gruppe?' },
      options: [
        { id: 'A', text: { en: 'Security groups can contain users, but Microsoft 365 groups cannot', de: 'Sicherheitsgruppen können Benutzer enthalten, Microsoft 365-Gruppen jedoch nicht' } },
        { id: 'B', text: { en: 'Microsoft 365 groups also provide collaboration resources such as a mailbox and calendar', de: 'Microsoft 365-Gruppen stellen zusätzlich Kollaborationsressourcen wie ein Postfach und einen Kalender bereit' } },
        { id: 'C', text: { en: 'Security groups can be used only for on-premises identities', de: 'Sicherheitsgruppen können nur für lokale Identitäten verwendet werden' } },
        { id: 'D', text: { en: 'Microsoft 365 groups are required for all RBAC assignments', de: 'Microsoft 365-Gruppen sind für alle RBAC-Zuweisungen erforderlich' } }
      ],
      correct: ['B'],
      explanation: { en: 'Security groups are mainly used to manage access to resources. Microsoft 365 groups also support collaboration workloads such as a shared mailbox, calendar, and SharePoint site.', de: 'Sicherheitsgruppen werden hauptsächlich zur Verwaltung des Zugriffs auf Ressourcen verwendet. Microsoft 365-Gruppen unterstützen zusätzlich Kollaborationsworkloads wie ein gemeinsames Postfach, einen Kalender und eine SharePoint-Website.' },
      hint: { en: 'One option adds teamwork features beyond access control.', de: 'Eine Option ergänzt Funktionen für Zusammenarbeit über die reine Zugriffssteuerung hinaus.' },
      reference: 'https://learn.microsoft.com/en-us/entra/fundamentals/concept-learn-about-groups'
    },
    {
      id: 'az104-049',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'Which object types can be members of a Microsoft Entra administrative unit?', de: 'Welche Objekttypen können Mitglieder einer administrativen Einheit in Microsoft Entra sein?' },
      options: [
        { id: 'A', text: { en: 'Users', de: 'Benutzer' } },
        { id: 'B', text: { en: 'Groups', de: 'Gruppen' } },
        { id: 'C', text: { en: 'Devices', de: 'Geräte' } },
        { id: 'D', text: { en: 'Subscriptions', de: 'Subskriptionen' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: { en: 'Administrative units contain directory objects such as users, groups, and devices. They do not contain Azure subscriptions because subscriptions are Azure resource governance objects, not Microsoft Entra directory objects.', de: 'Administrative Einheiten enthalten Verzeichnisobjekte wie Benutzer, Gruppen und Geräte. Sie enthalten keine Azure-Subskriptionen, da Subskriptionen Objekte der Azure-Ressourcengovernance und keine Verzeichnisobjekte in Microsoft Entra sind.' },
      hint: { en: 'Administrative units are for directory objects.', de: 'Administrative Einheiten sind für Verzeichnisobjekte vorgesehen.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/administrative-units'
    },
    {
      id: 'az104-050',
      type: 'multiple',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: { en: 'A resource has a ReadOnly lock applied. Which operations are blocked?', de: 'Auf eine Ressource wurde eine ReadOnly-Sperre angewendet. Welche Vorgänge werden blockiert?' },
      options: [
        { id: 'A', text: { en: 'Changing the resource configuration', de: 'Ändern der Ressourcenkonfiguration' } },
        { id: 'B', text: { en: 'Deleting the resource', de: 'Löschen der Ressource' } },
        { id: 'C', text: { en: 'Viewing the resource properties', de: 'Anzeigen der Ressourceneigenschaften' } },
        { id: 'D', text: { en: 'Reading activity log entries', de: 'Lesen von Aktivitätsprotokolleinträgen' } }
      ],
      correct: ['A', 'B'],
      explanation: { en: 'A ReadOnly lock prevents write and delete operations against the locked resource. Read operations are still allowed, so administrators can view properties and diagnostic information.', de: 'Eine ReadOnly-Sperre verhindert Schreib- und Löschvorgänge für die gesperrte Ressource. Lesevorgänge bleiben weiterhin zulässig, sodass Administratoren Eigenschaften und Diagnoseinformationen anzeigen können.' },
      hint: { en: 'ReadOnly means read access remains, but changes do not.', de: 'ReadOnly bedeutet, dass Lesezugriff bleibt, Änderungen jedoch nicht möglich sind.' },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/lock-resources'
    },
    {
      id: 'az104-051',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'medium',
      scenario: { en: 'Users at Fabrikam, Inc. must be able to request membership in a group without opening a help desk ticket for every request.', de: 'Benutzer bei Fabrikam, Inc. sollen die Mitgliedschaft in einer Gruppe anfordern können, ohne für jede Anforderung ein Helpdesk-Ticket zu eröffnen.' },
      question: { en: 'Which Microsoft Entra feature should you configure?', de: 'Welche Microsoft Entra-Funktion sollten Sie konfigurieren?' },
      options: [
        { id: 'A', text: { en: 'Self-service password reset', de: 'Self-Service-Kennwortzurücksetzung' } },
        { id: 'B', text: { en: 'Access reviews', de: 'Zugriffsüberprüfungen' } },
        { id: 'C', text: { en: 'Self-service group management', de: 'Self-Service-Gruppenverwaltung' } },
        { id: 'D', text: { en: 'Privileged Identity Management', de: 'Privileged Identity Management' } }
      ],
      correct: ['C'],
      explanation: { en: 'Self-service group management allows users to request membership in eligible groups, often with approval by group owners. This reduces manual administration while keeping control over membership decisions.', de: 'Die Self-Service-Gruppenverwaltung ermöglicht Benutzern, die Mitgliedschaft in geeigneten Gruppen anzufordern, häufig mit Genehmigung durch Gruppenbesitzer. Dadurch wird der manuelle Verwaltungsaufwand reduziert, während die Kontrolle über Mitgliedschaftsentscheidungen erhalten bleibt.' },
      hint: { en: 'The feature is focused on group membership requests.', de: 'Die Funktion ist auf Anfragen zur Gruppenmitgliedschaft ausgerichtet.' },
      reference: 'https://learn.microsoft.com/en-us/entra/identity/users/groups-self-service-management'
    },
    {
      id: 'az104-052',
      type: 'single',
      domain: { en: 'Manage Azure Identities and Governance', de: 'Azure-Identitäten und Governance verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: { en: 'Which statement about Azure management groups is correct?', de: 'Welche Aussage zu Azure-Verwaltungsgruppen ist korrekt?' },
      options: [
        { id: 'A', text: { en: 'Each Azure directory has a single top-level root management group', de: 'Jedes Azure-Verzeichnis besitzt genau eine übergeordnete Stammverwaltungsgruppe' } },
        { id: 'B', text: { en: 'A subscription can belong to multiple management groups at the same time', de: 'Eine Subskription kann gleichzeitig mehreren Verwaltungsgruppen angehören' } },
        { id: 'C', text: { en: 'Management groups can directly contain resource groups', de: 'Verwaltungsgruppen können direkt Ressourcengruppen enthalten' } },
        { id: 'D', text: { en: 'Tags assigned to a management group automatically appear on all descendant resources', de: 'Einer Verwaltungsgruppe zugewiesene Tags erscheinen automatisch auf allen untergeordneten Ressourcen' } }
      ],
      correct: ['A'],
      explanation: { en: 'Azure creates one root management group for each directory, and all management groups and subscriptions ultimately roll up to it. A subscription can belong to only one management group, and management groups contain subscriptions or other management groups, not resource groups directly.', de: 'Azure erstellt für jedes Verzeichnis genau eine Stammverwaltungsgruppe, zu der letztlich alle Verwaltungsgruppen und Subskriptionen zusammenlaufen. Eine Subskription kann nur einer Verwaltungsgruppe angehören, und Verwaltungsgruppen enthalten Subskriptionen oder andere Verwaltungsgruppen, jedoch nicht direkt Ressourcengruppen.' },
      hint: { en: 'Think about the hierarchy above subscriptions.', de: 'Denken Sie an die Hierarchie oberhalb von Subskriptionen.' },
      reference: 'https://learn.microsoft.com/en-us/azure/governance/management-groups/overview'
    },
    {
      id: 'az104-053',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which storage account setting helps ensure that clients use HTTPS instead of HTTP when accessing data?',
        de: 'Welche Einstellung des Speicherkontos hilft sicherzustellen, dass Clients beim Zugriff auf Daten HTTPS statt HTTP verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Secure transfer required', de: 'Sichere Übertragung erforderlich' } },
        { id: 'B', text: { en: 'Hierarchical namespace', de: 'Hierarchischer Namespace' } },
        { id: 'C', text: { en: 'Static website', de: 'Statische Website' } },
        { id: 'D', text: { en: 'Blob versioning', de: 'Blobversionierung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Secure transfer required blocks requests that use insecure HTTP and requires clients to use HTTPS. This helps protect data in transit and is a basic storage account security control.',
        de: 'Sichere Übertragung erforderlich blockiert Anforderungen über unsicheres HTTP und zwingt Clients zur Verwendung von HTTPS. Dadurch werden Daten bei der Übertragung geschützt und eine grundlegende Sicherheitskontrolle für Speicherkonten umgesetzt.'
      },
      hint: {
        en: 'Look for the setting that enforces encrypted transport to the storage service.',
        de: 'Suchen Sie nach der Einstellung, die eine verschlüsselte Übertragung zum Speicherdienst erzwingt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-require-secure-transfer'
    },
    {
      id: 'az104-054',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'A team at Northwind Traders occasionally overwrites or deletes blobs by mistake and must be able to recover data quickly.',
        de: 'Ein Team bei Northwind Traders überschreibt oder löscht gelegentlich Blobs versehentlich und muss Daten schnell wiederherstellen können.'
      },
      question: {
        en: 'Which features should you enable to improve recovery from blob overwrite or deletion? Choose all that apply.',
        de: 'Welche Funktionen sollten Sie aktivieren, um die Wiederherstellung nach Überschreiben oder Löschen von Blob-Daten zu verbessern? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Blob versioning', de: 'Blobversionierung' } },
        { id: 'B', text: { en: 'Blob soft delete', de: 'Blob-Soft-Delete' } },
        { id: 'C', text: { en: 'Change feed only', de: 'Nur Change Feed' } },
        { id: 'D', text: { en: 'Container soft delete', de: 'Container-Soft-Delete' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Blob versioning keeps previous versions after writes, and blob soft delete helps recover deleted blobs. Container soft delete helps if an entire container is removed, while change feed records events but does not itself restore data.',
        de: 'Die Blobversionierung behält frühere Versionen nach Schreibvorgängen bei, und Blob-Soft-Delete hilft bei der Wiederherstellung gelöschter Blobs. Container-Soft-Delete hilft, wenn ein ganzer Container entfernt wurde, während Change Feed Ereignisse protokolliert, aber Daten nicht selbst wiederherstellt.'
      },
      hint: {
        en: 'Choose the features that retain deleted or previous data, not just an audit log.',
        de: 'Wählen Sie die Funktionen, die gelöschte oder frühere Daten aufbewahren, und nicht nur ein Prüfprotokoll.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/data-protection-overview'
    },
    {
      id: 'az104-055',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'The compliance team at Contoso, Ltd. must store financial records so that they cannot be modified or deleted for seven years.',
        de: 'Das Compliance-Team von Contoso, Ltd. muss Finanzunterlagen so speichern, dass sie sieben Jahre lang nicht geändert oder gelöscht werden können.'
      },
      question: {
        en: 'Which feature should you configure?',
        de: 'Welche Funktion sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Blob versioning', de: 'Blobversionierung' } },
        { id: 'B', text: { en: 'Time-based immutability policy', de: 'Zeitbasierte Unveränderlichkeitsrichtlinie' } },
        { id: 'C', text: { en: 'Point-in-time restore', de: 'Zeitpunktbezogene Wiederherstellung' } },
        { id: 'D', text: { en: 'Cool access tier', de: 'Cool-Zugriffsebene' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A time-based immutability policy provides WORM protection for the retention period that you define. During that period, protected data cannot be modified or deleted, which supports compliance requirements.',
        de: 'Eine zeitbasierte Unveränderlichkeitsrichtlinie bietet WORM-Schutz für den von Ihnen festgelegten Aufbewahrungszeitraum. Während dieses Zeitraums können geschützte Daten nicht geändert oder gelöscht werden, was Compliance-Anforderungen unterstützt.'
      },
      hint: {
        en: 'Think about the feature designed for WORM retention rather than recovery after deletion.',
        de: 'Denken Sie an die Funktion für WORM-Aufbewahrung und nicht an die Wiederherstellung nach einer Löschung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-policy-configure-container-scope'
    },
    {
      id: 'az104-056',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure Storage service provides SMB or NFS shares that servers can mount?',
        de: 'Welcher Azure Storage-Dienst stellt SMB- oder NFS-Freigaben bereit, die von Servern eingebunden werden können?'
      },
      options: [
        { id: 'A', text: { en: 'Blob container', de: 'Blobcontainer' } },
        { id: 'B', text: { en: 'Azure file share', de: 'Azure-Dateifreigabe' } },
        { id: 'C', text: { en: 'Queue', de: 'Queue' } },
        { id: 'D', text: { en: 'Table', de: 'Tabelle' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure Files provides fully managed file shares that you can mount over SMB and, in supported scenarios, NFS. Blob containers, queues, and tables serve different storage patterns and are not mounted as standard file shares.',
        de: 'Azure Files stellt vollständig verwaltete Dateifreigaben bereit, die Sie über SMB und in unterstützten Szenarien auch über NFS einbinden können. Blobcontainer, Queues und Tabellen dienen anderen Speichermustern und werden nicht als normale Dateifreigaben eingebunden.'
      },
      hint: {
        en: 'Choose the storage service that behaves like a shared network file system.',
        de: 'Wählen Sie den Speicherdienst, der sich wie ein gemeinsames Netzwerkdateisystem verhält.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-introduction'
    },
    {
      id: 'az104-057',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Azure Storage services are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure Storage-Diensten sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Blob containers store unstructured object data such as images and documents', de: 'Blobcontainer speichern unstrukturierte Objektdaten wie Bilder und Dokumente' } },
        { id: 'B', text: { en: 'Azure Queue Storage is used for messaging between application components', de: 'Azure Queue Storage wird für Nachrichten zwischen Anwendungskomponenten verwendet' } },
        { id: 'C', text: { en: 'Table storage is a relational database service with foreign keys', de: 'Table Storage ist ein relationaler Datenbankdienst mit Fremdschlüsseln' } },
        { id: 'D', text: { en: 'Azure Files can be mounted simultaneously by multiple virtual machines by using SMB', de: 'Azure Files kann gleichzeitig von mehreren virtuellen Maschinen über SMB eingebunden werden' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Blob storage is for object data, Queue storage is for durable messaging, and Azure Files provides shared file access. Table storage is a NoSQL key-attribute store rather than a relational database service.',
        de: 'Blob Storage ist für Objektdaten gedacht, Queue Storage für dauerhafte Nachrichten, und Azure Files bietet gemeinsamen Dateizugriff. Table Storage ist ein NoSQL-Schlüssel-Attribut-Speicher und kein relationaler Datenbankdienst.'
      },
      hint: {
        en: 'Match each service to its main storage pattern: objects, messages, files, or NoSQL entities.',
        de: 'Ordnen Sie jeden Dienst seinem Hauptspeichermuster zu: Objekte, Nachrichten, Dateien oder NoSQL-Entitäten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-introduction'
    },
    {
      id: 'az104-058',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Northwind Traders, a blob is currently in the Archive tier, and users need to access its contents again.',
        de: 'Bei Northwind Traders: ein Blob befindet sich derzeit in der Archive-Ebene, und Benutzer müssen wieder auf seinen Inhalt zugreifen.'
      },
      question: {
        en: 'What must you do before the blob can be read?',
        de: 'Was müssen Sie tun, bevor das Blob gelesen werden kann?'
      },
      options: [
        { id: 'A', text: { en: 'Enable static website hosting', de: 'Statische Website aktivieren' } },
        { id: 'B', text: { en: 'Create a private endpoint', de: 'Einen privaten Endpunkt erstellen' } },
        { id: 'C', text: { en: 'Rehydrate the blob to the hot or cool tier', de: 'Das Blob in die Hot- oder Cool-Ebene rehydrieren' } },
        { id: 'D', text: { en: 'Convert the blob to a file share', de: 'Das Blob in eine Dateifreigabe umwandeln' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Archived blobs are offline and cannot be read until they are rehydrated to an online tier such as hot or cool. Rehydration takes time, so archive storage is best for data that is rarely accessed.',
        de: 'Archivierte Blobs sind offline und können erst gelesen werden, wenn sie in eine Online-Ebene wie Hot oder Cool rehydriert wurden. Die Rehydrierung benötigt Zeit, daher eignet sich Archive Storage für Daten, auf die selten zugegriffen wird.'
      },
      hint: {
        en: 'Archive is an offline tier, so think about the step required to bring data back online.',
        de: 'Archive ist eine Offline-Ebene. Denken Sie daher an den Schritt, der Daten wieder online bringt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/access-tiers-overview'
    },
    {
      id: 'az104-059',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. You need zone-level resilience, but not a second region.',
        de: 'Sie arbeiten für Fabrikam, Inc. Sie benötigen Resilienz auf Zonenebene, aber keine zweite Region.'
      },
      question: {
        en: 'Which redundancy option should you choose?',
        de: 'Welche Redundanzoption sollten Sie wählen?'
      },
      options: [
        { id: 'A', text: { en: 'LRS', de: 'LRS' } },
        { id: 'B', text: { en: 'ZRS', de: 'ZRS' } },
        { id: 'C', text: { en: 'GZRS', de: 'GZRS' } },
        { id: 'D', text: { en: 'RA-GZRS', de: 'RA-GZRS' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'ZRS replicates data synchronously across multiple availability zones in the primary region. This protects against a zonal failure without adding geo-replication to a secondary region.',
        de: 'ZRS repliziert Daten synchron über mehrere Verfügbarkeitszonen in der primären Region. Dadurch wird vor einem Zonenausfall geschützt, ohne eine Georeplikation in eine sekundäre Region hinzuzufügen.'
      },
      hint: {
        en: 'You need zone-level resilience, but not a second region.',
        de: 'Sie benötigen Resilienz auf Zonenebene, aber keine zweite Region.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy'
    },
    {
      id: 'az104-060',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, an application needs zone-redundant storage in the primary region and asynchronous replication to a secondary region. Read access to the secondary region during normal operations is not required.',
        de: 'Bei Northwind Traders benötigt zonenredundanten Speicher in der primären Region und asynchrone Replikation in eine sekundäre Region. Lesezugriff auf die sekundäre Region im Normalbetrieb ist nicht erforderlich.'
      },
      question: {
        en: 'Which redundancy option should you choose?',
        de: 'Welche Redundanzoption sollten Sie wählen?'
      },
      options: [
        { id: 'A', text: { en: 'LRS', de: 'LRS' } },
        { id: 'B', text: { en: 'ZRS', de: 'ZRS' } },
        { id: 'C', text: { en: 'GZRS', de: 'GZRS' } },
        { id: 'D', text: { en: 'RA-GZRS', de: 'RA-GZRS' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'GZRS combines synchronous replication across zones in the primary region with asynchronous geo-replication to a secondary region. RA-GZRS would add read access to the secondary endpoint, which is not required here.',
        de: 'GZRS kombiniert synchrone Replikation über Zonen in der primären Region mit asynchroner Georeplikation in eine sekundäre Region. RA-GZRS würde zusätzlich Lesezugriff auf den sekundären Endpunkt bieten, was hier nicht erforderlich ist.'
      },
      hint: {
        en: 'Choose the option that combines zone redundancy and geo-replication, but not read access to the secondary region.',
        de: 'Wählen Sie die Option, die Zonenredundanz und Georeplikation kombiniert, aber keinen Lesezugriff auf die sekundäre Region bietet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy'
    },
    {
      id: 'az104-061',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a storage account is restricted to selected networks. Virtual machines in one virtual network must reach the account through a private IP address.',
        de: 'Bei Contoso, Ltd. ist auf ausgewählte Netzwerke beschränkt. Virtuelle Maschinen in einem virtuellen Netzwerk müssen das Konto über eine private IP-Adresse erreichen.'
      },
      question: {
        en: 'Which networking feature should you implement?',
        de: 'Welche Netzwerkfunktion sollten Sie implementieren?'
      },
      options: [
        { id: 'A', text: { en: 'Service endpoint', de: 'Dienstendpunkt' } },
        { id: 'B', text: { en: 'Private endpoint', de: 'Privater Endpunkt' } },
        { id: 'C', text: { en: 'Traffic Manager', de: 'Traffic Manager' } },
        { id: 'D', text: { en: 'Public IP prefix', de: 'Öffentliches IP-Präfix' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A private endpoint assigns a private IP address from your virtual network to the storage service. This allows clients to connect privately instead of using the public endpoint.',
        de: 'Ein privater Endpunkt weist dem Speicherdienst eine private IP-Adresse aus Ihrem virtuellen Netzwerk zu. Dadurch können Clients privat verbinden, anstatt den öffentlichen Endpunkt zu verwenden.'
      },
      hint: {
        en: 'The requirement specifically calls for private IP connectivity to the storage service.',
        de: 'Die Anforderung verlangt ausdrücklich private IP-Konnektivität zum Speicherdienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-private-endpoints'
    },
    {
      id: 'az104-062',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about Azure Storage networking are correct? Choose all that apply.',
        de: 'Welche Aussagen zur Azure Storage-Vernetzung sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'A private endpoint gives the storage service a private IP address in your virtual network', de: 'Ein privater Endpunkt gibt dem Speicherdienst eine private IP-Adresse in Ihrem virtuellen Netzwerk' } },
        { id: 'B', text: { en: 'A service endpoint keeps the storage account on its public endpoint but can restrict access to selected subnets', de: 'Ein Dienstendpunkt belässt das Speicherkonto auf seinem öffentlichen Endpunkt, kann den Zugriff aber auf ausgewählte Subnetze beschränken' } },
        { id: 'C', text: { en: 'A service endpoint lets arbitrary internet clients bypass the storage firewall', de: 'Ein Dienstendpunkt erlaubt beliebigen Internetclients, die Storage-Firewall zu umgehen' } },
        { id: 'D', text: { en: 'With private endpoints, you can disable public network access and use private connectivity', de: 'Mit privaten Endpunkten können Sie den öffentlichen Netzwerkzugriff deaktivieren und private Konnektivität verwenden' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Private endpoints provide private IP-based access, while service endpoints secure traffic from selected Azure virtual network subnets to the public service endpoint. Service endpoints do not open the account to arbitrary internet clients, so option C is incorrect.',
        de: 'Private Endpunkte bieten privaten IP-basierten Zugriff, während Dienstendpunkte Datenverkehr aus ausgewählten Azure-Subnetzen zum öffentlichen Dienstendpunkt absichern. Dienstendpunkte öffnen das Konto nicht für beliebige Internetclients, daher ist Option C falsch.'
      },
      hint: {
        en: 'Distinguish between private IP access and secured access to a public endpoint from specific subnets.',
        de: 'Unterscheiden Sie zwischen privatem IP-Zugriff und abgesichertem Zugriff auf einen öffentlichen Endpunkt aus bestimmten Subnetzen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security'
    },
    {
      id: 'az104-063',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., a branch office has a local Windows Server file server. Frequently used files should stay cached locally, but the authoritative copy should be stored in Azure.',
        de: 'Fabrikam, Inc. – Eine Niederlassung hat einen lokalen Windows Server-Dateiserver. Häufig verwendete Dateien sollen lokal zwischengespeichert bleiben, aber die maßgebliche Kopie soll in Azure gespeichert werden.'
      },
      question: {
        en: 'Which service should you deploy?',
        de: 'Welchen Dienst sollten Sie bereitstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Azure File Sync', de: 'Azure File Sync' } },
        { id: 'B', text: { en: 'Blob versioning', de: 'Blobversionierung' } },
        { id: 'C', text: { en: 'Object replication', de: 'Objektreplikation' } },
        { id: 'D', text: { en: 'Azure Queue Storage', de: 'Azure Queue Storage' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure File Sync synchronizes Azure file shares with Windows Servers and can keep frequently accessed data cached locally. This lets branch offices use familiar file servers while centralizing data in Azure Files.',
        de: 'Azure File Sync synchronisiert Azure-Dateifreigaben mit Windows Servern und kann häufig verwendete Daten lokal zwischenspeichern. Dadurch können Niederlassungen vertraute Dateiserver weiterverwenden und Daten dennoch zentral in Azure Files speichern.'
      },
      hint: {
        en: 'Think about the service that extends Azure file shares to Windows Servers with local caching.',
        de: 'Denken Sie an den Dienst, der Azure-Dateifreigaben mit lokaler Zwischenspeicherung auf Windows Server erweitert.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-introduction'
    },
    {
      id: 'az104-064',
      type: 'multiple',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about Azure File Sync are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure File Sync sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'A cloud endpoint is an Azure file share in a sync group', de: 'Ein Cloudendpunkt ist eine Azure-Dateifreigabe in einer Synchronisierungsgruppe' } },
        { id: 'B', text: { en: 'Server endpoints are folders on registered Windows Servers', de: 'Serverendpunkte sind Ordner auf registrierten Windows Servern' } },
        { id: 'C', text: { en: 'Azure File Sync synchronizes Blob containers directly to SMB clients', de: 'Azure File Sync synchronisiert Blobcontainer direkt mit SMB-Clients' } },
        { id: 'D', text: { en: 'Cloud tiering can reduce local disk usage on the server', de: 'Cloudtiering kann die lokale Datenträgernutzung auf dem Server reduzieren' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Azure File Sync uses an Azure file share as the cloud endpoint and folders on registered Windows Servers as server endpoints. Cloud tiering keeps less frequently used files primarily in Azure to save local disk space, and Blob containers are not the synced target for this service.',
        de: 'Azure File Sync verwendet eine Azure-Dateifreigabe als Cloudendpunkt und Ordner auf registrierten Windows Servern als Serverendpunkte. Cloudtiering hält seltener verwendete Dateien hauptsächlich in Azure, um lokalen Speicherplatz zu sparen, und Blobcontainer sind nicht das Synchronisationsziel dieses Dienstes.'
      },
      hint: {
        en: 'Focus on sync groups, server endpoints, and the purpose of cloud tiering.',
        de: 'Konzentrieren Sie sich auf Synchronisierungsgruppen, Serverendpunkte und den Zweck von Cloudtiering.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-introduction'
    },
    {
      id: 'az104-065',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'easy',
      scenario: {
        en: 'At Northwind Traders, an application runs on an Azure VM by using a managed identity and must access blobs without storing secrets.',
        de: 'Bei Northwind Traders läuft auf einer Azure-VM mit einer verwalteten Identität und muss ohne gespeicherte Geheimnisse auf Blobs zugreifen.'
      },
      question: {
        en: 'Which authorization approach should you recommend?',
        de: 'Welchen Autorisierungsansatz sollten Sie empfehlen?'
      },
      options: [
        { id: 'A', text: { en: 'Use the storage account access key in the application configuration', de: 'Den Speicherkonto-Zugriffsschlüssel in der Anwendungskonfiguration verwenden' } },
        { id: 'B', text: { en: 'Store a long-lived SAS token in the source code', de: 'Ein langlebiges SAS-Token im Quellcode speichern' } },
        { id: 'C', text: { en: 'Use Microsoft Entra authentication and assign an Azure RBAC data role', de: 'Microsoft Entra-Authentifizierung verwenden und eine Azure RBAC-Datenrolle zuweisen' } },
        { id: 'D', text: { en: 'Enable anonymous public access', de: 'Anonymen öffentlichen Zugriff aktivieren' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'Microsoft Entra authentication with Azure RBAC is the recommended approach when a managed identity is available. It avoids storing account keys or SAS tokens and supports least-privilege access to storage data.',
        de: 'Microsoft Entra-Authentifizierung mit Azure RBAC ist der empfohlene Ansatz, wenn eine verwaltete Identität verfügbar ist. Dadurch müssen weder Kontoschlüssel noch SAS-Token gespeichert werden, und der Zugriff auf Speicherdaten kann nach dem Prinzip der geringsten Rechte erfolgen.'
      },
      hint: {
        en: 'Choose the option that uses identity and role assignment instead of embedded secrets.',
        de: 'Wählen Sie die Option, die Identität und Rollenzuweisung statt eingebetteter Geheimnisse verwendet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/authorize-access-azure-active-directory'
    },
    {
      id: 'az104-066',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a web application authenticates users with Microsoft Entra ID and must issue temporary SAS tokens for Blob Storage without using the storage account key.',
        de: 'Bei Contoso, Ltd. authentifiziert Benutzer mit Microsoft Entra ID und muss temporäre SAS-Token für Blob Storage ausstellen, ohne den Speicherkontoschlüssel zu verwenden.'
      },
      question: {
        en: 'Which type of SAS should you use?',
        de: 'Welchen SAS-Typ sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Account SAS', de: 'Account SAS' } },
        { id: 'B', text: { en: 'Service SAS signed with the account key', de: 'Mit dem Kontoschlüssel signierte Service SAS' } },
        { id: 'C', text: { en: 'User delegation SAS', de: 'User Delegation SAS' } },
        { id: 'D', text: { en: 'Stored access policy only', de: 'Nur Stored Access Policy' } }
      ],
      correct: ['C'],
      explanation: {
        en: 'A user delegation SAS is signed with Microsoft Entra credentials rather than the storage account key. It is specifically designed for Blob Storage and is the recommended SAS type when you want to avoid shared key usage.',
        de: 'Eine User Delegation SAS wird mit Microsoft Entra-Anmeldeinformationen statt mit dem Speicherkontoschlüssel signiert. Sie ist speziell für Blob Storage vorgesehen und der empfohlene SAS-Typ, wenn Sie die Verwendung gemeinsamer Schlüssel vermeiden möchten.'
      },
      hint: {
        en: 'Pick the SAS type that is tied to Microsoft Entra authorization for blobs.',
        de: 'Wählen Sie den SAS-Typ, der an die Microsoft Entra-Autorisierung für Blobs gebunden ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview'
    },
    {
      id: 'az104-067',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'easy',
      scenario: {
        en: 'You work for Fabrikam, Inc. Your team needs the feature built specifically for hosting static web content from Blob Storage.',
        de: 'Sie arbeiten für Fabrikam, Inc. Ihr Team benötigt die Funktion, die speziell für das Hosting statischer Webinhalte aus Blob Storage vorgesehen ist.'
      },
      question: {
        en: 'Which feature should you enable?',
        de: 'Welche Funktion sollten Sie aktivieren?'
      },
      options: [
        { id: 'A', text: { en: 'Blob change feed', de: 'Blob Change Feed' } },
        { id: 'B', text: { en: 'Static website', de: 'Statische Website' } },
        { id: 'C', text: { en: 'Azure File Sync', de: 'Azure File Sync' } },
        { id: 'D', text: { en: 'User delegation SAS', de: 'User Delegation SAS' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Static website hosting lets you serve HTML, CSS, JavaScript, and other static content directly from a storage account. The content is stored in the special $web container and is not intended for server-side application code.',
        de: 'Mit dem Hosting statischer Websites können Sie HTML, CSS, JavaScript und andere statische Inhalte direkt aus einem Speicherkonto bereitstellen. Der Inhalt wird im speziellen Container $web gespeichert und ist nicht für serverseitigen Anwendungscode gedacht.'
      },
      hint: {
        en: 'Choose the feature built specifically for hosting static web content from Blob Storage.',
        de: 'Wählen Sie die Funktion, die speziell für das Hosting statischer Webinhalte aus Blob Storage vorgesehen ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website'
    },
    {
      id: 'az104-068',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., auditors ask for an append-only log of blob create, update, and delete events in a storage account.',
        de: 'Bei Contoso, Ltd.: prüfer verlangen ein unveränderliches, fortlaufendes Protokoll von Blob-Erstellungs-, Änderungs- und Löschereignissen in einem Speicherkonto.'
      },
      question: {
        en: 'Which feature provides this?',
        de: 'Welche Funktion stellt dies bereit?'
      },
      options: [
        { id: 'A', text: { en: 'Object replication', de: 'Objektreplikation' } },
        { id: 'B', text: { en: 'Blob change feed', de: 'Blob Change Feed' } },
        { id: 'C', text: { en: 'Point-in-time restore', de: 'Zeitpunktbezogene Wiederherstellung' } },
        { id: 'D', text: { en: 'Azure Files snapshots', de: 'Azure Files-Snapshots' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Blob change feed records transaction information for create, modify, and delete events in an append-only log. It is useful for audit and processing scenarios, but it is not the same as a replication or restore feature.',
        de: 'Blob Change Feed zeichnet Transaktionsinformationen für Erstellungs-, Änderungs- und Löschereignisse in einem fortlaufenden, unveränderlichen Protokoll auf. Dies ist nützlich für Prüf- und Verarbeitungsszenarien, aber es ist keine Replikations- oder Wiederherstellungsfunktion.'
      },
      hint: {
        en: 'Think about the feature that keeps a chronological log of blob changes.',
        de: 'Denken Sie an die Funktion, die ein chronologisches Protokoll von Blobänderungen führt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-change-feed'
    },
    {
      id: 'az104-069',
      type: 'single',
      domain: { en: 'Implement and Manage Storage', de: 'Speicher implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Your team needs the feature that replicates blob data between storage accounts by policy.',
        de: 'Sie arbeiten für Northwind Traders. Ihr Team benötigt die Funktion, die Blobdaten per Richtlinie zwischen Speicherkonten repliziert.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'GZRS', de: 'GZRS' } },
        { id: 'B', text: { en: 'Object replication', de: 'Objektreplikation' } },
        { id: 'C', text: { en: 'Azure Backup', de: 'Azure Backup' } },
        { id: 'D', text: { en: 'Import/Export', de: 'Import/Export' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Object replication asynchronously copies block blobs from a source account to a destination account based on a replication policy. It is a data-level feature for selected containers and blobs, not the built-in account redundancy used by GZRS.',
        de: 'Die Objektreplikation kopiert Blockblobs asynchron anhand einer Replikationsrichtlinie von einem Quellkonto in ein Zielkonto. Es handelt sich um eine datenbezogene Funktion für ausgewählte Container und Blobs und nicht um die integrierte Kontoredundanz wie bei GZRS.'
      },
      hint: {
        en: 'Choose the feature that replicates blob data between storage accounts by policy.',
        de: 'Wählen Sie die Funktion, die Blobdaten per Richtlinie zwischen Speicherkonten repliziert.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/storage/blobs/object-replication-overview'
    },
    {
      id: 'az104-070',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'Which Azure feature lets you place virtual machines in separate physical locations within the same region to protect against datacenter-level failures?',
        de: 'Welche Azure-Funktion ermöglicht es Ihnen, virtuelle Computer an getrennten physischen Standorten innerhalb derselben Region zu platzieren, um sich vor Ausfällen auf Rechenzentrumsebene zu schützen?'
      },
      options: [
        { id: 'A', text: { en: 'Availability zones', de: 'Verfügbarkeitszonen' } },
        { id: 'B', text: { en: 'Availability sets', de: 'Verfügbarkeitsgruppen' } },
        { id: 'C', text: { en: 'Proximity placement groups', de: 'Proximity Placement Groups' } },
        { id: 'D', text: { en: 'Update domains', de: 'Updatedomänen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Availability zones are separate physical locations within an Azure region, each with independent power, cooling, and networking. Distributing VMs across zones improves resiliency against the failure of a single datacenter.',
        de: 'Verfügbarkeitszonen sind getrennte physische Standorte innerhalb einer Azure-Region, jeweils mit unabhängiger Stromversorgung, Kühlung und Netzwerkinfrastruktur. Das Verteilen von VMs über mehrere Zonen erhöht die Resilienz gegenüber dem Ausfall eines einzelnen Rechenzentrums.'
      },
      hint: {
        en: 'Think about protection from a full datacenter outage inside one Azure region.',
        de: 'Denken Sie an Schutz vor einem vollständigen Ausfall eines Rechenzentrums innerhalb einer Azure-Region.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/reliability/availability-zones-overview'
    },
    {
      id: 'az104-071',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You need to increase the CPU and memory available to an existing Azure virtual machine. Which action should you take?',
        de: 'Sie müssen die für einen vorhandenen Azure-VM verfügbaren CPU- und Arbeitsspeicherressourcen erhöhen. Welche Aktion sollten Sie ausführen?'
      },
      options: [
        { id: 'A', text: { en: 'Resize the VM to a larger size', de: 'Die VM auf eine größere Größe ändern' } },
        { id: 'B', text: { en: 'Change the VM to a different availability zone', de: 'Die VM in eine andere Verfügbarkeitszone verschieben' } },
        { id: 'C', text: { en: 'Create a snapshot of the OS disk', de: 'Einen Snapshot des Betriebssystemdatenträgers erstellen' } },
        { id: 'D', text: { en: 'Add a new data disk', de: 'Einen neuen Datenträger hinzufügen' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Resizing a VM changes the selected VM size, which determines the available vCPUs, memory, and other compute characteristics. Azure may restart the VM during the resize operation, so you should plan for a short interruption.',
        de: 'Beim Ändern der VM-Größe wird die ausgewählte VM-SKU geändert, die die verfügbaren vCPUs, den Arbeitsspeicher und andere Compute-Eigenschaften bestimmt. Azure kann die VM während der Größenänderung neu starten, daher sollten Sie eine kurze Unterbrechung einplanen.'
      },
      hint: {
        en: 'To add compute capacity to an existing VM, change its size rather than its disks or zone.',
        de: 'Um einer vorhandenen VM mehr Compute-Kapazität zu geben, ändern Sie ihre Größe und nicht ihre Datenträger oder Zone.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/resize-vm'
    },
    {
      id: 'az104-072',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which Azure managed disk types can be attached to a virtual machine? Choose all that apply.',
        de: 'Welche Azure Managed-Disk-Typen können an eine virtuelle Maschine angefügt werden? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Premium SSD', de: 'Premium SSD' } },
        { id: 'B', text: { en: 'Standard SSD', de: 'Standard SSD' } },
        { id: 'C', text: { en: 'Standard HDD', de: 'Standard HDD' } },
        { id: 'D', text: { en: 'Azure Files share', de: 'Azure Files-Freigabe' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Premium SSD, Standard SSD, and Standard HDD are managed disk offerings for Azure virtual machines. Azure Files provides file shares over SMB or NFS and is not attached as a managed VM disk in the same way.',
        de: 'Premium SSD, Standard SSD und Standard HDD sind Managed-Disk-Angebote für Azure-VMs. Azure Files stellt Dateifreigaben über SMB oder NFS bereit und wird nicht auf dieselbe Weise als verwalteter VM-Datenträger angefügt.'
      },
      hint: {
        en: 'Choose the storage types designed as VM disks, not the managed file share service.',
        de: 'Wählen Sie die Speichertypen aus, die als VM-Datenträger vorgesehen sind, nicht den verwalteten Dateifreigabedienst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/disks-types'
    },
    {
      id: 'az104-073',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a virtual machine is running, and you need to execute a one-time troubleshooting script from the Azure portal or CLI.',
        de: 'Bei Contoso, Ltd. läuft, und Sie müssen ein einmaliges Skript zur Fehlerbehebung aus dem Azure-Portal oder der CLI ausführen.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Run Command', de: 'Run Command' } },
        { id: 'B', text: { en: 'Azure Backup', de: 'Azure Backup' } },
        { id: 'C', text: { en: 'Azure Policy', de: 'Azure Policy' } },
        { id: 'D', text: { en: 'Availability zone', de: 'Verfügbarkeitszone' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Run Command uses the VM agent to execute a script inside a Windows or Linux VM through Azure management tools. It is designed for one-time troubleshooting or remediation rather than ongoing configuration management.',
        de: 'Run Command verwendet den VM-Agent, um ein Skript innerhalb einer Windows- oder Linux-VM über Azure-Verwaltungstools auszuführen. Es ist für einmalige Fehlerbehebung oder Korrekturen gedacht und nicht für fortlaufendes Konfigurationsmanagement.'
      },
      hint: {
        en: 'Use the feature meant for ad hoc script execution inside an existing VM.',
        de: 'Verwenden Sie die Funktion, die für die ad hoc Ausführung von Skripten innerhalb einer vorhandenen VM vorgesehen ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/run-command-overview'
    },
    {
      id: 'az104-074',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'Fabrikam, Inc. wants to version custom VM images and replicate them to multiple Azure regions for standardized deployments.',
        de: 'Fabrikam, Inc. möchte benutzerdefinierte VM-Images versionieren und in mehrere Azure-Regionen replizieren, um standardisierte Bereitstellungen zu ermöglichen.'
      },
      question: {
        en: 'Which Azure service should you use?',
        de: 'Welchen Azure-Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Snapshot', de: 'Snapshot' } },
        { id: 'B', text: { en: 'Azure Compute Gallery', de: 'Azure Compute Gallery' } },
        { id: 'C', text: { en: 'Boot diagnostics', de: 'Startdiagnose' } },
        { id: 'D', text: { en: 'Deployment slot', de: 'Bereitstellungsslot' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure Compute Gallery is designed to organize, version, and replicate custom images across regions and subscriptions. It makes it easier to distribute approved images consistently at scale.',
        de: 'Azure Compute Gallery ist dafür vorgesehen, benutzerdefinierte Images zu organisieren, zu versionieren und über Regionen und Abonnements hinweg zu replizieren. Dadurch lassen sich freigegebene Images konsistent und in großem Maßstab bereitstellen.'
      },
      hint: {
        en: 'Choose the image distribution and versioning service, not a point-in-time disk copy.',
        de: 'Wählen Sie den Dienst für Image-Verteilung und Versionierung, nicht eine punktuelle Datenträgerkopie.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/azure-compute-gallery'
    },
    {
      id: 'az104-075',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Bicep and ARM template deployments are true? Choose all that apply.',
        de: 'Welche Aussagen zu Bicep- und ARM-Template-Bereitstellungen sind richtig? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'They describe the desired end state of Azure resources', de: 'Sie beschreiben den gewünschten Endzustand von Azure-Ressourcen' } },
        { id: 'B', text: { en: 'They support repeatable and consistent deployments', de: 'Sie unterstützen wiederholbare und konsistente Bereitstellungen' } },
        { id: 'C', text: { en: 'They require imperative step-by-step administration only', de: 'Sie erfordern ausschließlich imperative Schritt-für-Schritt-Administration' } },
        { id: 'D', text: { en: 'Bicep compiles to ARM JSON before deployment', de: 'Bicep wird vor der Bereitstellung in ARM-JSON kompiliert' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Bicep and ARM templates are declarative, so you define the target state and Azure Resource Manager determines how to create or update resources. Bicep also compiles to ARM JSON and helps deliver consistent deployments across environments.',
        de: 'Bicep und ARM-Templates sind deklarativ, daher definieren Sie den Zielzustand und Azure Resource Manager bestimmt, wie Ressourcen erstellt oder aktualisiert werden. Bicep wird außerdem in ARM-JSON kompiliert und unterstützt konsistente Bereitstellungen über verschiedene Umgebungen hinweg.'
      },
      hint: {
        en: 'Think desired state, repeatability, and the relationship between Bicep and ARM JSON.',
        de: 'Denken Sie an Zielzustand, Wiederholbarkeit und die Beziehung zwischen Bicep und ARM-JSON.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview'
    },
    {
      id: 'az104-076',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Fabrikam, Inc., a trading application and its database run on separate Azure VMs in the same region. You must minimize network latency between them as much as possible.',
        de: 'Bei Fabrikam, Inc.: eine Handelsanwendung und ihre Datenbank laufen auf getrennten Azure-VMs in derselben Region. Sie müssen die Netzwerklatenz zwischen ihnen so weit wie möglich minimieren.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Proximity placement group', de: 'Proximity Placement Group' } },
        { id: 'B', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'VM extension', de: 'VM-Erweiterung' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A proximity placement group tells Azure to place compute resources physically close together within a region to achieve the lowest possible latency. It is useful for tightly coupled workloads where colocation matters more than broader fault isolation.',
        de: 'Eine Proximity Placement Group weist Azure an, Compute-Ressourcen innerhalb einer Region physisch nahe beieinander zu platzieren, um die geringstmögliche Latenz zu erreichen. Sie ist für eng gekoppelte Workloads nützlich, bei denen räumliche Nähe wichtiger ist als eine breitere Fehlerisolation.'
      },
      hint: {
        en: 'Choose the feature focused on physical colocation, not high availability administration.',
        de: 'Wählen Sie die Funktion, die auf physische Nähe ausgerichtet ist, nicht auf Hochverfügbarkeitsverwaltung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/linux/proximity-placement-groups'
    },
    {
      id: 'az104-077',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'What is a key characteristic of Azure Spot Virtual Machines?',
        de: 'Was ist ein wichtiges Merkmal von Azure Spot Virtual Machines?'
      },
      options: [
        { id: 'A', text: { en: 'They offer discounted pricing but can be evicted when Azure needs capacity', de: 'Sie bieten reduzierte Preise, können aber entfernt werden, wenn Azure Kapazität benötigt' } },
        { id: 'B', text: { en: 'They are intended for guaranteed production uptime', de: 'Sie sind für garantierte Produktionsverfügbarkeit vorgesehen' } },
        { id: 'C', text: { en: 'They cannot use Azure Marketplace images', de: 'Sie können keine Azure-Marketplace-Images verwenden' } },
        { id: 'D', text: { en: 'They always remain running until manually stopped', de: 'Sie bleiben immer aktiv, bis sie manuell gestoppt werden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Spot VMs use spare Azure capacity at a lower price than standard pay-as-you-go VMs. They can be evicted when Azure needs the capacity back or when your pricing policy is exceeded, so they are best for interruptible workloads.',
        de: 'Azure Spot VMs nutzen freie Azure-Kapazität zu einem niedrigeren Preis als normale Pay-as-you-go-VMs. Sie können entfernt werden, wenn Azure die Kapazität zurückfordert oder Ihre Preisrichtlinie überschritten wird, daher eignen sie sich am besten für unterbrechbare Workloads.'
      },
      hint: {
        en: 'Think low cost with possible interruption.',
        de: 'Denken Sie an niedrige Kosten mit möglicher Unterbrechung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/spot-vms'
    },
    {
      id: 'az104-078',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Your team needs the VM extension that is specifically meant to download and execute setup scripts.',
        de: 'Sie arbeiten für Northwind Traders. Ihr Team benötigt die VM-Erweiterung, die speziell dafür gedacht ist, Einrichtungsskripte herunterzuladen und auszuführen.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Run Command', de: 'Run Command' } },
        { id: 'B', text: { en: 'Custom Script Extension', de: 'Custom Script Extension' } },
        { id: 'C', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'D', text: { en: 'Azure Compute Gallery', de: 'Azure Compute Gallery' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'The Custom Script Extension downloads and runs scripts on a VM for post-deployment configuration tasks such as software installation. It is commonly used during or after deployment, while Run Command is more suited to one-time troubleshooting actions.',
        de: 'Die Custom Script Extension lädt Skripte auf eine VM herunter und führt sie für Aufgaben der Konfiguration nach der Bereitstellung aus, etwa für Softwareinstallationen. Sie wird häufig während oder nach der Bereitstellung verwendet, während Run Command eher für einmalige Fehlerbehebungsaktionen geeignet ist.'
      },
      hint: {
        en: 'Choose the VM extension that is specifically meant to download and execute setup scripts.',
        de: 'Wählen Sie die VM-Erweiterung, die speziell dafür gedacht ist, Einrichtungsskripte herunterzuladen und auszuführen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows'
    },
    {
      id: 'az104-079',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'What is the main purpose of an Azure App Service deployment slot?',
        de: 'Was ist der Hauptzweck eines Azure App Service-Bereitstellungsslots?'
      },
      options: [
        { id: 'A', text: { en: 'Store backup archives for the app', de: 'Backuparchive für die App speichern' } },
        { id: 'B', text: { en: 'Deploy and test a new app version before swapping it into production', de: 'Eine neue App-Version bereitstellen und testen, bevor sie in die Produktion getauscht wird' } },
        { id: 'C', text: { en: 'Resize the VM operating system disk', de: 'Den Betriebssystemdatenträger der VM vergrößern' } },
        { id: 'D', text: { en: 'Create an AKS node pool', de: 'Einen AKS-Nodepool erstellen' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Deployment slots provide separate live environments with their own host names for staging and validation. After testing, you can swap a slot into production to reduce deployment risk and downtime.',
        de: 'Bereitstellungsslots stellen separate Liveumgebungen mit eigenen Hostnamen für Staging und Validierung bereit. Nach dem Testen können Sie einen Slot in die Produktion tauschen, um Bereitstellungsrisiken und Ausfallzeiten zu verringern.'
      },
      hint: {
        en: 'Think staging first, production later.',
        de: 'Denken Sie zuerst an Staging und danach an Produktion.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az104-080',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about App Service autoscale are true? Choose all that apply.',
        de: 'Welche Aussagen zur App Service-Autoskalierung sind richtig? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'It can scale the number of instances in an App Service plan automatically', de: 'Sie kann die Anzahl der Instanzen in einem App Service-Plan automatisch skalieren' } },
        { id: 'B', text: { en: 'It can use schedules or metrics to trigger scaling', de: 'Sie kann Zeitpläne oder Metriken verwenden, um Skalierung auszulösen' } },
        { id: 'C', text: { en: 'It is available only in the Free tier', de: 'Sie ist nur im Free-Tarif verfügbar' } },
        { id: 'D', text: { en: 'It can scale in after demand drops', de: 'Sie kann nach sinkender Last wieder herunterskalieren' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Autoscale can increase or decrease the number of App Service plan instances based on schedules or metric rules. It is intended for supported paid tiers rather than the Free tier and helps align capacity with demand automatically.',
        de: 'Die Autoskalierung kann die Anzahl der Instanzen eines App Service-Plans anhand von Zeitplänen oder Metrikregeln erhöhen oder verringern. Sie ist für unterstützte kostenpflichtige Tarife gedacht und nicht für den Free-Tarif und hilft dabei, die Kapazität automatisch an die Last anzupassen.'
      },
      hint: {
        en: 'Focus on automatic scale-out and scale-in based on rules.',
        de: 'Konzentrieren Sie sich auf automatisches Hoch- und Herunterskalieren auf Basis von Regeln.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/autoscale/autoscale-overview'
    },
    {
      id: 'az104-081',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Contoso, Ltd. The backup target is external storage, not the app worker itself.',
        de: 'Sie arbeiten für Contoso, Ltd. Das Sicherungsziel ist externer Speicher und nicht der App-Worker selbst.'
      },
      question: {
        en: 'Where are App Service backup files stored?',
        de: 'Wo werden App Service-Sicherungsdateien gespeichert?'
      },
      options: [
        { id: 'A', text: { en: 'In an Azure Storage account container', de: 'In einem Container eines Azure Storage-Kontos' } },
        { id: 'B', text: { en: 'Only on the local temporary disk of the app instance', de: 'Nur auf dem lokalen temporären Datenträger der App-Instanz' } },
        { id: 'C', text: { en: 'Inside an availability zone replica automatically', de: 'Automatisch innerhalb einer Verfügbarkeitszonenreplik' } },
        { id: 'D', text: { en: 'In Azure Compute Gallery', de: 'In Azure Compute Gallery' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'App Service backups are stored in an Azure Storage account container, typically accessed by using a shared access signature. This keeps the backup data separate from the running app and supports scheduled or on-demand backups on supported tiers.',
        de: 'App Service-Sicherungen werden in einem Container eines Azure Storage-Kontos gespeichert, auf den normalerweise über eine Shared Access Signature zugegriffen wird. Dadurch bleiben die Sicherungsdaten von der laufenden App getrennt und geplante oder bedarfsorientierte Sicherungen in unterstützten Tarifen werden ermöglicht.'
      },
      hint: {
        en: 'The backup target is external storage, not the app worker itself.',
        de: 'Das Sicherungsziel ist externer Speicher und nicht der App-Worker selbst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/manage-backup'
    },
    {
      id: 'az104-082',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Northwind Traders, a new application version has been validated in a staging slot, and you are ready to make it live with minimal interruption.',
        de: 'Bei Northwind Traders: eine neue Anwendungsversion wurde in einem Staging-Slot validiert, und Sie sind bereit, sie mit minimaler Unterbrechung live zu schalten.'
      },
      question: {
        en: 'What does swapping the staging slot with production primarily do?',
        de: 'Was bewirkt das Tauschen des Staging-Slots mit der Produktion hauptsächlich?'
      },
      options: [
        { id: 'A', text: { en: 'It permanently deletes the previous production app', de: 'Es löscht die bisherige Produktions-App dauerhaft' } },
        { id: 'B', text: { en: 'It exchanges the app content and configuration between the slots so the staged version becomes live', de: 'Es tauscht App-Inhalt und Konfiguration zwischen den Slots aus, sodass die gestagte Version live wird' } },
        { id: 'C', text: { en: 'It converts the app into a container group', de: 'Es konvertiert die App in eine Containergruppe' } },
        { id: 'D', text: { en: 'It disables backups for both slots', de: 'Es deaktiviert Sicherungen für beide Slots' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'A swap exchanges the app content and relevant configuration between the source and target slots so that the staged version becomes production. This supports low-downtime releases because the target slot can be warmed up before traffic is switched.',
        de: 'Ein Tausch wechselt den App-Inhalt und relevante Konfigurationen zwischen Quell- und Zielslot, sodass die gestagte Version zur Produktion wird. Dies unterstützt Bereitstellungen mit geringer Ausfallzeit, weil der Zielslot vor dem Umschalten des Datenverkehrs aufgewärmt werden kann.'
      },
      hint: {
        en: 'The tested version becomes production without a full redeployment.',
        de: 'Die getestete Version wird Produktion, ohne dass eine vollständige Neu-Bereitstellung erforderlich ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/deploy-staging-slots'
    },
    {
      id: 'az104-083',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'You run a containerized batch job in Azure Container Instances and want Azure to restart the container only if the process exits with failure. Which restart policy should you configure?',
        de: 'Sie führen einen containerisierten Batchauftrag in Azure Container Instances aus und möchten, dass Azure den Container nur dann neu startet, wenn der Prozess mit einem Fehler beendet wird. Welche Neustartrichtlinie sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'Always', de: 'Always' } },
        { id: 'B', text: { en: 'OnFailure', de: 'OnFailure' } },
        { id: 'C', text: { en: 'Never', de: 'Never' } },
        { id: 'D', text: { en: 'Manual', de: 'Manual' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'The OnFailure restart policy restarts the container only when the container process exits with a nonzero status. This is useful for batch jobs that should retry on failure but should not restart indefinitely after success.',
        de: 'Die Neustartrichtlinie OnFailure startet den Container nur dann neu, wenn der Containerprozess mit einem von null verschiedenen Status beendet wird. Dies ist für Batchaufträge nützlich, die bei Fehlern erneut versucht werden sollen, sich aber nach einem erfolgreichen Abschluss nicht unbegrenzt neu starten sollen.'
      },
      hint: {
        en: 'Choose the policy that retries failed jobs but does not keep successful jobs running again.',
        de: 'Wählen Sie die Richtlinie, die fehlgeschlagene Aufträge erneut startet, erfolgreiche Aufträge jedoch nicht erneut ausführt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/container-instances/container-instances-restart-policy'
    },
    {
      id: 'az104-084',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about containers in the same Azure Container Instances container group are true? Choose all that apply.',
        de: 'Welche Aussagen zu Containern in derselben Azure Container Instances-Containergruppe sind richtig? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'They share a lifecycle and are scheduled on the same host machine', de: 'Sie teilen sich einen Lebenszyklus und werden auf demselben Hostcomputer geplant' } },
        { id: 'B', text: { en: 'They can communicate over localhost and share volumes', de: 'Sie können über localhost kommunizieren und Volumes gemeinsam nutzen' } },
        { id: 'C', text: { en: 'Each container always gets its own public IP address', de: 'Jeder Container erhält immer seine eigene öffentliche IP-Adresse' } },
        { id: 'D', text: { en: 'They are managed as a single resource', de: 'Sie werden als einzelne Ressource verwaltet' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Containers in the same container group are scheduled together on the same host and share a lifecycle. They can share networking and storage volumes, and the group is managed as one resource rather than each container always receiving its own separate public IP address.',
        de: 'Container in derselben Containergruppe werden gemeinsam auf demselben Host geplant und teilen sich einen Lebenszyklus. Sie können Netzwerk und Speichervolumes gemeinsam nutzen, und die Gruppe wird als eine Ressource verwaltet, anstatt dass jeder Container immer eine eigene öffentliche IP-Adresse erhält.'
      },
      hint: {
        en: 'A container group behaves more like a tightly coupled unit than unrelated standalone containers.',
        de: 'Eine Containergruppe verhält sich eher wie eine eng gekoppelte Einheit als wie voneinander unabhängige Einzelcontainer.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/container-instances/container-instances-container-groups'
    },
    {
      id: 'az104-085',
      type: 'single',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'In Azure Kubernetes Service, what is a node pool?',
        de: 'Was ist in Azure Kubernetes Service ein Nodepool?'
      },
      options: [
        { id: 'A', text: { en: 'A group of cluster nodes that share a configuration such as VM size', de: 'Eine Gruppe von Clusternodes, die eine Konfiguration wie die VM-Größe gemeinsam haben' } },
        { id: 'B', text: { en: 'A collection of container images stored in Azure Container Registry', de: 'Eine Sammlung von Containerimages in Azure Container Registry' } },
        { id: 'C', text: { en: 'A list of Kubernetes namespaces', de: 'Eine Liste von Kubernetes-Namespaces' } },
        { id: 'D', text: { en: 'A set of load balancer rules', de: 'Ein Satz von Load Balancer-Regeln' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A node pool is a set of AKS worker nodes that share settings such as VM size, mode, and scaling behavior. Multiple node pools let you separate workloads or use different compute characteristics within the same cluster.',
        de: 'Ein Nodepool ist eine Gruppe von AKS-Workernodes, die Einstellungen wie VM-Größe, Modus und Skalierungsverhalten gemeinsam haben. Mehrere Nodepools ermöglichen es Ihnen, Workloads zu trennen oder unterschiedliche Compute-Eigenschaften innerhalb desselben Clusters zu verwenden.'
      },
      hint: {
        en: 'Think about how AKS groups virtual machines that run pods.',
        de: 'Denken Sie daran, wie AKS virtuelle Maschinen gruppiert, auf denen Pods ausgeführt werden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/create-node-pools'
    },
    {
      id: 'az104-086',
      type: 'multiple',
      domain: { en: 'Deploy and Manage Azure Compute Resources', de: 'Azure-Compute-Ressourcen bereitstellen und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. Separate system services from application workloads by using different node pool roles.',
        de: 'Sie arbeiten für Fabrikam, Inc. Trennen Sie Systemdienste von Anwendungsworkloads, indem Sie unterschiedliche Nodepool-Rollen verwenden.'
      },
      question: {
        en: 'Which statements about AKS node pools are correct? Choose all that apply.',
        de: 'Welche Aussagen zu AKS-Nodepools sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'An AKS cluster must have at least one system node pool', de: 'Ein AKS-Cluster muss mindestens einen System-Nodepool haben' } },
        { id: 'B', text: { en: 'User node pools are commonly used for application workloads', de: 'Benutzer-Nodepools werden üblicherweise für Anwendungsworkloads verwendet' } },
        { id: 'C', text: { en: 'All node pools in a cluster must use the same VM size', de: 'Alle Nodepools in einem Cluster müssen dieselbe VM-Größe verwenden' } },
        { id: 'D', text: { en: 'You can add multiple node pools to isolate workloads', de: 'Sie können mehrere Nodepools hinzufügen, um Workloads zu isolieren' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Every AKS cluster needs at least one system node pool to host critical cluster services. You can add multiple user node pools for application workloads and choose different VM sizes or scaling settings, so all pools do not have to be identical.',
        de: 'Jeder AKS-Cluster benötigt mindestens einen System-Nodepool, um kritische Clusterdienste zu hosten. Sie können mehrere Benutzer-Nodepools für Anwendungsworkloads hinzufügen und unterschiedliche VM-Größen oder Skalierungseinstellungen wählen, daher müssen nicht alle Pools identisch sein.'
      },
      hint: {
        en: 'Separate system services from application workloads by using different node pool roles.',
        de: 'Trennen Sie Systemdienste von Anwendungsworkloads, indem Sie unterschiedliche Nodepool-Rollen verwenden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/aks/create-node-pools'
    },
    {
      id: 'az104-087',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'How does Azure process Network Security Group rules when evaluating traffic?',
        de: 'Wie verarbeitet Azure Regeln einer Network Security Group bei der Auswertung von Datenverkehr?'
      },
      options: [
        { id: 'A', text: { en: 'It evaluates the highest priority number first and continues through all matches', de: 'Es wertet zuerst die höchste Prioritätszahl aus und fährt mit allen Treffern fort' } },
        { id: 'B', text: { en: 'It evaluates the lowest priority number first and stops at the first match', de: 'Es wertet zuerst die niedrigste Prioritätszahl aus und stoppt beim ersten Treffer' } },
        { id: 'C', text: { en: 'It always evaluates deny rules before allow rules', de: 'Es wertet immer Verweigerungsregeln vor Zulassungsregeln aus' } },
        { id: 'D', text: { en: 'It applies default rules before custom rules', de: 'Es wendet Standardregeln vor benutzerdefinierten Regeln an' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'NSG rules are processed in priority order, where a lower number means a higher priority. As soon as Azure finds a matching rule, processing stops, and later rules are not evaluated.',
        de: 'NSG-Regeln werden in Prioritätsreihenfolge verarbeitet, wobei eine niedrigere Zahl eine höhere Priorität bedeutet. Sobald Azure eine passende Regel findet, wird die Verarbeitung beendet, und spätere Regeln werden nicht mehr ausgewertet.'
      },
      hint: {
        en: 'Remember that priority numbers work in ascending order and evaluation is short-circuited.',
        de: 'Denken Sie daran, dass Prioritätszahlen in aufsteigender Reihenfolge wirken und die Auswertung beim ersten Treffer endet.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview'
    },
    {
      id: 'az104-088',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about default NSG rules are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Standardregeln von NSGs sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Default NSG rules use priorities in the 65000 range and higher', de: 'Standard-NSG-Regeln verwenden Prioritäten im Bereich ab 65000' } },
        { id: 'B', text: { en: 'Default NSG rules can be deleted if you need a cleaner ruleset', de: 'Standard-NSG-Regeln können gelöscht werden, wenn Sie ein saubereres Regelwerk benötigen' } },
        { id: 'C', text: { en: 'A custom rule with a higher priority than DenyAllInBound can override the default inbound deny', de: 'Eine benutzerdefinierte Regel mit höherer Priorität als DenyAllInBound kann die standardmäßige eingehende Verweigerung übersteuern' } },
        { id: 'D', text: { en: 'AllowVNetInBound is one of the built-in default NSG rules', de: 'AllowVNetInBound ist eine der integrierten Standardregeln eines NSG' } }
      ],
      correct: ['A', 'C', 'D'],
      explanation: {
        en: 'Azure adds built-in default NSG rules such as AllowVNetInBound and DenyAllInBound with low-precedence priority numbers like 65000 and above. You cannot delete these default rules, but you can override their effect by creating custom rules with a higher priority.',
        de: 'Azure fügt integrierte Standard-NSG-Regeln wie AllowVNetInBound und DenyAllInBound mit Prioritätswerten geringer Vorrangigkeit ab 65000 hinzu. Diese Standardregeln können nicht gelöscht werden, aber ihre Wirkung kann durch benutzerdefinierte Regeln mit höherer Priorität übersteuert werden.'
      },
      hint: {
        en: 'Think about the built-in inbound and outbound baseline rules and how custom priorities interact with them.',
        de: 'Denken Sie an die integrierten Basisregeln für ein- und ausgehenden Datenverkehr und daran, wie benutzerdefinierte Prioritäten damit zusammenspielen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview'
    },
    {
      id: 'az104-089',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. You need to change the path of traffic leaving the subnet, not name resolution or service access.',
        de: 'Sie arbeiten für Northwind Traders. Sie müssen den Pfad des Datenverkehrs ändern, der das Subnetz verlässt, nicht die Namensauflösung oder den Dienstzugriff.'
      },
      question: {
        en: 'What should you configure?',
        de: 'Was sollten Sie konfigurieren?'
      },
      options: [
        { id: 'A', text: { en: 'A route table with a 0.0.0.0/0 user-defined route that uses Virtual appliance as the next hop', de: 'Eine Routentabelle mit einer benutzerdefinierten Route 0.0.0.0/0, die Virtuelle Appliance als nächsten Hop verwendet' } },
        { id: 'B', text: { en: 'A private DNS zone linked to the spoke VNet', de: 'Eine private DNS-Zone, die mit dem Spoke-VNet verknüpft ist' } },
        { id: 'C', text: { en: 'A service endpoint on the subnet', de: 'Einen Service Endpoint im Subnetz' } },
        { id: 'D', text: { en: 'A health probe on the virtual appliance', de: 'Einen Health Probe auf der virtuellen Appliance' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A user-defined route in a route table lets you override the default system route for internet traffic. By using the Virtual appliance next hop and associating the route table to the subnet, Azure forwards matching traffic to the NVA.',
        de: 'Mit einer benutzerdefinierten Route in einer Routentabelle können Sie die standardmäßige Systemroute für Internetverkehr überschreiben. Durch die Verwendung von Virtuelle Appliance als nächstem Hop und die Zuordnung der Routentabelle zum Subnetz leitet Azure passenden Datenverkehr an die NVA weiter.'
      },
      hint: {
        en: 'You need to change the path of traffic leaving the subnet, not name resolution or service access.',
        de: 'Sie müssen den Pfad des Datenverkehrs ändern, der das Subnetz verlässt, nicht die Namensauflösung oder den Dienstzugriff.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/virtual-networks-udr-overview'
    },
    {
      id: 'az104-090',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Contoso, Ltd. Your team is focused on the subnet capability that allows a platform service to manage resources inside it.',
        de: 'Sie arbeiten für Contoso, Ltd. Ihr Team konzentriert sich auf die Subnetzfunktion, die es einem Plattformdienst erlaubt, Ressourcen darin zu verwalten.'
      },
      question: {
        en: 'What is required on the integration subnet?',
        de: 'Was ist für das Integrationssubnetz erforderlich?'
      },
      options: [
        { id: 'A', text: { en: 'The subnet must be delegated to Microsoft.Web/serverFarms', de: 'Das Subnetz muss an Microsoft.Web/serverFarms delegiert sein' } },
        { id: 'B', text: { en: 'The subnet must contain an Azure Bastion host', de: 'Das Subnetz muss einen Azure Bastion-Host enthalten' } },
        { id: 'C', text: { en: 'The subnet must have a service endpoint for Microsoft.Storage', de: 'Das Subnetz muss einen Service Endpoint für Microsoft.Storage haben' } },
        { id: 'D', text: { en: 'The subnet must use a dynamic Basic public IP', de: 'Das Subnetz muss eine dynamische Basic Public IP verwenden' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'App Service regional VNet integration uses a dedicated delegated subnet. Delegating the subnet to Microsoft.Web/serverFarms allows the service to place and manage the required networking resources correctly.',
        de: 'Die regionale VNet-Integration von App Service verwendet ein eigenes delegiertes Subnetz. Die Delegierung des Subnetzes an Microsoft.Web/serverFarms ermöglicht es dem Dienst, die erforderlichen Netzwerkressourcen korrekt zu platzieren und zu verwalten.'
      },
      hint: {
        en: 'Focus on the subnet capability that allows a platform service to manage resources inside it.',
        de: 'Konzentrieren Sie sich auf die Subnetzfunktion, die es einem Plattformdienst erlaubt, Ressourcen darin zu verwalten.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/app-service/overview-vnet-integration'
    },
    {
      id: 'az104-091',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., virtual machines in two different VNets must resolve records from the same Azure Private DNS zone.',
        de: 'Fabrikam, Inc. – Virtuelle Computer in zwei verschiedenen VNets müssen Datensätze aus derselben Azure Private DNS-Zone auflösen.'
      },
      question: {
        en: 'What should you do?',
        de: 'Was sollten Sie tun?'
      },
      options: [
        { id: 'A', text: { en: 'Link the private DNS zone to both VNets by using virtual network links', de: 'Verknüpfen Sie die private DNS-Zone über virtuelle Netzwerkverknüpfungen mit beiden VNets' } },
        { id: 'B', text: { en: 'Peer the VNets and DNS resolution will always work automatically without any zone link', de: 'Peerieren Sie die VNets, dann funktioniert die DNS-Auflösung immer automatisch ohne Zonenverknüpfung' } },
        { id: 'C', text: { en: 'Create a public DNS zone with the same name', de: 'Erstellen Sie eine öffentliche DNS-Zone mit demselben Namen' } },
        { id: 'D', text: { en: 'Deploy Azure Bastion in both VNets', de: 'Stellen Sie Azure Bastion in beiden VNets bereit' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Private DNS zones resolve names for linked virtual networks. If you want resources in multiple VNets to use the same private zone, you must create virtual network links for each participating VNet.',
        de: 'Private DNS-Zonen lösen Namen für verknüpfte virtuelle Netzwerke auf. Wenn Ressourcen in mehreren VNets dieselbe private Zone verwenden sollen, müssen Sie für jedes beteiligte VNet virtuelle Netzwerkverknüpfungen erstellen.'
      },
      hint: {
        en: 'Private DNS visibility is controlled through zone-to-VNet links.',
        de: 'Die Sichtbarkeit privater DNS-Zonen wird über Verknüpfungen zwischen Zone und VNet gesteuert.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/dns/private-dns-virtual-network-links'
    },
    {
      id: 'az104-092',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements correctly compare private endpoints and service endpoints? Choose all that apply.',
        de: 'Welche Aussagen vergleichen Private Endpoints und Service Endpoints korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'A private endpoint uses a private IP address from your VNet for access to the service', de: 'Ein Private Endpoint verwendet für den Zugriff auf den Dienst eine private IP-Adresse aus Ihrem VNet' } },
        { id: 'B', text: { en: 'A service endpoint places the PaaS resource directly inside your subnet', de: 'Ein Service Endpoint platziert die PaaS-Ressource direkt in Ihrem Subnetz' } },
        { id: 'C', text: { en: 'Private endpoints work with Azure Private Link-supported services', de: 'Private Endpoints funktionieren mit Diensten, die Azure Private Link unterstützen' } },
        { id: 'D', text: { en: 'Service endpoints can restrict a service to selected VNets and subnets while the service still uses its public endpoint', de: 'Service Endpoints können einen Dienst auf ausgewählte VNets und Subnetze beschränken, während der Dienst weiterhin seinen öffentlichen Endpunkt verwendet' } }
      ],
      correct: ['A', 'C', 'D'],
      explanation: {
        en: 'Private endpoints map a private IP address from your VNet to a supported PaaS service through Azure Private Link. Service endpoints do not place the service inside your subnet; instead, they extend your VNet identity to the service while access still targets the service endpoint.',
        de: 'Private Endpoints ordnen über Azure Private Link einer unterstützten PaaS-Ressource eine private IP-Adresse aus Ihrem VNet zu. Service Endpoints platzieren den Dienst nicht in Ihrem Subnetz, sondern erweitern die Identität Ihres VNets auf den Dienst, während der Zugriff weiterhin den Dienstendpunkt verwendet.'
      },
      hint: {
        en: 'One option gives the service a private address in your VNet, and the other secures access to a public service endpoint.',
        de: 'Eine Option gibt dem Dienst eine private Adresse in Ihrem VNet, die andere sichert den Zugriff auf einen öffentlichen Dienstendpunkt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-overview'
    },
    {
      id: 'az104-093',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a virtual machine should access an Azure Storage account through a private endpoint. The VM currently resolves the storage account name to a public IP address.',
        de: 'Northwind Traders – Ein virtueller Computer soll über einen Private Endpoint auf ein Azure Storage-Konto zugreifen. Der VM löst den Namen des Speicherkontos derzeit in eine öffentliche IP-Adresse auf.'
      },
      question: {
        en: 'What should you configure to support name resolution to the private endpoint?',
        de: 'Was sollten Sie konfigurieren, um die Namensauflösung auf den Private Endpoint zu unterstützen?'
      },
      options: [
        { id: 'A', text: { en: 'A private DNS zone such as privatelink.blob.core.windows.net linked to the VNet', de: 'Eine private DNS-Zone wie privatelink.blob.core.windows.net, die mit dem VNet verknüpft ist' } },
        { id: 'B', text: { en: 'A public DNS zone that overrides the Azure Storage hostname on the internet', de: 'Eine öffentliche DNS-Zone, die den Azure Storage-Hostnamen im Internet überschreibt' } },
        { id: 'C', text: { en: 'A user-defined route with next hop Internet', de: 'Eine benutzerdefinierte Route mit Internet als nächstem Hop' } },
        { id: 'D', text: { en: 'An inbound NAT rule on a load balancer', de: 'Eine eingehende NAT-Regel auf einem Load Balancer' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Private endpoints rely on DNS to resolve the service name to the private IP address in your VNet. Associating the correct privatelink zone with the VNet ensures that clients resolve the storage account to the private endpoint instead of the public endpoint.',
        de: 'Private Endpoints sind darauf angewiesen, dass DNS den Dienstnamen in die private IP-Adresse Ihres VNets auflöst. Durch die Zuordnung der richtigen privatelink-Zone zum VNet wird sichergestellt, dass Clients das Speicherkonto auf den Private Endpoint statt auf den öffentlichen Endpunkt auflösen.'
      },
      hint: {
        en: 'The connection path is private, but the client still needs DNS to find the private IP.',
        de: 'Der Verbindungsweg ist privat, aber der Client benötigt weiterhin DNS, um die private IP zu finden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns'
    },
    {
      id: 'az104-094',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'Contoso, Ltd. needs private, predictable, high-bandwidth connectivity from on-premises datacenters to Azure without sending traffic over the public internet.',
        de: 'Contoso, Ltd. benötigt private, vorhersehbare und bandbreitenstarke Konnektivität von lokalen Rechenzentren zu Azure, ohne den Datenverkehr über das öffentliche Internet zu senden.'
      },
      question: {
        en: 'Which Azure service should you choose?',
        de: 'Welchen Azure-Dienst sollten Sie auswählen?'
      },
      options: [
        { id: 'A', text: { en: 'ExpressRoute', de: 'ExpressRoute' } },
        { id: 'B', text: { en: 'Point-to-site VPN', de: 'Point-to-Site-VPN' } },
        { id: 'C', text: { en: 'VNet peering', de: 'VNet-Peering' } },
        { id: 'D', text: { en: 'Azure Bastion', de: 'Azure Bastion' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'ExpressRoute provides private connectivity to Azure through a connectivity provider and does not route traffic across the public internet. VPN Gateway uses encrypted tunnels over the internet, which does not meet the requirement for private dedicated connectivity.',
        de: 'ExpressRoute bietet private Konnektivität zu Azure über einen Konnektivitätsanbieter und leitet den Datenverkehr nicht über das öffentliche Internet. VPN Gateway verwendet verschlüsselte Tunnel über das Internet und erfüllt damit nicht die Anforderung nach privater dedizierter Konnektivität.'
      },
      hint: {
        en: 'Look for the Azure hybrid connectivity option that is private and dedicated rather than internet-based.',
        de: 'Suchen Sie nach der Azure-Option für Hybridkonnektivität, die privat und dediziert statt internetbasiert ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/expressroute/expressroute-introduction'
    },
    {
      id: 'az104-095',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'What does an Azure Load Balancer health probe determine?',
        de: 'Was bestimmt ein Health Probe des Azure Load Balancer?'
      },
      options: [
        { id: 'A', text: { en: 'Which backend instances are healthy enough to receive traffic', de: 'Welche Back-End-Instanzen gesund genug sind, um Datenverkehr zu empfangen' } },
        { id: 'B', text: { en: 'Which DNS zone should answer client queries', de: 'Welche DNS-Zone Clientabfragen beantworten soll' } },
        { id: 'C', text: { en: 'Which VNet can be peered to the load balancer subnet', de: 'Welches VNet mit dem Load-Balancer-Subnetz gepeert werden kann' } },
        { id: 'D', text: { en: 'Which NSG priority number should be created automatically', de: 'Welche NSG-Prioritätsnummer automatisch erstellt werden soll' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'A health probe checks whether a backend instance or service endpoint is responding on a specified protocol and port or path. The load balancer sends new traffic only to instances that pass the probe.',
        de: 'Ein Health Probe prüft, ob eine Back-End-Instanz oder ein Dienstendpunkt auf einem angegebenen Protokoll und Port oder Pfad reagiert. Der Load Balancer sendet neuen Datenverkehr nur an Instanzen, die den Probe bestehen.'
      },
      hint: {
        en: 'The probe is about backend availability, not DNS or routing design.',
        de: 'Der Probe betrifft die Verfügbarkeit des Back-Ends, nicht DNS oder Routing-Design.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-custom-probe-overview'
    },
    {
      id: 'az104-096',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Azure Load Balancer SKUs are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure Load Balancer-SKUs sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'A public Standard Load Balancer frontend uses a Standard public IP address', de: 'Ein öffentliches Front-End eines Standard Load Balancer verwendet eine Standard Public IP-Adresse' } },
        { id: 'B', text: { en: 'A Standard Load Balancer is open to the internet by default without NSG rules', de: 'Ein Standard Load Balancer ist standardmäßig ohne NSG-Regeln zum Internet hin offen' } },
        { id: 'C', text: { en: 'Standard Load Balancer supports zone-redundant and zonal frontends', de: 'Standard Load Balancer unterstützt zonenredundante und zonale Front-Ends' } },
        { id: 'D', text: { en: 'You can mix Basic and Standard resources in the same load balancer configuration', de: 'Sie können Basic- und Standard-Ressourcen in derselben Load-Balancer-Konfiguration mischen' } }
      ],
      correct: ['A', 'C'],
      explanation: {
        en: 'Standard Load Balancer uses Standard public IP resources and supports zonal and zone-redundant designs. It is secure by default, which means you must explicitly allow traffic with NSGs, and Azure does not support mixing Basic and Standard SKUs in one configuration.',
        de: 'Der Standard Load Balancer verwendet Standard-Public-IP-Ressourcen und unterstützt zonale sowie zonenredundante Designs. Er ist standardmäßig sicher, was bedeutet, dass Sie Datenverkehr explizit mit NSGs zulassen müssen, und Azure unterstützt nicht das Mischen von Basic- und Standard-SKUs in einer Konfiguration.'
      },
      hint: {
        en: 'Think about SKU alignment with public IP resources and the secure-by-default behavior of Standard.',
        de: 'Denken Sie an die SKU-Abstimmung mit Public-IP-Ressourcen und das standardmäßig sichere Verhalten von Standard.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/load-balancer/skus'
    },
    {
      id: 'az104-097',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'In Azure Application Gateway, which component evaluates the frontend IP, port, protocol, and optional host name for incoming requests?',
        de: 'Welche Komponente in Azure Application Gateway wertet die Front-End-IP, den Port, das Protokoll und optional den Hostnamen für eingehende Anforderungen aus?'
      },
      options: [
        { id: 'A', text: { en: 'Backend pool', de: 'Back-End-Pool' } },
        { id: 'B', text: { en: 'Listener', de: 'Listener' } },
        { id: 'C', text: { en: 'Health probe', de: 'Health Probe' } },
        { id: 'D', text: { en: 'Route table', de: 'Routentabelle' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'An Application Gateway listener checks the frontend connection details such as IP address, port, protocol, and optionally host name. After a listener matches a request, the associated routing rule determines where the traffic goes next.',
        de: 'Ein Listener von Application Gateway prüft die Front-End-Verbindungsdetails wie IP-Adresse, Port, Protokoll und optional den Hostnamen. Nachdem ein Listener eine Anforderung erkannt hat, bestimmt die zugeordnete Routingregel, wohin der Datenverkehr als Nächstes geleitet wird.'
      },
      hint: {
        en: 'This component sits at the entry point before any backend pool is selected.',
        de: 'Diese Komponente sitzt am Einstiegspunkt, bevor ein Back-End-Pool ausgewählt wird.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/application-gateway/application-gateway-components'
    },
    {
      id: 'az104-098',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Azure DNS public and private zones are correct? Choose all that apply.',
        de: 'Welche Aussagen zu öffentlichen und privaten Azure DNS-Zonen sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Public DNS zones host records that can be resolved from the internet', de: 'Öffentliche DNS-Zonen hosten Einträge, die aus dem Internet aufgelöst werden können' } },
        { id: 'B', text: { en: 'Private DNS zones can be linked to VNets for internal name resolution', de: 'Private DNS-Zonen können zur internen Namensauflösung mit VNets verknüpft werden' } },
        { id: 'C', text: { en: 'Private DNS zones are automatically reachable from any public DNS resolver on the internet', de: 'Private DNS-Zonen sind automatisch von jedem öffentlichen DNS-Resolver im Internet erreichbar' } },
        { id: 'D', text: { en: 'You can have a public zone and a private zone with the same DNS name in Azure', de: 'Sie können in Azure eine öffentliche und eine private Zone mit demselben DNS-Namen haben' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Azure DNS public zones are for internet-facing name resolution, while private zones are intended for internal resolution within linked VNets. Private zones are not published to the public internet, and Azure allows a public and private zone to share the same domain name for split-horizon designs.',
        de: 'Öffentliche Azure DNS-Zonen dienen der internetseitigen Namensauflösung, während private Zonen für die interne Auflösung innerhalb verknüpfter VNets vorgesehen sind. Private Zonen werden nicht im öffentlichen Internet veröffentlicht, und Azure erlaubt, dass eine öffentliche und eine private Zone denselben Domänennamen für Split-Horizon-Designs verwenden.'
      },
      hint: {
        en: 'Separate internet-facing resolution from VNet-scoped internal resolution.',
        de: 'Trennen Sie internetseitige Auflösung von VNet-begrenzter interner Auflösung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/dns/dns-overview'
    },
    {
      id: 'az104-099',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'easy',
      scenario: {
        en: 'At Contoso, Ltd., administrators must open RDP and SSH sessions to Azure virtual machines through the Azure portal without assigning public IP addresses to the VMs.',
        de: 'Bei Contoso, Ltd.: administratoren müssen RDP- und SSH-Sitzungen zu Azure-VMs über das Azure-Portal öffnen, ohne den VMs öffentliche IP-Adressen zuzuweisen.'
      },
      question: {
        en: 'Which service should you deploy?',
        de: 'Welchen Dienst sollten Sie bereitstellen?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'B', text: { en: 'Azure Front Door', de: 'Azure Front Door' } },
        { id: 'C', text: { en: 'Azure DNS Private Resolver', de: 'Azure DNS Private Resolver' } },
        { id: 'D', text: { en: 'ExpressRoute', de: 'ExpressRoute' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Bastion provides browser-based RDP and SSH access to VMs over TLS through the Azure portal. This removes the need to expose public IP addresses directly on the virtual machines.',
        de: 'Azure Bastion bietet browserbasierten RDP- und SSH-Zugriff auf VMs über TLS durch das Azure-Portal. Dadurch entfällt die Notwendigkeit, öffentliche IP-Adressen direkt auf den virtuellen Computern bereitzustellen.'
      },
      hint: {
        en: 'Use the managed jump-host service designed for secure portal-based VM access.',
        de: 'Verwenden Sie den verwalteten Jump-Host-Dienst, der für sicheren portalbasierten VM-Zugriff entwickelt wurde.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/bastion/bastion-overview'
    },
    {
      id: 'az104-100',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., virtual machines in a private subnet need scalable outbound internet access by using a fixed set of public IP addresses, but they must not accept unsolicited inbound connections.',
        de: 'Fabrikam, Inc. – Virtuelle Computer in einem privaten Subnetz benötigen skalierbaren ausgehenden Internetzugriff mit einem festen Satz öffentlicher IP-Adressen, dürfen aber keine unaufgeforderten eingehenden Verbindungen akzeptieren.'
      },
      question: {
        en: 'Which Azure service best fits this requirement?',
        de: 'Welcher Azure-Dienst passt am besten zu dieser Anforderung?'
      },
      options: [
        { id: 'A', text: { en: 'NAT Gateway', de: 'NAT Gateway' } },
        { id: 'B', text: { en: 'Application Gateway', de: 'Application Gateway' } },
        { id: 'C', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'D', text: { en: 'Private DNS zone', de: 'Private DNS-Zone' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'NAT Gateway provides outbound-only internet connectivity for resources in a subnet and uses assigned Standard public IP addresses or prefixes. It does not create inbound exposure for the virtual machines, which makes it a good fit for private workloads needing consistent egress.',
        de: 'NAT Gateway stellt ausschließlich ausgehende Internetkonnektivität für Ressourcen in einem Subnetz bereit und verwendet zugewiesene Standard-Public-IP-Adressen oder -Präfixe. Es erzeugt keine eingehende Erreichbarkeit für die virtuellen Computer und eignet sich daher gut für private Workloads mit konsistentem ausgehendem Verkehr.'
      },
      hint: {
        en: 'The requirement is controlled outbound egress, not inbound publishing or remote administration.',
        de: 'Die Anforderung betrifft kontrollierten ausgehenden Verkehr, nicht eingehende Veröffentlichung oder Remoteverwaltung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/nat-gateway/nat-overview'
    },
    {
      id: 'az104-101',
      type: 'multiple',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a hub VNet contains a VPN gateway connected to on-premises. A spoke VNet is peered to the hub and must use the hub gateway for on-premises connectivity.',
        de: 'Bei Northwind Traders enthält ein VPN Gateway mit Verbindung zur lokalen Umgebung. Ein Spoke-VNet ist mit dem Hub gepeert und soll das Gateway des Hubs für die Verbindung zur lokalen Umgebung verwenden.'
      },
      question: {
        en: 'Which peering settings should you configure? Choose all that apply.',
        de: 'Welche Peering-Einstellungen sollten Sie konfigurieren? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Enable Allow gateway transit on the hub-to-spoke peering', de: 'Aktivieren Sie Allow gateway transit im Peering vom Hub zum Spoke' } },
        { id: 'B', text: { en: 'Enable Use remote gateways on the spoke-to-hub peering', de: 'Aktivieren Sie Use remote gateways im Peering vom Spoke zum Hub' } },
        { id: 'C', text: { en: 'Enable Allow gateway transit on the spoke-to-hub peering', de: 'Aktivieren Sie Allow gateway transit im Peering vom Spoke zum Hub' } },
        { id: 'D', text: { en: 'Disable virtual network access on both peerings', de: 'Deaktivieren Sie den Zugriff auf virtuelle Netzwerke in beiden Peerings' } }
      ],
      correct: ['A', 'B'],
      explanation: {
        en: 'Gateway transit requires the hub VNet peering to advertise that its gateway can be used by remote VNets. The spoke-side peering must then enable Use remote gateways so the spoke can consume that hub gateway.',
        de: 'Gateway Transit erfordert, dass das Peering des Hub-VNets ankündigt, dass sein Gateway von entfernten VNets verwendet werden kann. Das Peering auf der Spoke-Seite muss dann Use remote gateways aktivieren, damit der Spoke dieses Hub-Gateway nutzen kann.'
      },
      hint: {
        en: 'One setting shares the gateway from the hub, and the other setting tells the spoke to use it.',
        de: 'Eine Einstellung gibt das Gateway vom Hub frei, und die andere weist den Spoke an, es zu verwenden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview'
    },
    {
      id: 'az104-102',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statement about Azure public IP SKUs and allocation methods is correct?',
        de: 'Welche Aussage zu Azure Public IP-SKUs und Zuweisungsmethoden ist korrekt?'
      },
      options: [
        { id: 'A', text: { en: 'Standard SKU public IP addresses are static by default', de: 'Public IP-Adressen der Standard-SKU sind standardmäßig statisch' } },
        { id: 'B', text: { en: 'Basic SKU public IP addresses are always zone-redundant', de: 'Public IP-Adressen der Basic-SKU sind immer zonenredundant' } },
        { id: 'C', text: { en: 'NAT Gateway requires Basic public IP addresses', de: 'NAT Gateway erfordert Basic Public IP-Adressen' } },
        { id: 'D', text: { en: 'Dynamic allocation is the only supported method for Standard SKU', de: 'Dynamische Zuweisung ist die einzige unterstützte Methode für die Standard-SKU' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Standard SKU public IP addresses use static allocation, which makes them suitable for services that require stable inbound or outbound addressing. NAT Gateway also uses Standard public IP resources, while Basic public IP behavior differs and does not provide the same SKU features.',
        de: 'Public IP-Adressen der Standard-SKU verwenden eine statische Zuweisung, wodurch sie sich für Dienste eignen, die stabile eingehende oder ausgehende Adressierung benötigen. NAT Gateway verwendet ebenfalls Standard-Public-IP-Ressourcen, während sich das Verhalten von Basic Public IPs unterscheidet und nicht dieselben SKU-Funktionen bietet.'
      },
      hint: {
        en: 'Focus on which SKU gives you a fixed address by design.',
        de: 'Konzentrieren Sie sich darauf, welche SKU standardmäßig eine feste Adresse bereitstellt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-network/ip-services/public-ip-addresses'
    },
    {
      id: 'az104-103',
      type: 'single',
      domain: { en: 'Implement and Manage Virtual Networking', de: 'Virtuelle Netzwerke implementieren und verwalten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., an Application Gateway must send requests for /images to one backend pool and requests for /api to another backend pool.',
        de: 'Bei Fabrikam, Inc.: ein Application Gateway soll Anforderungen für /images an einen Back-End-Pool und Anforderungen für /api an einen anderen Back-End-Pool senden.'
      },
      question: {
        en: 'Which routing configuration should you use?',
        de: 'Welche Routingkonfiguration sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'A basic routing rule', de: 'Eine grundlegende Routingregel' } },
        { id: 'B', text: { en: 'A path-based routing rule', de: 'Eine pfadbasierte Routingregel' } },
        { id: 'C', text: { en: 'A user-defined route on the subnet', de: 'Eine benutzerdefinierte Route im Subnetz' } },
        { id: 'D', text: { en: 'A load balancer inbound NAT rule', de: 'Eine eingehende NAT-Regel eines Load Balancers' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Application Gateway supports URL path-based routing so different request paths can be directed to different backend pools. A basic rule does not inspect URL paths and therefore cannot separate /images and /api traffic this way.',
        de: 'Application Gateway unterstützt URL-pfadbasiertes Routing, sodass verschiedene Anforderungspfade an unterschiedliche Back-End-Pools geleitet werden können. Eine grundlegende Regel prüft keine URL-Pfade und kann daher /images- und /api-Datenverkehr nicht auf diese Weise trennen.'
      },
      hint: {
        en: 'The decision is based on the URL path, not just the listener or transport protocol.',
        de: 'Die Entscheidung basiert auf dem URL-Pfad und nicht nur auf Listener oder Transportprotokoll.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/application-gateway/url-route-overview'
    },
    {
      id: 'az104-104',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: {
        en: 'You work for Contoso, Ltd. Your team needs the telemetry type designed for fast numeric trends and threshold alerts.',
        de: 'Sie arbeiten für Contoso, Ltd. Ihr Team benötigt den Telemetrietyp, der für schnelle numerische Trends und Schwellenwertwarnungen ausgelegt ist.'
      },
      question: {
        en: 'Which Azure Monitor data type is best suited for this requirement?',
        de: 'Welcher Azure Monitor-Datentyp ist für diese Anforderung am besten geeignet?'
      },
      options: [
        { id: 'A', text: { en: 'Metrics', de: 'Metriken' } },
        { id: 'B', text: { en: 'Logs', de: 'Protokolle' } },
        { id: 'C', text: { en: 'Activity Log', de: 'Activity Log' } },
        { id: 'D', text: { en: 'Service Health', de: 'Service Health' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Metrics are numerical time-series data optimized for near real-time monitoring, charting, and alerting. Logs are better for deeper analysis and correlation, but they are not the primary choice for fast threshold-based CPU monitoring.',
        de: 'Metriken sind numerische Zeitreihendaten, die für nahezu Echtzeitüberwachung, Diagramme und Warnungen optimiert sind. Protokolle eignen sich besser für tiefere Analysen und Korrelationen, sind jedoch nicht die erste Wahl für schnelle CPU-Schwellenwertüberwachung.'
      },
      hint: {
        en: 'Choose the telemetry type designed for fast numeric trends and threshold alerts.',
        de: 'Wählen Sie den Telemetrietyp, der für schnelle numerische Trends und Schwellenwertwarnungen ausgelegt ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/metrics/data-platform-metrics'
    },
    {
      id: 'az104-105',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which destinations can Azure Monitor diagnostic settings send data to? Choose all that apply.',
        de: 'An welche Ziele können Azure Monitor-Diagnoseeinstellungen Daten senden? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Log Analytics workspace', de: 'Log Analytics-Arbeitsbereich' } },
        { id: 'B', text: { en: 'Storage account', de: 'Speicherkonto' } },
        { id: 'C', text: { en: 'Event Hubs', de: 'Event Hubs' } },
        { id: 'D', text: { en: 'Recovery Services vault', de: 'Recovery Services-Tresor' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Diagnostic settings can route resource logs and supported metrics to Log Analytics workspaces, Storage accounts, and Event Hubs. A Recovery Services vault is for backup and recovery workloads, not for diagnostic data routing.',
        de: 'Diagnoseeinstellungen können Ressourcenprotokolle und unterstützte Metriken an Log Analytics-Arbeitsbereiche, Speicherkonten und Event Hubs weiterleiten. Ein Recovery Services-Tresor ist für Backup- und Wiederherstellungsworkloads gedacht, nicht für die Weiterleitung von Diagnosedaten.'
      },
      hint: {
        en: 'Think about analytics, retention, and streaming destinations rather than backup storage.',
        de: 'Denken Sie an Analyse-, Aufbewahrungs- und Streamingziele statt an Backupspeicher.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings'
    },
    {
      id: 'az104-106',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Northwind Traders, twelve alert rules must all send the same email, SMS, and webhook notifications.',
        de: 'Bei Northwind Traders: zwölf Warnungsregeln müssen alle dieselben Benachrichtigungen per E-Mail, SMS und Webhook senden.'
      },
      question: {
        en: 'What should you create so the notification configuration can be reused?',
        de: 'Was sollten Sie erstellen, damit die Benachrichtigungskonfiguration wiederverwendet werden kann?'
      },
      options: [
        { id: 'A', text: { en: 'A workbook', de: 'Ein Workbook' } },
        { id: 'B', text: { en: 'An action group', de: 'Eine Aktionsgruppe' } },
        { id: 'C', text: { en: 'A diagnostic setting', de: 'Eine Diagnoseeinstellung' } },
        { id: 'D', text: { en: 'A data collection rule', de: 'Eine Datensammlungsregel' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'An action group is a reusable collection of notification preferences and automated actions for alerts. Multiple alert rules can reference the same action group instead of duplicating email, SMS, or webhook settings.',
        de: 'Eine Aktionsgruppe ist eine wiederverwendbare Sammlung von Benachrichtigungseinstellungen und automatisierten Aktionen für Warnungen. Mehrere Warnungsregeln können auf dieselbe Aktionsgruppe verweisen, statt E-Mail-, SMS- oder Webhook-Einstellungen zu duplizieren.'
      },
      hint: {
        en: 'Use the Azure Monitor component that defines who is notified and what action runs.',
        de: 'Verwenden Sie die Azure Monitor-Komponente, die festlegt, wer benachrichtigt wird und welche Aktion ausgeführt wird.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups'
    },
    {
      id: 'az104-107',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Fabrikam, Inc. Your team needs the Azure Monitor capability focused specifically on deep VM observability.',
        de: 'Fabrikam, Inc. – Ihr Team möchte eine umfangreichere Überwachung für Azure-VMs, einschließlich Zustand, Leistung und Einblicken auf Gastebene in Azure Monitor.'
      },
      question: {
        en: 'Which feature should you enable?',
        de: 'Welche Funktion sollten Sie aktivieren?'
      },
      options: [
        { id: 'A', text: { en: 'VM insights', de: 'VM Insights' } },
        { id: 'B', text: { en: 'Update Manager', de: 'Update Manager' } },
        { id: 'C', text: { en: 'Resource Health', de: 'Resource Health' } },
        { id: 'D', text: { en: 'Boot diagnostics', de: 'Startdiagnose' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'VM insights extends Azure Monitor visibility for virtual machines by combining host and guest monitoring data. It helps administrators analyze performance and health in more detail than the default platform metrics alone.',
        de: 'VM Insights erweitert die Azure Monitor-Sichtbarkeit für virtuelle Maschinen, indem Host- und Gastüberwachungsdaten kombiniert werden. Damit können Administratoren Leistung und Zustand detaillierter analysieren als nur mit den standardmäßigen Plattformmetriken.'
      },
      hint: {
        en: 'Choose the Azure Monitor capability focused specifically on deep VM observability.',
        de: 'Wählen Sie die Azure Monitor-Funktion, die speziell auf tiefgehende VM-Beobachtbarkeit ausgerichtet ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/vm/vminsights-overview'
    },
    {
      id: 'az104-108',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statements about Azure Service Health and Resource Health are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure Service Health und Resource Health sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Service Health provides personalized information about Azure incidents, planned maintenance, and advisories that affect your subscriptions.', de: 'Service Health liefert personalisierte Informationen zu Azure-Störungen, geplanter Wartung und Hinweisen, die Ihre Abonnements betreffen.' } },
        { id: 'B', text: { en: 'Resource Health shows the current and past health of individual resources such as a specific virtual machine.', de: 'Resource Health zeigt den aktuellen und vergangenen Zustand einzelner Ressourcen wie einer bestimmten virtuellen Maschine.' } },
        { id: 'C', text: { en: 'Azure status is a global view and is not personalized to your subscriptions.', de: 'Azure Status ist eine globale Ansicht und nicht auf Ihre Abonnements personalisiert.' } },
        { id: 'D', text: { en: 'Resource Health stores guest operating system logs in a Log Analytics workspace.', de: 'Resource Health speichert Gastbetriebssystemprotokolle in einem Log Analytics-Arbeitsbereich.' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Service Health gives subscription-specific visibility into Azure service issues and planned maintenance, while Resource Health focuses on the health of individual resources. Azure status is public and global, whereas Resource Health does not act as a log repository for guest operating system data.',
        de: 'Service Health bietet abonnementspezifische Sichtbarkeit für Azure-Dienstprobleme und geplante Wartung, während Resource Health den Zustand einzelner Ressourcen betrachtet. Azure Status ist öffentlich und global, und Resource Health dient nicht als Protokollspeicher für Gastbetriebssystemdaten.'
      },
      hint: {
        en: 'Separate global service information, subscription-specific service impact, and single-resource health.',
        de: 'Trennen Sie globale Dienstinformationen, abonnementspezifische Dienstauswirkungen und den Zustand einzelner Ressourcen.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/service-health/overview'
    },
    {
      id: 'az104-109',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'You work for Northwind Traders. This question is about newer Azure Backup workloads rather than classic VM backup.',
        de: 'Sie arbeiten für Northwind Traders. Diese Frage bezieht sich auf neuere Azure Backup-Workloads und nicht auf klassisches VM-Backup.'
      },
      question: {
        en: 'Which vault should you use?',
        de: 'Welchen Tresor sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Backup vault', de: 'Backup-Tresor' } },
        { id: 'B', text: { en: 'Recovery Services vault', de: 'Recovery Services-Tresor' } },
        { id: 'C', text: { en: 'Log Analytics workspace', de: 'Log Analytics-Arbeitsbereich' } },
        { id: 'D', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Backup vaults are used by Azure Backup for certain newer workloads such as Azure Blobs. Recovery Services vaults are still common for workloads such as Azure VM backup, so the vault types are not interchangeable for every scenario.',
        de: 'Backup-Tresore werden von Azure Backup für bestimmte neuere Workloads wie Azure Blobs verwendet. Recovery Services-Tresore sind weiterhin für Workloads wie Azure-VM-Backups üblich, daher sind die Tresortypen nicht in jedem Szenario austauschbar.'
      },
      hint: {
        en: 'This question is about newer Azure Backup workloads rather than classic VM backup.',
        de: 'Diese Frage bezieht sich auf neuere Azure Backup-Workloads und nicht auf klassisches VM-Backup.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/backup-vault-overview'
    },
    {
      id: 'az104-110',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which statement about Azure Files backup is correct?',
        de: 'Welche Aussage zu Azure Files-Backup ist korrekt?'
      },
      options: [
        { id: 'A', text: { en: 'It requires an agent on every client that accesses the file share.', de: 'Es erfordert einen Agent auf jedem Client, der auf die Dateifreigabe zugreift.' } },
        { id: 'B', text: { en: 'It is a native Azure Backup capability for Azure Files and can use snapshot and vaulted backup.', de: 'Es ist eine native Azure Backup-Funktion für Azure Files und kann Snapshot- sowie Vault-Backup verwenden.' } },
        { id: 'C', text: { en: 'It can protect only on-premises SMB shares, not Azure file shares.', de: 'Es kann nur lokale SMB-Freigaben schützen, nicht Azure-Dateifreigaben.' } },
        { id: 'D', text: { en: 'It uses Service Health alerts instead of backup policies.', de: 'Es verwendet Service Health-Warnungen anstelle von Backup-Richtlinien.' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Azure Files backup is a native cloud backup capability that does not require separate backup infrastructure on clients. It supports snapshot-based protection and vaulted backup options for stronger retention and recovery scenarios.',
        de: 'Azure Files-Backup ist eine native Cloud-Backup-Funktion, die keine separate Backup-Infrastruktur auf Clients erfordert. Es unterstützt snapshotbasierte Sicherung und Vault-Backup-Optionen für stärkere Aufbewahrungs- und Wiederherstellungsszenarien.'
      },
      hint: {
        en: 'Look for the option that describes a managed Azure-native backup experience.',
        de: 'Suchen Sie die Option, die eine verwaltete, Azure-native Backup-Erfahrung beschreibt.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/azure-file-share-backup-overview'
    },
    {
      id: 'az104-111',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'An administrator at Contoso, Ltd. accidentally deletes backup data and you need a built-in protection feature that delays permanent deletion.',
        de: 'Ein Administrator bei Contoso, Ltd. löscht versehentlich Sicherungsdaten, und Sie benötigen eine integrierte Schutzfunktion, die die endgültige Löschung verzögert.'
      },
      question: {
        en: 'Which Azure Backup feature helps in this scenario?',
        de: 'Welche Azure Backup-Funktion hilft in diesem Szenario?'
      },
      options: [
        { id: 'A', text: { en: 'Soft delete', de: 'Soft Delete' } },
        { id: 'B', text: { en: 'Boot diagnostics', de: 'Startdiagnose' } },
        { id: 'C', text: { en: 'Availability zones', de: 'Verfügbarkeitszonen' } },
        { id: 'D', text: { en: 'Update Manager', de: 'Update Manager' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Soft delete helps protect backup data from accidental or malicious deletion by delaying permanent removal. This gives administrators a recovery window to restore protected backup items instead of losing them immediately.',
        de: 'Soft Delete schützt Sicherungsdaten vor versehentlicher oder böswilliger Löschung, indem die endgültige Entfernung verzögert wird. Dadurch erhalten Administratoren ein Wiederherstellungsfenster, um geschützte Sicherungselemente wiederherzustellen, statt sie sofort zu verlieren.'
      },
      hint: {
        en: 'Choose the backup protection feature designed to recover from deletion events.',
        de: 'Wählen Sie die Backup-Schutzfunktion, die für die Wiederherstellung nach Löschereignissen ausgelegt ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/backup/backup-azure-security-feature-cloud'
    },
    {
      id: 'az104-112',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: {
        en: 'You work for Fabrikam, Inc. Your team needs the service focused on update compliance and patch orchestration.',
        de: 'Sie arbeiten für Fabrikam, Inc. Ihr Team benötigt den Dienst, der auf Update-Compliance und Patch-Orchestrierung ausgerichtet ist.'
      },
      question: {
        en: 'Which service should you use?',
        de: 'Welchen Dienst sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Update Manager', de: 'Azure Update Manager' } },
        { id: 'B', text: { en: 'Azure Advisor', de: 'Azure Advisor' } },
        { id: 'C', text: { en: 'Azure Cost Management', de: 'Azure Cost Management' } },
        { id: 'D', text: { en: 'Azure Deployment Environments', de: 'Azure Deployment Environments' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Azure Update Manager is the service for patch assessment, compliance visibility, and scheduled updates across Azure and Arc-connected machines. It is designed for ongoing maintenance rather than cost analysis or deployment governance.',
        de: 'Azure Update Manager ist der Dienst für Patchbewertung, Compliance-Transparenz und geplante Updates über Azure- und Arc-verbundene Computer hinweg. Er ist für laufende Wartung konzipiert und nicht für Kostenanalyse oder Bereitstellungsgouvernance.'
      },
      hint: {
        en: 'Choose the service focused on update compliance and patch orchestration.',
        de: 'Wählen Sie den Dienst, der auf Update-Compliance und Patch-Orchestrierung ausgerichtet ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/update-manager/overview'
    },
    {
      id: 'az104-113',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: null,
      question: {
        en: 'In a basic KQL query for Azure Monitor Logs, which operator is used to filter rows?',
        de: 'Welcher Operator wird in einer grundlegenden KQL-Abfrage für Azure Monitor Logs verwendet, um Zeilen zu filtern?'
      },
      options: [
        { id: 'A', text: { en: 'where', de: 'where' } },
        { id: 'B', text: { en: 'project', de: 'project' } },
        { id: 'C', text: { en: 'summarize', de: 'summarize' } },
        { id: 'D', text: { en: 'render', de: 'render' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'The where operator filters records based on a condition, such as a computer name or a time range. Project selects columns, summarize performs aggregation, and render formats output for visualization.',
        de: 'Der Operator where filtert Datensätze anhand einer Bedingung, zum Beispiel eines Computernamens oder eines Zeitbereichs. Project wählt Spalten aus, summarize führt Aggregationen durch und render formatiert die Ausgabe für Visualisierungen.'
      },
      hint: {
        en: 'Think about the KQL step used to keep only matching records.',
        de: 'Denken Sie an den KQL-Schritt, mit dem nur passende Datensätze beibehalten werden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/get-started-queries'
    },
    {
      id: 'az104-114',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: null,
      question: {
        en: 'Which are valid basic KQL operators in Azure Monitor Logs? Choose all that apply.',
        de: 'Welche sind gültige grundlegende KQL-Operatoren in Azure Monitor Logs? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'where', de: 'where' } },
        { id: 'B', text: { en: 'project', de: 'project' } },
        { id: 'C', text: { en: 'summarize', de: 'summarize' } },
        { id: 'D', text: { en: 'select', de: 'select' } }
      ],
      correct: ['A', 'B', 'C'],
      explanation: {
        en: 'Where, project, and summarize are standard KQL operators used in Azure Monitor Logs queries. Select is associated with SQL syntax, not Kusto Query Language.',
        de: 'Where, project und summarize sind standardmäßige KQL-Operatoren, die in Azure Monitor Logs-Abfragen verwendet werden. Select gehört zur SQL-Syntax und nicht zur Kusto Query Language.'
      },
      hint: {
        en: 'Pick the operators commonly chained with the pipe character in KQL.',
        de: 'Wählen Sie die Operatoren, die in KQL häufig mit dem Pipe-Zeichen verkettet werden.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/logs/get-started-queries'
    },
    {
      id: 'az104-115',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Contoso, Ltd., a maintenance window is scheduled tonight, and you want alerts to continue firing but notification actions to be suppressed during that period.',
        de: 'Bei Contoso, Ltd.: für heute Nacht ist ein Wartungsfenster geplant, und Sie möchten, dass Warnungen weiterhin ausgelöst werden, Benachrichtigungsaktionen jedoch in diesem Zeitraum unterdrückt werden.'
      },
      question: {
        en: 'Which Azure Monitor feature should you use?',
        de: 'Welche Azure Monitor-Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Disable the diagnostic settings', de: 'Die Diagnoseeinstellungen deaktivieren' } },
        { id: 'B', text: { en: 'Create an alert processing rule', de: 'Eine Warnungsverarbeitungsregel erstellen' } },
        { id: 'C', text: { en: 'Use a dynamic threshold', de: 'Einen dynamischen Schwellenwert verwenden' } },
        { id: 'D', text: { en: 'Move the resources to another subscription', de: 'Die Ressourcen in ein anderes Abonnement verschieben' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Alert processing rules can suppress or modify alert actions for fired alerts without changing the alert rule itself. This makes them useful for planned maintenance windows or business-hours notification control.',
        de: 'Warnungsverarbeitungsregeln können Aktionen für ausgelöste Warnungen unterdrücken oder ändern, ohne die Warnungsregel selbst zu verändern. Dadurch sind sie nützlich für geplante Wartungsfenster oder die Steuerung von Benachrichtigungen nach Geschäftszeiten.'
      },
      hint: {
        en: 'You need to change notification behavior, not the alert condition.',
        de: 'Sie müssen das Benachrichtigungsverhalten ändern, nicht die Warnungsbedingung.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-processing-rules'
    },
    {
      id: 'az104-116',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'At Fabrikam, Inc., a metric has strong daily and weekly patterns, so a fixed threshold causes too many false alerts.',
        de: 'Bei Fabrikam, Inc.: eine Metrik weist starke tägliche und wöchentliche Muster auf, sodass ein fester Schwellenwert zu vielen Fehlalarmen führt.'
      },
      question: {
        en: 'Which alert configuration is most appropriate?',
        de: 'Welche Warnungskonfiguration ist am besten geeignet?'
      },
      options: [
        { id: 'A', text: { en: 'An Activity Log alert', de: 'Eine Activity Log-Warnung' } },
        { id: 'B', text: { en: 'A metric alert with dynamic thresholds', de: 'Eine Metrikwarnung mit dynamischen Schwellenwerten' } },
        { id: 'C', text: { en: 'A backup alert', de: 'Eine Backup-Warnung' } },
        { id: 'D', text: { en: 'A Resource Health alert only', de: 'Nur eine Resource Health-Warnung' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Dynamic thresholds learn historical behavior and identify anomalies instead of relying on one fixed value. They are useful when normal metric values vary by hour, day, or week.',
        de: 'Dynamische Schwellenwerte lernen das historische Verhalten und erkennen Anomalien, anstatt sich auf einen festen Wert zu verlassen. Sie sind nützlich, wenn normale Metrikwerte je nach Stunde, Tag oder Woche variieren.'
      },
      hint: {
        en: 'Choose the alert option that adapts to patterns automatically.',
        de: 'Wählen Sie die Warnungsoption, die sich automatisch an Muster anpasst.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-dynamic-thresholds'
    },
    {
      id: 'az104-117',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'medium',
      scenario: {
        en: 'You work for Northwind Traders. Your team needs the feature built specifically for continuous path and connectivity checks.',
        de: 'Sie arbeiten für Northwind Traders. Ihr Team benötigt die Funktion, die speziell für kontinuierliche Pfad- und Konnektivitätsprüfungen entwickelt wurde.'
      },
      question: {
        en: 'Which Azure tool should you use?',
        de: 'Welches Azure-Tool sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'NSG flow logs', de: 'NSG-Flowlogs' } },
        { id: 'B', text: { en: 'Connection Monitor', de: 'Connection Monitor' } },
        { id: 'C', text: { en: 'Resource Health', de: 'Resource Health' } },
        { id: 'D', text: { en: 'Serial Console', de: 'Serielle Konsole' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Connection Monitor provides continuous end-to-end connectivity monitoring, including latency and packet loss measurements. It is designed for ongoing connection validation and troubleshooting across Azure and hybrid environments.',
        de: 'Connection Monitor bietet eine kontinuierliche End-to-End-Überwachung der Konnektivität, einschließlich Messungen von Latenz und Paketverlust. Es ist für die laufende Verbindungsprüfung und Fehlerbehebung in Azure- und Hybridumgebungen ausgelegt.'
      },
      hint: {
        en: 'Choose the feature built specifically for continuous path and connectivity checks.',
        de: 'Wählen Sie die Funktion, die speziell für kontinuierliche Pfad- und Konnektivitätsprüfungen entwickelt wurde.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/network-watcher/connection-monitor-overview'
    },
    {
      id: 'az104-118',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'easy',
      scenario: {
        en: 'At Contoso, Ltd., a virtual machine fails to start, and you need screenshots and serial log output from the boot process.',
        de: 'Bei Contoso, Ltd. startet nicht, und Sie benötigen Screenshots sowie die Ausgabe des seriellen Protokolls aus dem Startvorgang.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Boot diagnostics', de: 'Startdiagnose' } },
        { id: 'B', text: { en: 'Availability set', de: 'Verfügbarkeitsgruppe' } },
        { id: 'C', text: { en: 'Action group', de: 'Aktionsgruppe' } },
        { id: 'D', text: { en: 'Backup Center', de: 'Backup Center' } }
      ],
      correct: ['A'],
      explanation: {
        en: 'Boot diagnostics captures screenshots and serial console output during VM startup. This helps administrators investigate boot failures even when the operating system does not become fully available.',
        de: 'Die Startdiagnose erfasst während des VM-Starts Screenshots und die Ausgabe der seriellen Konsole. Dies hilft Administratoren bei der Untersuchung von Startfehlern, selbst wenn das Betriebssystem nicht vollständig verfügbar wird.'
      },
      hint: {
        en: 'Use the VM troubleshooting feature focused on startup behavior.',
        de: 'Verwenden Sie die VM-Fehlerbehebungsfunktion, die auf das Startverhalten ausgerichtet ist.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics'
    },
    {
      id: 'az104-119',
      type: 'single',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: {
        en: 'At Northwind Traders, a supported Azure VM has broken network connectivity, and you need text-based access in the portal that works independently of the network state.',
        de: 'Bei Northwind Traders: eine unterstützte Azure-VM hat eine defekte Netzwerkkonnektivität, und Sie benötigen im Portal textbasierten Zugriff, der unabhängig vom Netzwerkzustand funktioniert.'
      },
      question: {
        en: 'Which feature should you use?',
        de: 'Welche Funktion sollten Sie verwenden?'
      },
      options: [
        { id: 'A', text: { en: 'Azure Bastion', de: 'Azure Bastion' } },
        { id: 'B', text: { en: 'Serial Console', de: 'Serielle Konsole' } },
        { id: 'C', text: { en: 'Connection Monitor', de: 'Connection Monitor' } },
        { id: 'D', text: { en: 'Metrics Explorer', de: 'Metrics Explorer' } }
      ],
      correct: ['B'],
      explanation: {
        en: 'Serial Console provides text-based access to supported virtual machines through the Azure portal even when normal network connectivity is unavailable. It is commonly used for low-level troubleshooting and depends on boot diagnostics being enabled.',
        de: 'Die serielle Konsole bietet textbasierten Zugriff auf unterstützte virtuelle Maschinen über das Azure-Portal, selbst wenn die normale Netzwerkkonnektivität nicht verfügbar ist. Sie wird häufig für die Fehlerbehebung auf niedriger Ebene verwendet und setzt aktivierte Startdiagnose voraus.'
      },
      hint: {
        en: 'Choose the troubleshooting access path that does not rely on standard network connectivity.',
        de: 'Wählen Sie den Fehlerbehebungszugriff, der nicht auf der normalen Netzwerkkonnektivität basiert.'
      },
      reference: 'https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/windows/serial-console-overview'
    },
    {
      id: 'az104-120',
      type: 'multiple',
      domain: { en: 'Monitor and Maintain Azure Resources', de: 'Azure-Ressourcen überwachen und warten' },
      difficulty: 'hard',
      scenario: null,
      question: {
        en: 'Which statements about Azure Monitor diagnostic settings are correct? Choose all that apply.',
        de: 'Welche Aussagen zu Azure Monitor-Diagnoseeinstellungen sind korrekt? Wählen Sie alle zutreffenden Antworten aus.'
      },
      options: [
        { id: 'A', text: { en: 'Platform metrics are collected automatically, and diagnostic settings can route them to other destinations.', de: 'Plattformmetriken werden automatisch erfasst, und Diagnoseeinstellungen können sie an andere Ziele weiterleiten.' } },
        { id: 'B', text: { en: 'Resource logs are not collected by default for most resources and require diagnostic settings to be collected and sent out.', de: 'Ressourcenprotokolle werden für die meisten Ressourcen nicht standardmäßig erfasst und benötigen Diagnoseeinstellungen, um gesammelt und weitergeleitet zu werden.' } },
        { id: 'C', text: { en: 'One diagnostic setting automatically applies to all future resources of the same type in a subscription.', de: 'Eine Diagnoseeinstellung gilt automatisch für alle zukünftigen Ressourcen desselben Typs in einem Abonnement.' } },
        { id: 'D', text: { en: 'The Azure Activity Log can be routed to supported destinations by using diagnostic settings.', de: 'Das Azure Activity Log kann mithilfe von Diagnoseeinstellungen an unterstützte Ziele weitergeleitet werden.' } }
      ],
      correct: ['A', 'B', 'D'],
      explanation: {
        en: 'Platform metrics and the Activity Log exist without custom collection configuration, and diagnostic settings can export them to supported destinations. Resource logs usually require diagnostic settings, and settings are created for specific resources or scopes rather than automatically covering all future matching resources.',
        de: 'Plattformmetriken und das Activity Log existieren ohne benutzerdefinierte Sammlungskonfiguration, und Diagnoseeinstellungen können sie an unterstützte Ziele exportieren. Ressourcenprotokolle benötigen in der Regel Diagnoseeinstellungen, und diese werden für bestimmte Ressourcen oder Bereiche erstellt, statt automatisch alle zukünftigen passenden Ressourcen abzudecken.'
      },
      hint: {
        en: 'Focus on what is automatic, what requires explicit configuration, and how scope works.',
        de: 'Konzentrieren Sie sich darauf, was automatisch erfolgt, was explizite Konfiguration erfordert und wie der Geltungsbereich funktioniert.'
      },
      reference: 'https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings'
    }
  ]
};
