Availability Zones sind physisch getrennte Rechenzentrumsstandorte innerhalb derselben Cloud-Region.CloudHochverfügbarkeitMittelIst die Aussage richtig oder falsch?RichtigFalschEine Availability Zone besteht aus einem oder mehreren Rechenzentren mit eigener Strom-, Kühlungs- und Netzwerkversorgung. Mehrere Zonen in einer Region schützen vor dem Ausfall eines einzelnen Standorts.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Welche Rechte setzt chmod 755 datei?LinuxDateirechteEinfachWähle eine Antwort.Besitzer lesen/schreiben/ausführen, Gruppe und andere lesen/ausführen.Alle dürfen lesen, schreiben und ausführen.Besitzer lesen/schreiben, Gruppe und andere nur lesen.Nur der Besitzer darf die Datei ausführen, niemand darf lesen.Jede Ziffer steht für Besitzer, Gruppe und andere; 4 = lesen, 2 = schreiben, 1 = ausführen. 7 = rwx, 5 = r-x – also rwxr-xr-x.ÜberprüfenNächste Frage
Was unterscheidet Continuous Delivery von Continuous Deployment?DevOpsCI/CDEinfachWähle eine Antwort.Bei Continuous Delivery gibt es keine automatisierten Tests.Bei Continuous Delivery ist jede Änderung auslieferbar, die Freigabe in Produktion erfolgt aber manuell.Continuous Deployment funktioniert nur mit Containern.Es gibt keinen Unterschied, beide Begriffe sind synonym.Continuous Delivery hält die Software jederzeit in einem auslieferbaren Zustand; der Schritt in Produktion wird bewusst ausgelöst. Continuous Deployment automatisiert auch diesen letzten Schritt – jede Änderung, die die Pipeline besteht, geht direkt live.ÜberprüfenNächste Frage
Wie viele Adressen umfasst ein IPv4-Netz mit dem Präfix /24?NetworkingIP-AdressierungMittelWähle eine Antwort.128254256512Bei /24 bleiben 32 − 24 = 8 Bit für Hosts, also 2⁸ = 256 Adressen. Klassisch sind davon 254 für Hosts nutzbar, weil Netz- und Broadcast-Adresse wegfallen; Cloud-Anbieter reservieren oft noch einige weitere.ÜberprüfenNächste Frage
An welchen Orten im Repository wertet GitHub eine CODEOWNERS-Datei aus?Git & GitHubGitHubMittelWähle alle zutreffenden Antworten.Im Root-VerzeichnisIm Verzeichnis .github/Im Verzeichnis docs/Im Verzeichnis src/GitHub sucht die CODEOWNERS-Datei im Verzeichnis .github/, im Root und in docs/ – in genau dieser Reihenfolge. Andere Orte werden nicht berücksichtigt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Welcher DNS-Record-Typ ordnet einem Namen eine IPv6-Adresse zu?NetworkingDNSEinfachWähle eine Antwort.AAAAACNAMEMXAAAA-Records enthalten IPv6-Adressen, A-Records IPv4-Adressen. CNAME verweist auf einen anderen Namen, MX benennt Mailserver.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Was ist der Unterschied zwischen git fetch und git pull?Git & GitHubGitEinfachWähle eine Antwort.git fetch lädt Änderungen nur herunter, git pull integriert sie zusätzlich in den aktuellen Branch.git fetch funktioniert nur mit GitHub, git pull mit jedem Remote.git pull lädt nur Tags herunter.Beide Befehle sind identisch.git fetch aktualisiert nur die Remote-Tracking-Branches. git pull führt ein Fetch aus und integriert die Änderungen anschließend per Merge oder Rebase in den aktuellen Branch.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
git rebase erzeugt für die verschobenen Commits neue Commits mit neuen Hashes.Git & GitHubGitMittelIst die Aussage richtig oder falsch?RichtigFalschBeim Rebase werden die Commits auf eine neue Basis neu angewendet. Dadurch entstehen neue Commit-Objekte mit anderen Hashes. Deshalb sollte man bereits geteilte Branches nur mit Bedacht rebasen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Welche dieser Werte sind gültige Ereignisse für on: in einem GitHub-Actions-Workflow?DevOpsGitHub ActionsMittelWähle alle zutreffenden Antworten.pushpull_requestworkflow_dispatchon_commitpush, pull_request und workflow_dispatch (manueller Start) sind dokumentierte Workflow-Trigger. Ein Ereignis namens on_commit gibt es nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein idempotentes Deployment-Skript führt bei wiederholter Ausführung mit gleichen Eingaben zum selben Ergebnis.DevOpsAutomatisierungMittelIst die Aussage richtig oder falsch?RichtigFalschIdempotenz bedeutet, dass eine Operation beliebig oft ausgeführt werden kann, ohne dass sich das Ergebnis nach der ersten Ausführung weiter ändert. Das ist eine Grundidee von Infrastructure as Code und Konfigurationsmanagement.ÜberprüfenNächste Frage
Ein Wartungsclient soll mit einem einzigen SAS-Token Service-Eigenschaften über Get Service Properties sowohl für Blob Storage als auch für Queue Storage desselben Kontos lesen. Welcher der folgenden Vorschläge deckt diese Anforderungen ab?CloudStorage-SAS-GeltungsbereicheMittelWähle eine Antwort.Ein Account SAS mit Blob und Queue als Diensten, Service als Ressourcentyp und den nötigen Leserechten.Ein Service SAS, das nur auf einen Blob-Container begrenzt ist.Ein User Delegation SAS, das nur einen einzelnen Blob zum Lesen freigibt.Zwei getrennte Service-SAS-Tokens, jeweils auf einen Container beziehungsweise eine Queue begrenzt.Account SAS kann mehrere Storage-Dienste und Service-Level-Operationen wie Get Service Properties freigeben. Dazu müssen Dienste, Ressourcentyp Service und passende Berechtigungen im Token enthalten sein. Objekt- oder containerbegrenzte SAS-Vorschläge decken diese Service-Operationen nicht ab; zwei Tokens erfüllen außerdem nicht die Ein-Token-Anforderung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Webanwendung auf einem Azure-App-Service-Plan stößt an die verfügbare Arbeitsspeichergrenze ihrer einzelnen Instanz. Das Team benötigt mehr RAM pro Instanz und will zunächst keine zusätzlichen Instanzen einsetzen. Welche Maßnahme passt dazu?CloudApp-Service-SkalierungEinfachWähle eine Antwort.Die Instanzanzahl desselben Plans erhöhen: Scale out.Nur die zugehörige Azure-SQL-Datenbank auf eine größere Stufe wechseln.Den App-Service-Plan auf eine passende größere Stufe mit mehr RAM pro Instanz skalieren: Scale up.Eine Autoscale-Regel einrichten, die bei hoher Last die Instanzanzahl erhöht.Scale up ändert die Leistungsstufe des App-Service-Plans und kann mehr RAM und CPU je Instanz bereitstellen. Scale out und regelbasiertes Autoscale ändern dagegen die Anzahl der Instanzen. Eine Datenbank wird separat skaliert und stellt der Webanwendung dadurch keinen zusätzlichen Instanz-RAM bereit. Die Planänderung wirkt auf alle Apps im selben Plan.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team muss unveränderbare Beweisdokumente in Azure Blob Storage aufbewahren, bis ein Verfahren abgeschlossen ist. Das Ende ist noch nicht bekannt; eine feste Anzahl von Aufbewahrungstagen ist nicht festgelegt. Welche Funktion passt unmittelbar zu dieser unbefristeten rechtlichen Aufbewahrung?CloudUnveränderbarer Blob-SpeicherMittelWähle eine Antwort.Blob-Soft-Delete mit einer festgelegten Anzahl von Tagen.Eine Lifecycle-Regel, die ältere Blobs automatisch löscht.Ein Legal Hold für die betroffenen Blob-Daten.Ein manuell erstellter Snapshot ohne Unveränderbarkeitsrichtlinie.Ein Legal Hold hält Blob-Daten im unveränderbaren WORM-Zustand, bis er explizit aufgehoben wird. Er passt deshalb zu einer rechtlichen Aufbewahrung mit unbekanntem Enddatum. Soft Delete ist zeitlich befristeter Wiederherstellungsschutz, eine Löschregel bewirkt das Gegenteil, und ein Snapshot allein ist kein Legal Hold.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Anwendung überschreibt regelmäßig Blockblobs in einem Azure-Storage-Konto ohne hierarchischen Namespace. Frühere Zustände sollen ohne eigens programmierte Sicherung als einzeln adressierbare Versionen erhalten bleiben, bis das Team sie ausdrücklich löscht; es sind keine Lifecycle-Löschregeln vorgesehen. Welche Funktion passt dazu?CloudBlob-VersionierungEinfachWähle eine Antwort.Manuell erzeugte Blob-Snapshots, ohne Änderungen an der Anwendung.Blob-Versionierung auf dem Storage-Konto aktivieren.Nur die Standardzugriffsebene des Kontos ändern.Nur Blob-Soft-Delete mit 365 Tagen Aufbewahrungsfrist aktivieren.Blob-Versionierung erzeugt bei den relevanten Schreiboperationen automatisch Versionen. Bei einer Änderung wird der bisherige Zustand zur vorherigen Version. Ohne Löschoperationen oder Lifecycle-Löschregeln bleiben frühere Versionen erhalten. Snapshots müssen explizit erstellt werden. Zugriffsebenen steuern keine Versionshistorie; Soft Delete bietet nur eine begrenzte Wiederherstellungsfrist, nicht die geforderte Aufbewahrung bis zur ausdrücklichen Löschung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für eine Azure-Subscription ist nur ein Cost-Management-Budget mit einer E-Mail-Warnung bei 100 Prozent tatsächlicher Kosten eingerichtet. Es gibt keine Action-Group-Automatisierung oder sonstige Abschaltlogik. Sobald diese Schwelle erreicht ist, stoppt das Budget automatisch die kostenverursachenden Ressourcen.CloudAzure-BudgetsEinfachIst die Aussage richtig oder falsch?RichtigFalschEin Cost-Management-Budget überwacht Ausgaben und löst konfigurierte Warnungen aus. Es stoppt weder Ressourcen noch deren Verbrauch. Eine automatische Abschaltung müsste zusätzlich und ausdrücklich implementiert werden; eine E-Mail-Budgetwarnung allein ist keine Kostensperre.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team nutzt ein monatliches Azure-Cost-Management-Budget. Es möchte eine Warnung erhalten, wenn die prognostizierten Gesamtkosten für den Monat das Budget voraussichtlich überschreiten, obwohl die bisher angefallenen Kosten noch darunter liegen. Welche Einstellung passt dazu?CloudAzure-KostenprognosenMittelWähle eine Antwort.Nur eine Warnung auf Basis tatsächlicher Kosten bei 100 Prozent konfigurieren.Eine Budgetwarnung auf Basis prognostizierter Kosten bei 100 Prozent konfigurieren.Das Budget erhöhen; dadurch entsteht automatisch eine Prognosewarnung bei jeder Kostenzunahme.Einen CostCenter-Tag an die Ressourcengruppe hängen; dieser erzeugt selbstständig die gewünschte Warnung.Budgetwarnungen können tatsächliche oder prognostizierte Kosten als Basis verwenden. Die Prognosewarnung vergleicht die erwarteten Gesamtkosten mit der Schwelle und ermöglicht eine Warnung vor deren tatsächlichem Erreichen. Eine reine Ist-Warnung erfüllt dieses Frühwarnziel nicht; Budgethöhe und Tags ersetzen keine Warnkonfiguration.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team möchte eine Azure Function als eigenes Linux-Containerimage mit zusätzlichen nativen Bibliotheken betreiben. Welche der folgenden Hostingoptionen unterstützen dieses Bereitstellungsmodell? Wähle alle zutreffenden Antworten.CloudFunctions-HostingMittelWähle alle zutreffenden Antworten.Ein Azure Functions Elastic Premium Plan auf Linux.Ein Dedicated App Service Plan auf Linux.Azure Functions Flex Consumption, das eigenes Containerhosting unterstützt.Azure Container Apps für containerisierte Azure Functions.Eigene Linux-Containerimages für Azure Functions werden von Elastic Premium, Dedicated App Service und Azure Container Apps unterstützt. Flex Consumption ist dagegen ein code-only-Hostingmodell und unterstützt keine eigenen Containerimages. Es geht hier ausdrücklich um Linux-Container, nicht Windows-Container.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure Function mit Storage-Queue-Trigger verarbeitet Nachrichten aus orders. Die unterstützte Queue-Erweiterung verwendet den unveränderten Standardwert maxDequeueCount. Eine bestimmte Nachricht schlägt bei jedem Verarbeitungsversuch fehl; der Functions-Host bleibt dabei funktionsfähig. Wie behandelt der Standardmechanismus diese Nachricht?CloudFunctions-Queue-TriggerMittelWähle eine Antwort.Nach insgesamt sechs fehlgeschlagenen Versuchen landet sie in orders-poison.Nach insgesamt fünf fehlgeschlagenen Versuchen einschließlich des ersten landet sie in orders-poison.Bereits nach dem ersten Fehler landet sie in der Service-Bus-Dead-Letter-Queue $DeadLetterQueue.Sie wird unabhängig von der Anzahl der Fehler unbegrenzt erneut verarbeitet.Der Standardwert maxDequeueCount ist fünf. Azure Functions zählt den ersten Versuch mit und legt die Nachricht nach fünf erfolglosen Versuchen in <originalqueuename>-poison ab, hier orders-poison. Das ist ein Mechanismus des Functions-Queue-Triggers und nicht die Dead-Letter-Queue von Service Bus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für ein Storage-Konto ohne hierarchischen Namespace sind Versionierung und Blob-Soft-Delete aktiviert. Ein Blockblob wurde ohne Angabe einer Versions-ID gelöscht. Danach wurde auch die gewünschte vorherige Version explizit gelöscht. Beide Vorgänge liegen innerhalb der Soft-Delete-Frist. Welche Abfolge stellt diese Version wieder als aktuellen Blob bereit?CloudBlob-WiederherstellungSchwerWähle eine Antwort.Undelete Blob aufrufen und anschließend die gewünschte wiederhergestellte Version zur aktuellen Version machen.Nur Undelete Blob aufrufen; das macht automatisch die älteste Version zum aktuellen Blob.Die Versionierung deaktivieren; dadurch wird die zuletzt gelöschte Version automatisch zum aktuellen Blob.Die Soft-Delete-Frist verlängern; dadurch erscheint die gelöschte Version automatisch als aktueller Blob.Beim Löschen ohne Versions-ID bleibt der frühere aktuelle Zustand als vorherige Version erhalten. Das anschließende Löschen einer konkreten Version macht diese bei aktiviertem Soft Delete wiederherstellbar. Undelete stellt soft-deleted Versionen wieder her, erzeugt aber bei aktivierter Versionierung keinen aktuellen Basisblob. Dazu muss die gewünschte Version anschließend zur aktuellen Version gemacht werden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine aktivierte Lifecycle-Regel in einem Standard-GPv2-Konto ohne hierarchischen Namespace filtert auf Blockblobs, das Präfix reports/2026/raw/ und den Blob-Index-Tag Project=Contoso. Sie verschiebt passende aktuelle Blobs nach 90 Tagen ohne Änderung in die Cool-Ebene. Alle folgenden Blobs sind 120 Tage unverändert und liegen in Hot; es gibt keine weiteren Regeln oder Einschränkungen. Bei welchen Blobs greift die Regel? Die Pfade enthalten jeweils den Containernamen. Wähle alle zutreffenden Antworten.CloudBlob-Lifecycle-RegelnSchwerWähle alle zutreffenden Antworten.reports/2026/raw/januar.csv, Blockblob, Project=Contoso.reports/2026/Raw/januar.csv, Blockblob, Project=Contoso.reports/2026/raw/februar.csv, Blockblob, Project=Fabrikam.reports/2026/raw/archiv/maerz.csv, Blockblob, Project=Contoso.Blobtyp, Präfix und Blob-Index-Tag werden mit UND verknüpft. Präfixe sind einschließlich des Containernamens zu vergleichen und unterscheiden Groß- und Kleinschreibung. Der Pfad mit Raw passt deshalb nicht zum Präfix mit raw; der Blob mit Project=Fabrikam erfüllt die Tag-Bedingung nicht. Ein längerer passender Pfad wie reports/2026/raw/archiv/ ist eingeschlossen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure Management Group Produktion enthält zwei untergeordnete Management Groups mit mehreren Subscriptions. Eine Initiative mit verbindlichen Ressourcenstandards soll für die gesamte Produktionshierarchie gelten. Es werden keine Ausnahmen konfiguriert. Wo sollte das Team die Initiative einmalig zuweisen?CloudManagement-GruppenEinfachWähle eine Antwort.An eine einzelne Ressourcengruppe in nur einer Produktions-Subscription.An ein CostCenter-Tag; gleiche Tag-Werte bilden automatisch einen Policy-Geltungsbereich.An eine benachbarte Management Group, die nicht über Produktion liegt.An die Management Group Produktion.Policy-Zuweisungen auf einer Management Group werden an untergeordnete Management Groups, Subscriptions und deren Ressourcen vererbt. Eine Zuweisung an Produktion deckt deshalb die gesamte beschriebene Hierarchie ab. Eine Ressourcengruppe ist zu eng, Tags sind kein Zuweisungsscope, und Geschwistergruppen vererben nicht gegenseitig.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In einer Ressourcengruppe existieren bereits Ressourcen ohne CostCenter-Tag. Anschließend wird eine deny-Policy zugewiesen, die diesen Tag für die betreffenden Ressourcentypen verlangt. Es sind weder Remediation noch zusätzliche Automatisierungen eingerichtet. Was bewirkt die nächste Compliance-Auswertung für die vorhandenen Ressourcen ohne Tag?CloudAzure-Policy-BestandMittelWähle eine Antwort.Sie meldet die Ressourcen als nicht konform, löscht sie aber nicht und ergänzt keinen Tag.Sie löscht die Ressourcen automatisch, damit die Ressourcengruppe wieder konform ist.Sie verschiebt die Ressourcen automatisch in eine Ressourcengruppe ohne die Policy.Sie ergänzt automatisch den CostCenter-Tag mit einem Standardwert.Der deny-Effekt blockiert passende neue oder aktualisierte Ressourcenanforderungen. Bei der Auswertung bereits existierender Ressourcen wird Nichtkonformität gemeldet. Eine deny-Zuweisung repariert, verschiebt oder löscht diesen Bestand nicht automatisch.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Entwickler darf laut Azure RBAC Ressourcen in einer Ressourcengruppe erstellen. Eine dort wirksame Azure-Policy-Zuweisung mit deny verbietet jedoch Ressourcen ohne CostCenter-Tag. Der Entwickler versucht, über Azure Resource Manager eine vom Policy-Filter erfasste Ressource ohne diesen Tag anzulegen. Was passiert ohne Ausnahme?CloudAzure-Policy-DurchsetzungEinfachWähle eine Antwort.Azure RBAC hat Vorrang; die Ressource wird unverändert erstellt.Die Ressource wird erstellt, und deny ergänzt automatisch einen CostCenter-Wert.Azure Policy blockiert die Erstellung trotz der vorhandenen RBAC-Berechtigung.Die Ressource wird erstellt, und deny entzieht danach die RBAC-Rolle des Entwicklers.RBAC beantwortet, ob der Entwickler die Operation ausführen darf. Azure Policy prüft zusätzlich, ob die Ressource die geltenden Standards erfüllt. Eine passende deny-Policy blockiert die nichtkonforme Erstellung vor dem Resource Provider. Sie ergänzt keine Tags und ändert keine RBAC-Rollen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine neu zugewiesene Azure Policy mit modify soll das Tag CostCenter aus der Ressourcengruppe auf unterstützte Ressourcen übertragen. Die vorhandenen Ressourcen ohne Tag werden als nicht konform gemeldet. Das Team möchte genau diese Bestandsressourcen korrigieren, ohne jede einzeln neu bereitzustellen. Welche Maßnahmen gehören dazu? Wähle alle zutreffenden Antworten.CloudAzure-Policy-RemediationSchwerWähle alle zutreffenden Antworten.Für die Zuweisung eine verwaltete Identität mit den zur Änderung erforderlichen Rollen sicherstellen.Nur eine erneute Compliance-Auswertung abwarten; diese schreibt fehlende Tags automatisch.modify durch audit ersetzen; audit schreibt die fehlenden Tag-Werte in den Bestand.Eine Remediation Task für die Zuweisung und die betroffenen Bestandsressourcen ausführen.Bei der Compliance-Auswertung verändert modify vorhandene Ressourcen nicht, sondern meldet sie als nicht konform. Bestandsressourcen werden über eine Remediation Task korrigiert. Die dafür verwendete verwaltete Identität der Zuweisung benötigt passende Berechtigungen. audit protokolliert Nichtkonformität und repariert nichts.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Ressource in West Europe wird mit einer unterstützten Azure-Resource-Manager-Move-Operation innerhalb derselben Subscription in eine andere Ressourcengruppe verschoben. Die Zielressourcengruppe hat North Europe als Standort für ihre Metadaten. Welche Aussage trifft zu?CloudAzure-RessourcenverschiebungMittelWähle eine Antwort.Die Ressource zieht automatisch physisch nach North Europe um und behält ihre Ressourcen-ID.Die Ressource bleibt in West Europe, und ihre Ressourcen-ID ändert sich wegen des neuen Ressourcengruppennamens.Die Ressource bleibt in West Europe, und ihre Ressourcen-ID bleibt trotz anderer Ressourcengruppe identisch.Die Ressource zieht physisch nach North Europe um, weil alle Ressourcen den Standort ihrer Ressourcengruppe übernehmen.Ein Move zwischen Ressourcengruppen verändert die Ressourcen-ID, da diese den Ressourcengruppennamen enthält. Er ist keine Migration in eine andere physische Region. Der Standort einer Ressourcengruppe bezeichnet die Speicherung ihrer Metadaten; ihre Ressourcen dürfen in anderen Regionen liegen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Dienst soll einen zeitlich begrenzten Lesezugriff auf einen einzelnen Blob per SAS ausgeben. Der ausstellende Dienst besitzt die nötigen Microsoft-Entra-Berechtigungen, darf aber keinen Storage-Kontoschlüssel verwenden. Welcher SAS-Typ ist dafür geeignet?CloudStorage-SASMittelWähle eine Antwort.Ein Service SAS, dessen Signatur mit dem Storage-Kontoschlüssel erstellt wird.Ein Account SAS, dessen Signatur mit dem Storage-Kontoschlüssel erstellt wird.Ein User Delegation SAS, signiert mit einem über Microsoft Entra erhaltenen Delegierungsschlüssel.Ein Ad-hoc-Service-SAS; das Weglassen einer Stored Access Policy ersetzt den Signaturschlüssel.Ein User Delegation SAS wird mit einem Delegierungsschlüssel signiert, der mithilfe von Microsoft-Entra-Anmeldedaten bezogen wird. Damit muss der Aussteller keinen Storage-Kontoschlüssel verwenden. Service SAS und Account SAS beruhen dagegen auf Shared Key; auch ein Ad-hoc-Service-SAS benötigt diese Signatur.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Blob-Download-Dienst hat mehrere Service-SAS-Tokens ausgegeben, die auf dieselbe Stored Access Policy im Container verweisen. Ein Administrator soll diese Zugriffe zentral widerrufen, ohne den Storage-Kontoschlüssel zu rotieren. Welche Aussagen dazu stimmen? Wähle alle zutreffenden Antworten.CloudSAS-WiderrufSchwerWähle alle zutreffenden Antworten.Die gleiche Stored Access Policy kann auch bereits ausgegebene Account-SAS-Tokens zentral widerrufen.Das Löschen der referenzierten Stored Access Policy widerruft die daran gebundenen Service-SAS-Zugriffe.Das Entfernen der Policy-ID aus einer lokal gespeicherten Kopie eines Tokens widerruft alle bereits verteilten Originaltokens.Das Setzen der Ablaufzeit der Policy in die Vergangenheit lässt die daran gebundenen Service-SAS-Zugriffe ablaufen.Service SAS kann auf eine Stored Access Policy verweisen. Durch das Löschen der Policy oder eine Ablaufzeit in der Vergangenheit können die gebundenen SAS-Zugriffe zentral widerrufen werden. Account SAS und User Delegation SAS unterstützen diese Bindung nicht. Das Ändern einer lokalen Tokenkopie ändert weder die serverseitige Policy noch verteilte Originaltokens.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Storage-Konto ohne hierarchischen Namespace hat Blob-Soft-Delete mit sieben Tagen Aufbewahrung, aber keine Versionierung. Gestern wurde nur die Metadaten-Eigenschaft eines aktiven Blobs geändert; sein Inhalt blieb unverändert. Warum lässt sich der frühere Metadatenwert nicht aus einem automatisch erzeugten Soft-Delete-Snapshot zurückholen?CloudBlob-DatenschutzMittelWähle eine Antwort.Blob-Soft-Delete legt Sicherungen ausschließlich beim Löschen eines Containers an.Die Aufbewahrungsfrist beginnt beim Anlegen des Blobs und ist für ältere Blobs abgelaufen.Undelete Blob kann grundsätzlich keine Snapshots wiederherstellen.Eine reine Änderung von Blob-Metadaten erzeugt keinen Soft-Delete-Snapshot.Blob-Soft-Delete schützt nicht vor reinen Schreiboperationen auf Metadaten oder Eigenschaften. Dafür entsteht kein Soft-Delete-Snapshot. Blob-Versionierung kann dagegen auch Änderungen durch Set Blob Metadata festhalten. Die Soft-Delete-Frist beginnt bei der geschützten Löschung beziehungsweise Überschreibung, nicht bei der ursprünglichen Erstellung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein selbst geschriebener Worker ruft eine noch gültige Nachricht mit Get Messages aus Azure Queue Storage ab. Er beendet sich vor der Verarbeitung und ruft weder Delete Message noch Update Message auf. Was ist nach Ablauf des Visibility Timeouts zu erwarten, solange die Nachricht nicht abgelaufen ist? Es gibt keine zusätzliche Poison-Queue-Logik.CloudStorage-Queue-VerarbeitungEinfachWähle eine Antwort.Get Messages hat die Nachricht bereits endgültig gelöscht.Die Nachricht bleibt bis zum Aufruf von Delete Message dauerhaft unsichtbar.Queue Storage verschiebt die Nachricht automatisch in eine Dead-Letter-Queue.Die Nachricht wird wieder für einen Abruf verfügbar.Get Messages ruft eine Nachricht ab und macht sie vorübergehend unsichtbar, löscht sie aber nicht. Nach Ablauf des Visibility Timeouts kann sie erneut abgerufen werden, wenn sie nicht gelöscht oder abgelaufen ist. Ein Consumer muss nach erfolgreicher Verarbeitung explizit löschen. Queue Storage selbst führt hier keine automatische Dead-Letter-Verarbeitung aus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team führt CostCenter-Tags für Azure-Ressourcen ein und möchte außerdem Zugangsdaten als Tags hinterlegen. Welche Aussagen sind für die Umsetzung korrekt? Wähle alle zutreffenden Antworten.CloudAzure-TaggingMittelWähle alle zutreffenden Antworten.Ein Tag an einer Ressourcengruppe wird ohne weitere Konfiguration automatisch an alle enthaltenen Ressourcen vererbt.Azure-Tags sind im Klartext gespeichert und sollten keine Zugangsdaten enthalten.Für Ressourcentypen mit Tag-Unterstützung lässt sich die Übernahme eines Ressourcengruppen-Tags mit einer passenden Azure-Policy-modify-Regel umsetzen.Management Groups können wie Ressourcengruppen mit Azure-Ressourcentags versehen werden.Tags werden nicht automatisch von Subscriptions oder Ressourcengruppen an Ressourcen vererbt. Für unterstützte Ressourcen kann eine geeignete Policy die Übernahme umsetzen; bei vorhandenem Bestand ist gegebenenfalls Remediation nötig. Tags sind Klartext und können in mehreren Verwaltungsansichten sichtbar sein, weshalb keine Zugangsdaten hineingehören. Management Groups unterstützen diese Ressourcentags nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Workflow hat ausschließlich on.push mit branches: [main] und paths: ["infra/**"]. Ein kleiner Push auf feature/network ändert nur infra/main.tf; Diff-Limits und weitere Trigger spielen keine Rolle. Was passiert?DevOpsBranch- und PfadfilterMittelWähle eine Antwort.Der Workflow startet, weil mindestens einer der beiden Filter passt.Der Workflow startet automatisch auf main statt auf feature/network.Der Workflow startet, weil der Pfadfilter den Branchfilter überschreibt.Der Workflow startet nicht, weil beide Filter erfüllt sein müssen.Bei gleichzeitig gesetzten Branch- und Pfadfiltern müssen beide passen. infra/main.tf erfüllt den Pfadfilter, feature/network aber nicht branches: [main]. Die Filter ändern nicht den Branch des Ereignisses.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Mehrere Workflows sollen dieselben drei Setup-Schritte wiederverwenden. Die Schritte müssen im bereits gewählten Job und auf dessen Runner laufen; davor und danach bleiben weitere Schritte möglich. Welche Abstraktion passt direkt?DevOpsComposite ActionsEinfachWähle eine Antwort.Ein zusätzlicher schedule-Eintrag.Eine neue Job-Abhängigkeit mit needs.Ein wiederverwendbarer Workflow, der als zusätzlicher Job mit uses aufgerufen wird.Eine Composite Action, die als uses-Schritt eingebunden wird.Eine Composite Action bündelt Schritte und wird als einzelner Schritt eines bestehenden Jobs verwendet. Ein wiederverwendbarer Workflow wird dagegen direkt als Job aufgerufen. schedule plant Starts und needs ordnet Jobs, statt Setup-Schritte zu bündeln.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Ubuntu-Runner führt einen Job in einem Linux-Container aus, in dessen Image Bash installiert ist. Ein run-Skript verwendet Bash-Arrays. Weder defaults.run.shell noch die Schritt-Shell wurden festgelegt. Welche Anpassung wählt für diesen Schritt ausdrücklich die erforderliche Shell?DevOpsShell in Job-ContainernMittelWähle eine Antwort.runs-on auf ubuntu-latest setzen, obwohl dieser Wert bereits verwendet wird.Dem run-Schritt shell: bash hinzufügen.Nur env.SHELL: /bin/bash setzen, ohne shell festzulegen.Bash nur auf dem Host-Runner installieren, ohne die Shell im Job-Container auszuwählen.Die Standardshell für run-Schritte in Job-Containern ist sh, nicht bash. shell: bash überschreibt dies für den Schritt, sofern Bash im Image vorhanden ist. Runnerwahl und eine SHELL-Umgebungsvariable ersetzen diese Einstellung nicht. Eine Host-Installation wählt ebenfalls keine Shell für den run-Schritt im Container aus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein manueller GitHub-Actions-Workflow deklariert dry_run unter workflow_dispatch.inputs mit type: boolean. Ein if-Ausdruck soll den Wert direkt als Boolean lesen, ohne eine Zeichenfolge zu vergleichen. Welcher Zugriff ist dokumentiert?DevOpsManuelle boolesche EingabenMittelWähle eine Antwort.${{ github.event.inputs.dry_run }} als stets typgetreuer Boolean.${{ env.dry_run }} ohne vorherige env-Zuweisung.${{ inputs.dry_run }}.${{ vars.dry_run }} ohne konfigurierte Variable.Der inputs-Kontext bewahrt boolesche Eingaben als Booleans. github.event.inputs stellt diese dagegen als Zeichenfolgen bereit. Die Deklaration einer Workflow-Eingabe erzeugt weder eine env- noch eine vars-Variable.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In einem Ubuntu-Job berechnet ein run-Schritt die Versionsnummer 1.2.3. Ein späterer run-Schritt desselben Jobs soll RELEASE_VERSION als Umgebungsvariable erhalten. Welche Zeile stellt dies über den dokumentierten GitHub-Actions-Mechanismus bereit?DevOpsVariablen zwischen SchrittenEinfachWähle eine Antwort.echo "RELEASE_VERSION=1.2.3" >> "$GITHUB_OUTPUT"export RELEASE_VERSION=1.2.3, ohne weitere Speicherung.echo "RELEASE_VERSION=1.2.3" >> "$GITHUB_STEP_SUMMARY"echo "RELEASE_VERSION=1.2.3" >> "$GITHUB_ENV"GITHUB_ENV stellt den Wert nachfolgenden Schritten desselben Jobs als Umgebungsvariable bereit. Ein reines export bleibt im aktuellen Shellprozess. GITHUB_OUTPUT definiert Schrittausgaben und GITHUB_STEP_SUMMARY Markdown-Zusammenfassungen, keine automatische Umgebungsvariable.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Workflow setzt env.MODE auf workflow, ein Job setzt env.MODE auf job und nur dessen erster Schritt setzt env.MODE auf step. Kein Schritt schreibt in GITHUB_ENV. Die Schritte lesen MODE aus ihrer Umgebung. Wähle alle zutreffenden Antworten.DevOpsGeltungsbereiche von envMittelWähle alle zutreffenden Antworten.Der erste Schritt liest workflow, weil Workflow-Variablen immer höchste Priorität haben.Der erste Schritt liest step.Der zweite Schritt ohne eigene MODE-Zuweisung liest job.Der zweite Schritt liest step, weil der erste Schritt den Jobwert dauerhaft überschrieben hat.Die spezifischste env-Definition gewinnt während ihres Geltungsbereichs. Eine Schrittdefinition überschreibt Job und Workflow nur während dieses Schritts. Im nachfolgenden Schritt ohne eigene Definition gilt wieder der Jobwert.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Nach dem Checkout enthält ein Repository infra/ als vorhandenes Verzeichnis. Alle folgenden run-Schritte eines einzelnen GitHub-Actions-Jobs sollen dort arbeiten, ohne jeweils mit cd zu beginnen. Welche Job-Einstellung erfüllt dies direkt?DevOpsArbeitsverzeichnis für run-SchritteEinfachWähle eine Antwort.env.WORKDIR: infra.name: infra.defaults.run.working-directory: ./infra.runs-on: ./infra.defaults.run.working-directory legt das Standard-Arbeitsverzeichnis der run-Schritte im Job fest. Eine frei benannte Umgebungsvariable ändert das Arbeitsverzeichnis nicht automatisch. name beschriftet und runs-on wählt einen Runner.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Workflow enthält uses: ./.github/actions/check-config und soll genau diese relative Referenz behalten. Die Action-Dateien liegen nur im Repository; der frische GitHub-gehostete Runner hat noch keinen Checkout erhalten. Was muss vor diesem Schritt bereitgestellt werden?DevOpsLokale Actions aus dem WorkspaceMittelWähle eine Antwort.Ein Checkout des Repositories in den Workspace, sodass der relative Action-Pfad vorhanden ist.Nur defaults.run.working-directory auf den Action-Pfad setzen, ohne Dateien herunterzuladen.Nur der uses-Referenz @main anhängen; der lokale ./-Pfad lädt damit das Repository automatisch.Nur action.yml im Repository in action.yaml umbenennen, ohne einen Checkout auszuführen.Die ./-Referenz ist relativ zu github.workspace und benötigt die Action-Dateien dort. Die offizielle Dokumentation verlangt hierfür einen vorgelagerten Checkout. run-Defaults laden keine Dateien und steuern keine uses-Referenz; ein @main-Zusatz wandelt einen lokalen Pfad nicht in einen Repository-Download um. Beide Metadaten-Dateinamen sind zulässig, ersetzen aber den Checkout nicht. Die alternative $/-Syntax ist im Szenario bewusst nicht gewählt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Workflow hat nur on.push.paths mit diesen Mustern in dieser Reihenfolge: "infra/**", "!infra/docs/**", "infra/docs/runbook.md". Ein kleiner Push ändert ausschließlich infra/docs/runbook.md; keine Diff-Limits oder weiteren Filter greifen. Welches Ergebnis folgt?DevOpsReihenfolge von PfadmusternSchwerWähle eine Antwort.Der Workflow startet nicht, weil ein negatives Muster endgültig ausschließt.Der Workflow startet, weil das letzte positive Muster den zuvor ausgeschlossenen Pfad wieder einschließt.Der Workflow startet nicht, weil paths nur Verzeichnisse und keine Einzeldateien unterstützt.Die Konfiguration ist ungültig, weil positive Muster nie nach negativen stehen dürfen.Pfadmuster werden in der angegebenen Reihenfolge berücksichtigt. Ein negatives Muster schließt aus, ein später passendes positives Muster nimmt den Pfad wieder auf. Hier wird runbook.md zuletzt explizit eingeschlossen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Repository app ruft einen wiederverwendbaren Workflow aus Repository ci-library auf. Dieser führt actions/checkout ohne repository-Override aus. Welcher Inhalt wird dabei ausgecheckt?DevOpsRepository im wiederverwendbaren WorkflowMittelWähle eine Antwort.Das Repository app, das den aufrufenden Workflow enthält.Immer ci-library, weil dort der ausgeführte Workflow gespeichert ist.Beide Repositorys automatisch in zwei Unterverzeichnisse.Nur die YAML-Datei des wiederverwendbaren Workflows.Actions im aufgerufenen Workflow laufen im Kontext des Aufrufers. Die offizielle Dokumentation nennt ausdrücklich actions/checkout: Ohne abweichende Repository-Auswahl wird der Inhalt des Aufrufer-Repositories ausgecheckt, nicht die Workflow-Bibliothek.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team hat .github/workflows/test.yml mit on: workflow_call vorbereitet. Ein anderer Workflow soll diesen vollständigen Workflow im selben Repository aufrufen. Wo steht der Aufruf?DevOpsWiederverwendbare WorkflowsEinfachWähle eine Antwort.Unter steps als run: ./.github/workflows/test.yml.Unter jobs.test.uses: ./.github/workflows/test.yml.Unter on als uses: ./.github/workflows/test.yml.Unter jobs.test.runs-on: ./.github/workflows/test.yml.Wiederverwendbare Workflows werden mit uses direkt auf Job-Ebene aufgerufen, nicht als Schritt. run startet Shellbefehle, on definiert Ereignisse und runs-on wählt Runner.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein zentraler Build-Workflow deklariert unter workflow_call die Eingabe replicas als number und dry_run als boolean. Die Aufrufer sollen den dokumentierten Eingabevertrag erfüllen. Wähle alle zutreffenden Antworten.DevOpsTypisierte Workflow-EingabenMittelWähle alle zutreffenden Antworten.Der aufrufende Job übergibt die Eingaben unter with.Für workflow_call-Eingaben sind boolean, number und string dokumentierte Typen.Der Aufrufer darf eine nicht deklarierte Eingabe region zusätzlich übergeben; sie wird stillschweigend ignoriert.replicas kann ohne Typabgleich als beliebiges YAML-Objekt übergeben werden.Eingaben werden im aufrufenden Job unter with übergeben und müssen zum deklarierten Typ passen. workflow_call unterstützt boolean, number und string; nicht deklarierte Eingaben verursachen einen Fehler. Ein beliebiges Objekt erfüllt number nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Repository hat main als Default-Branch. Ein auf main vorhandener Workflow wird per schedule ausgelöst. Ohne abweichenden Checkout im Job verwendet der geplante Lauf den neuesten Commit des Default-Branches als Ausführungsstand.DevOpsGeplante Workflow-AusführungEinfachIst die Aussage richtig oder falsch?RichtigFalschGeplante Workflows laufen auf dem neuesten Commit des Default-Branches. Ein späterer ausdrücklich abweichender Checkout wäre eine separate Auswahl des Arbeitscodes und ist hier ausgeschlossen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Actions-Job läuft auf einem Ubuntu-Runner in einem Job-Container. Im selben Job ist ein Redis-Service mit dem Schlüssel redis definiert; Redis lauscht auf Port 6379. Es gibt keine Host-Port-Zuordnung. Welche Adresse nutzt der Test im Job-Container?DevOpsIntegrationstests im Job-ContainerEinfachWähle eine Antwort.redis:6379.localhost:6379, weil localhost automatisch alle Service-Container zusammenfasst.Die öffentliche IP-Adresse des GitHub-Runners mit Port 6379.localhost:${{ job.services.redis.ports[6379] }}, obwohl kein Host-Port veröffentlicht wurde.GitHub verbindet Job-Container und Service-Container über ein gemeinsames Docker-Bridge-Netz. Der Service-Schlüssel wird zum Hostnamen, hier redis. Für Kommunikation innerhalb dieses Netzes ist keine Host-Port-Zuordnung nötig; localhost bezeichnet den Job-Container selbst.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Job läuft direkt auf ubuntu-latest, nicht in einem Job-Container. Der PostgreSQL-Service heißt db und veröffentlicht mit ports: [5432] seinen Container-Port auf einen zufälligen freien Host-Port. Welcher Endpunkt ist für den Test auf dem Runner dokumentiert?DevOpsDynamisch veröffentlichte Service-PortsSchwerWähle eine Antwort.db:5432, unabhängig davon, ob der Test im Docker-Netz läuft.localhost:5432, weil ein einzelner Portwert immer denselben Host-Port erzwingt.localhost:${{ job.services.db.ports[5432] }}.localhost:${{ job.services.db.id }}.Ohne angegebenen Host-Port wird ein freier Host-Port zugewiesen. Der Service-Kontext ordnet den Container-Port 5432 dem tatsächlich veröffentlichten Host-Port zu. Auf dem Runner wird über localhost darauf zugegriffen; die Container-ID ist keine Portnummer.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein CI-Job soll Terraform-Dateien im Repository und in dessen Unterverzeichnissen auf kanonische Formatierung prüfen. Er soll keine Dateien umschreiben und bei Formatierungsabweichungen einen Nicht-Null-Exitstatus liefern. Welcher Befehl passt?DevOpsTerraform-Formatierung in CIMittelWähle eine Antwort.terraform fmt -recursiveterraform validateterraform fmt -list=falseterraform fmt -check -recursive-check prüft die Formatierung ohne Dateien zu überschreiben und liefert bei Abweichungen einen Nicht-Null-Exitstatus. -recursive erweitert die Prüfung auf Unterverzeichnisse. fmt ohne -check kann Dateien umschreiben; -list=false blendet nur die Dateiliste aus. validate prüft andere Eigenschaften.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein CI-Job soll ein wiederverwendbares Terraform-Modul statisch auf Syntax und interne Konsistenz prüfen, ohne das konfigurierte Remote-Backend zu initialisieren. Provider und externe Module dürfen heruntergeladen werden. Wähle alle zutreffenden Antworten.DevOpsTerraform-Modulprüfung ohne BackendMittelWähle alle zutreffenden Antworten.terraform init -backend=false kann die für validate benötigten Abhängigkeiten installieren, ohne das Backend zu initialisieren.terraform validate prüft dabei erfolgreiches Anmelden und Erreichbarkeit aller produktiven Provider-APIs.Ein erfolgreiches validate beweist, dass jedes spätere Deployment mit beliebigen Laufzeitwerten erfolgreich sein wird.terraform validate ist für automatische Modulprüfungen in CI vorgesehen.validate benötigt ein initialisiertes Arbeitsverzeichnis mit installierten Plugins und Modulen. init -backend=false bereitet es ohne Backend-Zugriff vor. validate prüft keine Remote-Dienste oder Provider-APIs und ersetzt weder einen kontextbezogenen Plan noch eine erfolgreiche Bereitstellung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein CI-Skript verwendet terraform plan -detailed-exitcode. Terraform beendet einen fehlerfreien Plan mit Exitcode 2. Der Job soll geplante Änderungen zur Prüfung vorlegen und echte Planfehler gesondert behandeln. Wie ist genau dieser Exitcode einzuordnen?DevOpsTerraform-Plan-Exitcodes in CISchwerWähle eine Antwort.Als Syntaxfehler der Terraform-Konfiguration.Als erfolgreich erstellter Plan mit geplanten Änderungen; nicht allein deshalb als Planfehler.Als erfolgreich erstellter Plan ohne Änderungen.Als Bestätigung, dass die Änderungen bereits angewendet wurden.Mit -detailed-exitcode bedeutet 0 Erfolg ohne Änderungen, 1 Fehler und 2 Erfolg mit Änderungen. Ein CI-Skript muss diese dokumentierte Unterscheidung berücksichtigen. plan führt die vorgeschlagenen Änderungen noch nicht aus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Terraform-Projekt ab Version 0.14 hat eine gültige .terraform.lock.hcl mit einer ausgewählten azurerm-Provider-Version. Die Versionsconstraints passen weiterhin. Lokale Entwicklung und CI sollen dieselbe Provider-Auswahl verwenden. Wähle alle zutreffenden Antworten.DevOpsReproduzierbare Provider-AuswahlMittelWähle alle zutreffenden Antworten.Die Lockdatei sollte mit dem Projekt versioniert werden.terraform init wählt bei vorhandener gültiger Auswahl grundsätzlich die neueste kompatible Provider-Version, auch ohne -upgrade.terraform init verwendet ohne -upgrade die bereits gespeicherte Provider-Version erneut.terraform init -upgrade kann die gespeicherte Auswahl durch eine neuere Version innerhalb der Constraints ersetzen.Die Lockdatei gehört in die Versionskontrolle. Ohne -upgrade berücksichtigt init vorhandene Provider-Auswahlen und verwendet diese erneut; eine neuere verfügbare Version allein ersetzt sie nicht. -upgrade veranlasst dagegen eine neue Auswahl unter Beachtung der Constraints.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Deployment-Prozess hat terraform plan -out=tfplan ausgeführt und genau diesen gespeicherten Plan geprüft. Datei und Arbeitsumgebung stehen unverändert bereit; es gab keine zwischenzeitliche State-Änderung. Nun soll die Apply-Phase genau den gespeicherten Plan nutzen. Wähle alle zutreffenden Antworten.DevOpsGeprüften Terraform-Plan anwendenSchwerWähle alle zutreffenden Antworten.terraform apply -auto-approve ohne Planargument garantiert die Ausführung genau des zuvor gespeicherten Plans.terraform apply tfplan führt die im gespeicherten Plan enthaltenen Operationen aus.terraform apply -var="region=west" tfplan kann den gespeicherten Plan während Apply mit neuen Planungswerten verändern.Bei terraform apply tfplan ist keine zusätzliche interaktive Planbestätigung vorgesehen; das Übergeben der Datei gilt als Zustimmung.Mit Plan-Datei verwendet apply den gespeicherten Plan und fragt nicht erneut nach Bestätigung. Ohne Planargument entsteht dagegen ein neuer Plan, auch mit -auto-approve. Zusätzliche Planungsoptionen wie -var sind im Saved-Plan-Modus nicht zulässig.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Feature-Branch enthält mehrere experimentelle Commits und den unabhängigen Bugfix-Commit 8c12ab3. Auf release fehlt dieser nichtleere Fix. Du willst nur dessen Änderung als neuen Commit übernehmen, nicht die gesamte Feature-Historie. Die Arbeitskopie ist sauber, der Fix lässt sich konfliktfrei anwenden. Du stehst auf release. Was passt?Git & GitHubGezielte Commit-ÜbernahmeMittelWähle eine Antwort.git merge featuregit cherry-pick 8c12ab3git cherry-pick --no-commit 8c12ab3git merge --squash featuregit cherry-pick übernimmt die Änderung des angegebenen Commits und erstellt standardmäßig einen neuen Commit auf dem aktuellen Branch. Ein Merge integriert den Feature-Branch, und ein Squash-Merge sammelt ebenfalls dessen gesamte Änderung. --no-commit würde den Fix nur in Arbeitskopie und Index anwenden, ohne den geforderten Commit zu erstellen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Datei config/local.json ist bereits in Git versioniert. Wenn du ausschließlich config/local.json in die .gitignore einträgst, bleibt sie versioniert und Git berücksichtigt weitere Änderungen an ihr weiterhin.Git & GitHubIgnore-Regeln und TrackingEinfachIst die Aussage richtig oder falsch?RichtigFalsch.gitignore gilt für absichtlich nicht versionierte Dateien. Bereits versionierte Dateien werden durch eine neue Ignore-Regel nicht aus dem Index entfernt. Das Beenden des Trackings wäre ein zusätzlicher, separater Schritt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
build/ und seine Dateien sind noch nicht versioniert. Die einzige .gitignore liegt im Repository-Stamm und enthält zuerst build/ und danach !build/keep.txt. Du möchtest keep.txt ohne git add -f aufnehmen, alle anderen direkten Dateien unter build/ aber ignorieren. Welche Änderung ermöglicht dies? Es gibt keine weiteren wirksamen Ignore-Regeln.Git & GitHubIgnore-Ausnahmen bei VerzeichnissenSchwerWähle eine Antwort.Die erste Regel durch build/* ersetzen und !build/keep.txt danach beibehalten.Die zwei vorhandenen Regeln nur in umgekehrter Reihenfolge schreiben.build/ beibehalten und die zweite Regel durch !keep.txt ersetzen.build/ beibehalten und !build/keep.txt ein zweites Mal anhängen.Ein vollständig ausgeschlossenes Elternverzeichnis wird von Git nicht nach weiteren Dateien durchsucht. Eine Negation für keep.txt kann build/ daher nicht überwinden. build/* ignoriert dagegen die Inhalte, ohne das Elternverzeichnis selbst auszuschließen; die nachfolgende Negation kann die direkte Datei keep.txt wieder einschließen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In einer bereits versionierten Datei liegen zwei getrennte Änderungshunks: ein Bugfix und eine noch unfertige Erweiterung. Der Index ist unverändert. Welcher Befehl lässt dich interaktiv nur den Bugfix-Hunk für den nächsten Commit auswählen, ohne die Erweiterung aus der Arbeitsdatei zu entfernen?Git & GitHubSelektives StagingEinfachWähle eine Antwort.git add --refresh -- src/parser.jsgit add --dry-run -- src/parser.jsgit add --patch -- src/parser.jsgit add --all -- src/parser.jsgit add --patch bietet die Unterschiede zwischen Index und Arbeitsdatei hunkweise zur Auswahl an. Nicht gewählte Änderungen bleiben in der Arbeitsdatei. --refresh aktualisiert nur Stat-Informationen, --dry-run verändert den Index nicht und --all übernimmt die Dateiänderungen ohne diese Auswahl.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
main ist ein direkter Vorfahr von feature; ein Fast-forward wäre möglich. Du stehst auf main, die Arbeitskopie ist sauber und es gibt keine Konflikte. Die Integration soll trotzdem einen Merge-Commit mit beiden Eltern erzeugen. Welcher Befehl fordert genau dies an?Git & GitHubFast-forward und Merge-CommitsMittelWähle eine Antwort.git merge --ff-only featuregit merge --squash featuregit merge --no-commit featuregit merge --no-ff feature--no-ff erzeugt auch dann einen Merge-Commit, wenn ein Fast-forward möglich wäre. --ff-only verschiebt in diesem Szenario nur den Branch-Zeiger. --squash erzeugt keinen Merge-Commit, und --no-commit allein kann einen Fast-forward nicht verhindern.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Pull-Request enthält fünf neue, nichtleere Commits. Das Repository erlaubt sowohl "Merge pull request" als auch "Squash and merge". Nach dem Merge soll auf main genau ein neuer Commit die zusammengefasste Änderung repräsentieren, nicht fünf einzelne Feature-Commits plus Merge-Commit. Welche Methode passt?Git & GitHubPull-Request-MergehistorieMittelWähle eine Antwort.Merge pull request, weil es die fünf Commits automatisch zu einem Commit umschreibt.Rebase and merge, weil es sämtliche Feature-Commits automatisch zusammenfasst.Merge pull request, weil sein Merge-Commit die fünf Feature-Commits aus der Historie entfernt.Squash and merge, weil es die PR-Änderungen in einem neuen Commit auf dem Basisbranch bündelt.Squash and merge fasst die Änderungen der PR-Commits in einem neuen Commit auf dem Basisbranch zusammen. Merge pull request erhält die einzelnen Commits und ergänzt einen Merge-Commit. Rebase and merge übernimmt die einzelnen Commits mit neuen Hashes, statt sie zu einem einzigen Commit zu bündeln.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für main erzwingt eine GitHub-Branch-Protection erforderliche Statuschecks und "Require branches to be up to date before merging". Nach erfolgreichen Checks deines PRs wurde main durch einen anderen PR weiterentwickelt; dein Head-Branch ist nun nicht mehr aktuell. Du hast keine Bypass-Rechte und verwendest keine Merge Queue. Was ist für den regulären Merge erforderlich?Git & GitHubGeschützte Branches und StatuschecksSchwerWähle eine Antwort.Die alte erfolgreiche Prüfung genügt, weil der Head-Branch unverändert geblieben ist.Eine zusätzliche Review-Freigabe ersetzt das Aktualisieren des Head-Branches.Der Head-Branch muss den aktuellen Stand von main integrieren; die erforderlichen Checks müssen für den aktuellen zu prüfenden Stand wieder erfüllt sein.Das Umbenennen des Head-Branches macht die bisherigen Checks wieder gültig.Die aktivierte Up-to-date-Anforderung ist die strikte Variante erforderlicher Statuschecks. Der Branch muss vor dem Merge mit dem aktuellen Basisbranch abgeglichen sein. Erforderliche Checks müssen für den aktuellen relevanten Commit- beziehungsweise Test-Merge-Stand erfüllt sein; alte Erfolge oder zusätzliche Reviews ersetzen diese Bedingung nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du möchtest einen Release mit einem annotierten Git-Tag markieren, der eine Nachricht und Tagger-Metadaten enthält. v2.0 ist noch frei, und automatische Tag-Signierung ist nicht konfiguriert. Wähle alle zutreffenden Antworten.Git & GitHubRelease-TagsEinfachWähle alle zutreffenden Antworten.Ein annotierter Tag enthält unter anderem Tagger, Erstellungsdatum und Nachricht.Ein Lightweight-Tag enthält ebenfalls ein eigenes Tag-Objekt mit diesen Metadaten.git tag -a v2.0 -m "Release 2.0" erzeugt einen annotierten Tag.Jeder mit git tag -a erzeugte Tag ist automatisch kryptografisch signiert.Annotierte Tags werden als eigene Tag-Objekte gespeichert und enthalten Tagger, Datum und Nachricht. -a erzeugt einen annotierten, nicht automatisch signierten Tag. Ein Lightweight-Tag ist dagegen eine Referenz auf ein Objekt ohne eigenes Tag-Objekt. Für eine Signatur sind gesonderte Signieroptionen erforderlich.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Dein lokaler Branch feature existiert bereits, ebenso die lokal bekannte Remote-Tracking-Referenz origin/feature. Du willst feature mit dieser Referenz als Upstream verknüpfen, ohne Dateien zu ändern oder einen Netzwerkzugriff auszuführen. Welcher Befehl ist dafür vorgesehen?Git & GitHubUpstream und Remote-TrackingMittelWähle eine Antwort.git branch --set-upstream-to=origin/feature featuregit branch -rgit branch --unset-upstream featuregit branch -vv--set-upstream-to setzt die Upstream-Konfiguration des genannten lokalen Branches. Remote-Tracking-Referenzen wie origin/feature repräsentieren den zuletzt bekannten Remote-Stand; das Konfigurieren eines Upstreams synchronisiert keine Commits. -r und -vv zeigen Informationen an, --unset-upstream entfernt die Zuordnung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
main ist bereits in deiner Hauptarbeitskopie ausgecheckt. Du möchtest im selben Repository eine zusätzliche verknüpfte Arbeitskopie für parallele Arbeit nutzen. Es werden keine --force-Optionen verwendet. Wähle alle zutreffenden Antworten.Git & GitHubParallele Git-WorktreesMittelWähle alle zutreffenden Antworten.Jeder verknüpfte Worktree erhält eine vollständige, unabhängige Kopie der Git-Objektdatenbank.git worktree add ../zweite-kopie main darf main standardmäßig gleichzeitig ein zweites Mal auschecken.Jeder Worktree besitzt einen eigenen Index und einen eigenen HEAD.Mit --detach kann ein zusätzlicher Worktree einen Commit ohne ausgecheckten lokalen Branch verwenden.Verknüpfte Worktrees teilen sich unter anderem Repository-Objekte und Branch-Referenzen, besitzen aber getrennte Arbeitsdateien, Indizes und HEADs. Git lehnt das erneute Auschecken eines bereits verwendeten Branches standardmäßig ab. Ein Worktree mit detached HEAD erlaubt dagegen Arbeit an einem Commit ohne lokale Branch-Zuordnung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Dein Terraform-Backend unterstützt Locking. Dein Apply kann den State-Lock nicht erwerben, weil ein Kollege nachweislich noch einen regulären Apply im selben State ausführt. Was ist die passende Vorgehensweise?InfrastructureTerraform – aktiven state lock respektierenMittelWähle eine Antwort.Den laufenden Apply abwarten und danach mit normalem Locking erneut versuchen.Den Lock des Kollegen sofort mit force-unlock entfernen, während sein Apply weiterläuft.Mit -lock=false parallel anwenden; Terraform führt die beiden Schreibvorgänge automatisch zusammen.Eine lokale Kopie des States bearbeiten und nach dem parallelen Apply ungeprüft ins Backend schreiben.Locking verhindert konkurrierende State-Schreiber. Wenn der Lock nicht erworben werden kann, fährt Terraform nicht fort. Einen aktiven fremden Lock zu umgehen gefährdet den State. force-unlock ist für den eigenen verwaisten Lock nach fehlgeschlagenem automatischem Freigeben vorgesehen, nicht für diesen laufenden Apply.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du änderst die Backend-Konfiguration eines initialisierten Terraform-Projekts auf ein anderes unterstütztes Backend. Der vorhandene State soll dorthin kopiert werden. Welcher init-Aufruf fordert diese Migration ausdrücklich an?InfrastructureTerraform – backend state umziehenEinfachWähle eine Antwort.terraform init -reconfigureterraform init -upgradeterraform init -backend=falseterraform init -migrate-state-migrate-state versucht, den vorhandenen State in das neue Backend zu kopieren. -reconfigure verwirft die bisherige Backend-Konfiguration ohne diese Migration. -upgrade betrifft Module und Provider; -backend=false überspringt die Backend-Konfiguration.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Das Child-Modul ./modules/service deklariert variable "environment" ohne Default. Das Root-Modul ruft es als module "service" auf. Du willst genau diesem Aufruf den Wert "prod" übergeben. Wo gehört environment = "prod" hin?InfrastructureTerraform – child module eingabeEinfachWähle eine Antwort.Als Argument in den module-Block "service" des Root-Moduls.Nur in einen beliebigen Root-output-Block; dieser setzt die Child-Variable automatisch.Nur als gleichnamige Root-Variable; der Wert wird ohne Modulargument automatisch vererbt.In required_providers des Child-Moduls; dort werden dessen Eingabewerte gesetzt.Der Elternaufruf übergibt Child-Variablen als Argumente im module-Block. Eine gleichnamige Root-Variable wird nicht automatisch durchgereicht. Outputs exportieren Werte; required_providers beschreibt Provider-Anforderungen statt Moduleingaben.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Terraform-Modulaufruf verwendet count = length(local.names) und name = local.names[count.index]. Zunächst ist names = ["api", "batch", "web"], danach ["batch", "web"]. Welche Zuordnung der konfigurierten Namen zu den verbleibenden count-Indizes gilt anschließend, ohne moved-Blöcke?InfrastructureTerraform – count listenpositionenMittelWähle eine Antwort.Index 0 bleibt "api", Index 1 bleibt "batch"; Terraform ignoriert die neue Liste.Die Instanzen werden automatisch mit den String-Schlüsseln ["batch"] und ["web"] adressiert.Index 0 erhält "web", Index 1 erhält "batch"; count sortiert die Liste absteigend.Index 0 erhält "batch", Index 1 erhält "web"; count identifiziert nach Position statt nach bisherigem Namen.count.index startet bei 0. Nach Entfernen des ersten Elements wird local.names[0] zu "batch" und local.names[1] zu "web". count wechselt nicht automatisch zu for_each-Schlüsseln und sortiert die Liste nicht. Welche Ressourcenänderungen daraus folgen, hängt von deren Attributen ab.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine notwendige Attributänderung erzwingt laut Provider den Ersatz eines vorhandenen Objekts. Du erwägst lifecycle { create_before_destroy = true }. Welche Aussagen musst du bei der Umsetzung berücksichtigen? Wähle alle zutreffenden Antworten.InfrastructureTerraform – create before destroy grenzenSchwerWähle alle zutreffenden Antworten.Terraform hebt dadurch Namenseindeutigkeit und Anbieterquoten für das neue Objekt automatisch auf.Terraform soll das Ersatzobjekt vor der Zerstörung des bisherigen Objekts erstellen.Beide Objekte müssen zeitweise gleichzeitig existieren können; eindeutige Namen und andere Anbietergrenzen müssen dazu passen.Die Regel garantiert allein, dass Anwendungsverkehr ohne Verbindungsabbrüche auf das neue Objekt umgeschaltet wird.create_before_destroy kehrt die übliche Ersetzungsreihenfolge um. Gleichzeitige Existenz muss trotzdem zulässig sein, etwa bezüglich eindeutiger Namen und Kapazitätsgrenzen. Die Regel aktiviert keine automatische Namenssuffix-Funktion und ist weder eine Quotenbefreiung noch eine vollständige Verkehrsumschaltstrategie.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du nutzt Terraform ab 1.5 mit einem gewöhnlichen import-Block und id, ohne Bulk-Abfrage und ohne Konfigurationsgenerierung. Der Provider unterstützt den Import des vorhandenen Objekts. Welche Angaben passen zum Import in eine bereits geschriebene resource-Deklaration? Wähle alle zutreffenden Antworten.InfrastructureTerraform – deklarativer import voraussetzungenMittelWähle alle zutreffenden Antworten.to nennt die Zieladresse der passenden resource-Instanz.Ein einzelner import-Block entdeckt automatisch alle übrigen Objekte der Subscription und erzeugt deren resource-Blöcke.id darf ausschließlich aus einer erst beim anschließenden Apply erzeugten, vorher unbekannten Ressourcen-ID stammen.id enthält die vom Provider für diesen Ressourcentyp erwartete, schon beim Planen bekannte Kennung des vorhandenen Objekts.to bestimmt die Zieladresse; id ist eine beim Planen bekannte, vom Ressourcentyp abhängige Kennung. Ein gewöhnlicher Import mit vorhandener resource-Deklaration ist keine automatische Inventarisierung. Bulk-Abfragen und Konfigurationsgenerierung sind getrennte Abläufe.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Terraform-Modul verwendet diese Eingabevariable: ``hcl variable "replicas" { type = number nullable = false validation { condition = var.replicas >= 1 && var.replicas <= 5 error_message = "Erlaubt sind Werte von 1 bis 5." } } `` Die angegebenen Testwerte sind beim Planen bekannt. Welche Aussagen gelten? Wähle alle zutreffenden Antworten.InfrastructureTerraform – eingabe bereich validierenEinfachWähle alle zutreffenden Antworten.Der Wert 0 wird akzeptiert, weil er den Typ number erfüllt.Der Wert 5 erfüllt beide Vergleiche und wird von dieser Validation akzeptiert.Der Wert 6 erzeugt nur eine Warnung; die Operation läuft trotz fehlgeschlagener Variable-Validation weiter.Der Wert 1 erfüllt beide Vergleiche und wird von dieser Validation akzeptiert.Der Typ number allein schränkt den zulässigen Bereich nicht auf 1 bis 5 ein. Die Validation erzwingt beide inklusive Grenzen. Bei 0 oder 6 ist die Bedingung false; Terraform zeigt die Fehlermeldung und stoppt die Operation, statt nur zu warnen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine bestehende Ressource hat das Map-Attribut tags. Ein externer Prozess pflegt ausschließlich tags["Owner"]. Terraform soll Änderungen daran nicht zurücksetzen, aber andere Tags und Ressourcenargumente weiter verwalten. Welche lifecycle-Einstellung grenzt die Ausnahme passend ein?InfrastructureTerraform – einzelnes tag fremdverwaltungMittelWähle eine Antwort.ignore_changes = allprevent_destroy = trueignore_changes = [tags["Owner"]]ignore_changes = [tags]ignore_changes kann ein einzelnes Map-Element wie tags["Owner"] adressieren. Es wird bei Updates ignoriert, bei der Erstellung aber berücksichtigt. [tags] ignoriert die gesamte Map; all alle Attribute. prevent_destroy schützt vor Zerstörung statt vor Tag-Korrekturen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Drei Terraform-Ressourcen sollen anhand der fachlichen Namen "api", "batch" und "web" identifiziert werden. Das Entfernen von "batch" darf die Terraform-Adresse von "web" nicht verändern. Welche Modellierung passt, wenn die Namen schon beim Planen feststehen?InfrastructureTerraform – for each stabile identitaetMittelWähle eine Antwort.count auf der Listenlänge verwenden und die Namen mit count.index aus der Liste lesen.for_each auf einer Map mit den fachlichen Namen als Schlüsseln verwenden.for_each-Schlüssel bei jedem Lauf aus timestamp() neu erzeugen.for_each auf IDs aufbauen, die erst beim Erstellen der neuen Ressourcen vom Anbieter erzeugt werden.for_each adressiert Instanzen durch Map-Schlüssel. Der unveränderte Schlüssel "web" bleibt beim Entfernen von "batch" stabil. count benutzt Positionen, die sich verschieben können. Unbekannte oder von timestamp() abhängige Schlüssel sind für for_each nicht zulässig.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Child-Modul erzeugt eine Ressource mit einer ID. Ein zweites Modul im selben Root-Modul braucht diese ID. Die Ressource soll nicht aus ihrem Modul herausgezogen werden. Wie wird der Wert über eine dokumentierte Modulschnittstelle weitergereicht?InfrastructureTerraform – modul schnittstelle outputMittelWähle eine Antwort.Die ID in der Dependency-Lockdatei des ersten Moduls hinterlegen.Im zweiten Modul eine gleichnamige Variable deklarieren; Terraform verbindet sie automatisch mit der Ressource.Im ersten Child-Modul einen output für die ID definieren und im Root dessen module.<Name>.<Output> als Eingabe des zweiten Modulaufrufs verwenden.Im ersten Child-Modul einen input variable mit Default für die berechnete Ressourcen-ID definieren.Child-Outputs exportieren Ressourcenattribute. Das Root-Modul liest sie über module.<Name>.<Output> und übergibt den Wert als Argument an das andere Modul. Input-Defaults können keine berechneten Ressourcenattribute referenzieren; Namen und Lockdateien ersetzen keine Schnittstelle.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Registry-Modul soll bei einer frischen Initialisierung immer in Version 2.4.1 geladen werden. Andere Modulversionen, auch ältere, sollen gar nicht zulässig sein. Welche Versionsangabe im module-Block erfüllt das?InfrastructureTerraform – module version fixierenEinfachWähle eine Antwort.version = ">= 2.4.1"version = "2.4.1"version = "~> 2.4.1"version = "<= 2.4.1"Eine exakte Versionsangabe fixiert das Registry-Modul auf 2.4.1. Die anderen Angaben erlauben mehrere Versionen. Die Dependency-Lockdatei speichert Provider-Auswahlen, derzeit aber keine Modulversionen; sie ersetzt diese exakte Modulbindung nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Terraform-Ressource wurde mit lifecycle { prevent_destroy = true } bereitgestellt. Du entfernst danach ihren gesamten resource-Block aus der Konfiguration. Die ehemalige prevent_destroy-Regel verhindert auch jetzt automatisch ihre Zerstörung beim nächsten regulären Apply.InfrastructureTerraform – prevent destroy konfiguration entferntMittelIst die Aussage richtig oder falsch?RichtigFalschprevent_destroy muss in der aktuellen Konfiguration vorhanden sein. Wird der gesamte resource-Block entfernt, bleibt dieser Schutz nicht automatisch wirksam. Soll das Objekt ohne Zerstörung aus der Verwaltung entfernt werden, ist dafür ein eigener, geeigneter State-Entfernungsablauf nötig.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Das Root-Modul hat eine Standardkonfiguration azurerm und eine vollständig konfigurierte Alias-Konfiguration azurerm.secondary. Das Child-Modul deklariert azurerm als Provider-Anforderung und verwendet intern nur den lokalen Standardnamen azurerm, ohne eigene provider-Blöcke. Genau dieser Child-Aufruf soll secondary statt der Root-Standardkonfiguration nutzen. Welche Zuordnung gehört in den module-Block?InfrastructureTerraform – provider alias an childSchwerWähle eine Antwort.providers = { azurerm.secondary = azurerm }providers = { azurerm = azurerm.secondary }Keine; jedes Child erbt automatisch alle Aliase und wählt secondary anhand seines Ordnernamens.version = "secondary" statt providers; version wählt die Provider-Konfiguration aus.Im providers-Mapping steht links der vom Child erwartete lokale Name, rechts die Konfiguration des Elternmoduls. Daher wird azurerm auf azurerm.secondary abgebildet. Aliase werden nicht automatisch vererbt. version ist keine Konfigurationsauswahl.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Terraform ab 1.1 verwaltet eine Ressource unter azurerm_resource_group.old. Du benennst nur das Terraform-Label in new um; Ressourcenargumente und Objekttyp bleiben identisch. Welche zusätzliche Deklaration dokumentiert den Adresswechsel, ohne das reale Objekt allein wegen der Umbenennung zu ersetzen?InfrastructureTerraform – ressource refactoring movedSchwerWähle eine Antwort.lifecycle { create_before_destroy = true } am neuen resource-Block.lifecycle { ignore_changes = all } am neuen resource-Block.Ein zweiter unveränderter resource-Block old zusätzlich zum neuen Block, ohne Zuordnungsänderung.moved { from = azurerm_resource_group.old to = azurerm_resource_group.new }Ein moved-Block verknüpft alte und neue Terraform-Adresse mit demselben bestehenden Objekt. Die Dokumentation nennt ab Version 1.1 diesen deklarativen Refactoring-Weg. Lifecycle-Regeln steuern Ersetzung oder Attributänderungen, ersetzen aber keine Adresszuordnung; ein zweiter Block beschreibt eine weitere Ressource.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine normale Terraform-Eingabevariable wird mit sensitive = true markiert und ihr Wert in einem gespeicherten Ressourcenattribut verwendet. Es werden keine ephemeral- oder Write-only-Funktionen benutzt. Welche Schlussfolgerungen sind richtig? Wähle alle zutreffenden Antworten.InfrastructureTerraform – sensitive keine state geheimhaltungMittelWähle alle zutreffenden Antworten.Terraform redigiert den sensitiven Wert in gewöhnlichen Plan- und Apply-Ausgaben.sensitive = true verschlüsselt die State-Datei automatisch mit einem eigenen Schlüssel.Wer Zugriff auf die State-Daten hat, kann weiterhin den dort gespeicherten sensitiven Wert lesen.Terraform lässt den verwendeten Wert wegen sensitive = true grundsätzlich aus dem State weg.sensitive steuert die Darstellung und wird auf abhängige Ausdrücke übertragen. Es entfernt den Wert nicht aus dem State und ist keine automatische State-Verschlüsselung. Der Schutz des gespeicherten States muss unabhängig davon gewährleistet werden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Zwei getrennte CronJobs sichern dieselbe Datenbank. Beide verwenden concurrencyPolicy: Forbid. Genügt dies allein, um parallele Jobs aus diesen beiden CronJobs auszuschließen?KubernetesCronJob-ParallelitätMittelWähle eine Antwort.Ja, Forbid sperrt alle Jobs im selben Namespace.Ja, Forbid erkennt identische Container-Kommandos und sperrt diese.Nein, Forbid verhindert Überschneidungen nur zwischen Jobs desselben CronJobs.Nein, Forbid beendet grundsätzlich den älteren Job und startet den neuen.concurrencyPolicy gilt nur für Jobs, die derselbe CronJob erzeugt. Jobs unterschiedlicher CronJobs dürfen weiterhin gleichzeitig laufen. Das Ersetzen eines laufenden Jobs gehört zur Policy Replace, nicht Forbid.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Das Setzen von spec.suspend auf true bei einem CronJob verhindert weitere geplante Ausführungen, beendet aber keine Jobs, die dieser CronJob bereits gestartet hat.KubernetesCronJob-UnterbrechungEinfachIst die Aussage richtig oder falsch?RichtigFalschsuspend pausiert zukünftige Ausführungen des CronJobs. Bereits gestartete Jobs werden davon nicht beeinflusst und können weiterlaufen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Anwendung soll über Cluster-DNS direkt die IP-Adressen der bereiten Pods eines Service entdecken. Du legst dafür einen neuen ClusterIP-Service mit Selektor an; publishNotReadyAddresses ist nicht aktiviert. Welche Angabe in seinem Manifest macht ihn zu einem Headless Service?KubernetesService DiscoveryMittelWähle eine Antwort.spec.type auf ExternalName setzen und einen DNS-Alias angeben.spec.type auf NodePort setzen.spec.clusterIP weglassen, damit Kubernetes automatisch eine IP vergibt.spec.clusterIP auf den String None setzen.Ein Headless Service verwendet clusterIP: None. Für einen Service mit Selektor liefert Cluster-DNS A-/AAAA-Einträge der dahinterliegenden Pods statt einer einzelnen virtuellen Service-IP. ExternalName liefert dagegen einen CNAME; NodePort schafft keine Headless-Service-Discovery.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Job mit restartPolicy: Never soll nicht unbegrenzt neue Versuche nach fehlgeschlagenen Pods starten. Welche Job-Einstellung begrenzt die Wiederholungsversuche, bevor der Job als fehlgeschlagen gilt?KubernetesJobsMittelWähle eine Antwort.spec.completionsspec.parallelismspec.ttlSecondsAfterFinishedspec.backoffLimitbackoffLimit begrenzt Wiederholungsversuche nach Fehlern. completions beschreibt die benötigten erfolgreichen Abschlüsse, parallelism die gewünschte Parallelität. ttlSecondsAfterFinished steuert erst die Bereinigung eines bereits beendeten Jobs.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein direkt angelegter Job soll nach erfolgreichem oder fehlgeschlagenem Abschluss automatisch zur Löschung freigegeben werden. Die Wartezeit nach dem Abschluss soll 300 Sekunden betragen. Welche Einstellung gehört in seine spec?KubernetesJob-BereinigungEinfachWähle eine Antwort.ttlSecondsAfterFinished: 300activeDeadlineSeconds: 300backoffLimit: 300parallelism: 300ttlSecondsAfterFinished zählt ab dem Abschluss des Jobs. Nach Ablauf ist der Job zur automatischen kaskadierenden Löschung berechtigt; die Löschung muss nicht exakt in dieser Sekunde erfolgen. activeDeadlineSeconds begrenzt dagegen die Laufzeit eines Jobs.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team möchte seine Anwendungsobjekte dem Namespace team-a zuordnen. Welche der folgenden Kubernetes-Ressourcen sind namespaced und können dort angelegt werden? Wähle alle zutreffenden Antworten.KubernetesNamespacesEinfachWähle alle zutreffenden Antworten.DeploymentNodeServicePersistentVolumeDeployments und Services gehören zu einem Namespace. Nodes und PersistentVolumes sind dagegen clusterweite Ressourcen und werden keinem Namespace zugeordnet.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Logging-Agent soll auf jedem für ihn vorgesehenen Linux-Node als Pod laufen. Neue passende Nodes sollen automatisch einen Agent-Pod erhalten. Ressourcen und Scheduling-Voraussetzungen sind erfüllt. Welcher Kubernetes-Controller passt zu diesem nodebezogenen Muster?KubernetesNode-DiensteEinfachWähle eine Antwort.JobStatefulSetDaemonSetCronJobEin DaemonSet sorgt für einen Pod auf jedem geeigneten Node und berücksichtigt neu hinzukommende Nodes. Jobs und CronJobs dienen begrenzten beziehungsweise geplanten Aufgaben. StatefulSets ordnen Replikas stabile Identitäten zu, aber nicht automatisch einen Agenten pro Node.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Anwendung hat fünf bereite Pods und ein passendes PodDisruptionBudget mit minAvailable: 4. Keine Störung liegt an. Welche Aussagen beschreiben die Wirkung dieses PDB korrekt? Wähle alle zutreffenden Antworten.KubernetesPodDisruptionBudgetSchwerWähle alle zutreffenden Antworten.Nach einer erlaubten Eviction verhindert es per Eviction API die Eviction eines weiteren bereiten Pods, solange nur vier Pods verfügbar sind.Es verhindert jeden Ausfall durch einen defekten Node.Ein direktes Löschen eines Pods umgeht die PDB-Prüfung der Eviction API.Es zwingt den Deployment-Controller, sein RollingUpdate-Budget aus dem PDB abzuleiten.Die Eviction API respektiert PDBs und kann eine weitere Eviction ablehnen, wenn dadurch minAvailable unterschritten würde. Direkte Pod-Löschungen umgehen diesen Schutz. Unfreiwillige Ausfälle lassen sich damit nicht verhindern; Deployment-Rollouts werden durch die Deployment-Strategie begrenzt, nicht durch das PDB.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Namespace soll insgesamt begrenzte CPU-Requests haben. Neu angelegte Container ohne CPU-Request sollen einen Default erhalten. Welche Aussagen zu ResourceQuota und LimitRange passen? Wähle alle zutreffenden Antworten.KubernetesAdmission und QuotasMittelWähle alle zutreffenden Antworten.ResourceQuota ergänzt automatisch einen CPU-Default für jeden Container.ResourceQuota kann die Summe der CPU-Requests im Namespace begrenzen.Ein nachträglich geänderter LimitRange schreibt bestehende laufende Pods automatisch um.LimitRange kann beim Anlegen fehlende CPU-Requests mit einem Default ergänzen.ResourceQuota begrenzt die aggregierte Nutzung im Namespace. LimitRange kann Defaults bei der Aufnahme neuer Pods ergänzen und Einzelgrenzen prüfen. Änderungen eines LimitRange verändern bereits existierende Pods nicht; Quotas selbst liefern keine Container-Defaults.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Linux-Container soll seine Image-Dateien im Root-Dateisystem nicht verändern können. Am Zielpfad ist kein beschreibbares Volume eingehängt. Welche Einstellung im securityContext dieses Containers setzt das Root-Dateisystem schreibgeschützt?KubernetesContainer-DateisystemMittelWähle eine Antwort.runAsUser: 1000allowPrivilegeEscalation: falserunAsGroup: 1000readOnlyRootFilesystem: truereadOnlyRootFilesystem montiert das Root-Dateisystem schreibgeschützt. runAsUser und runAsGroup setzen Benutzer beziehungsweise Gruppe, garantieren aber kein schreibgeschütztes Dateisystem. allowPrivilegeEscalation begrenzt Privilegiensteigerung. Separate beschreibbare Volumes werden durch die Root-Dateisystem-Einstellung nicht pauschal schreibgeschützt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Im Namespace prod existiert die Role pod-reader mit ausschließlich get und list auf Pods. Eine RoleBinding in prod referenziert diese Role und als Subjekt den ServiceAccount deployer im Namespace tools. Weitere Berechtigungen sind ausgeschlossen. Welche Aussagen sind richtig? Wähle alle zutreffenden Antworten.KubernetesRBACSchwerWähle alle zutreffenden Antworten.Der ServiceAccount darf dadurch Pods in tools lesen.Der ServiceAccount tools/deployer darf dadurch Pods in prod lesen.Die RoleBinding darf die Role pod-reader stattdessen aus einem anderen Namespace referenzieren.Das Subjekt darf ein ServiceAccount aus einem anderen Namespace als die RoleBinding sein.Der Namespace der RoleBinding bestimmt den Geltungsbereich der Berechtigung: hier prod. Das Subjekt kann tools/deployer sein. Eine referenzierte Role muss dagegen im selben Namespace wie die RoleBinding liegen; eine ClusterRole wäre ebenfalls als roleRef möglich.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine bestehende RoleBinding verweist auf Role reader. Sie soll unter demselben Namen künftig auf Role editor zeigen; beide Roles existieren im selben Namespace. Wie lässt sich ausschließlich dieser Wechsel von roleRef umsetzen?KubernetesRBAC-ÄnderungenMittelWähle eine Antwort.roleRef.name direkt mit einem Patch ändern.Die RoleBinding löschen und mit dem neuen roleRef neu anlegen.Nur subjects ändern; dadurch wechselt roleRef automatisch.Die bestehende RoleBinding in eine ClusterRoleBinding umbenennen.roleRef ist unveränderlich. Für einen anderen Rollenverweis muss die RoleBinding ersetzt werden, etwa durch Löschen und erneutes Anlegen. Das Ändern der Subjekte verändert nicht den Rollenverweis.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Deployment mit 7 Replikas verwendet RollingUpdate, maxUnavailable: 25% und maxSurge: 25%. Alle bisherigen Pods sind verfügbar; zusätzliche Ausfälle sind ausgeschlossen. Welche Zahlen ergeben die beiden Prozentwerte für das Rollout-Budget? Gemeint sind die berechneten Budgetwerte, nicht eine harte Obergrenze einschließlich terminierender Pods.KubernetesRolling UpdatesSchwerWähle eine Antwort.Höchstens 2 unverfügbare Pods und 1 zusätzlicher Pod.Höchstens 1 unverfügbarer Pod und 1 zusätzlicher Pod.Höchstens 1 unverfügbarer Pod und 2 zusätzliche Pods.Höchstens 2 unverfügbare Pods und 2 zusätzliche Pods.25% von 7 sind 1,75. maxUnavailable wird abgerundet und ergibt 1; maxSurge wird aufgerundet und ergibt 2. Terminierende Pods können die insgesamt beobachtete Pod-Zahl zusätzlich erhöhen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Kubernetes-Service hat port: 80 und targetPort: 8080. Sein Selektor findet einen bereiten Pod, dessen Anwendung auf TCP-Port 8080 lauscht. Auf welchen Port dieses Pods leitet der Service eine Verbindung an seinen Port 80 weiter?KubernetesServicesEinfachWähle eine Antwort.808080443Auf einen zufällig gewählten Port.port bezeichnet den Service-Port, targetPort den Zielport auf dem Pod. Die Zuordnung führt hier von Service-Port 80 zu Pod-Port 8080; sie handelt keinen zufälligen Zielport aus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein StatefulSet namens cache verwendet die Standard-Ordnungsnummern und hat drei Replikas. Nach dem endgültigen Entfernen von cache-1 erstellt der Controller den Ersatz-Pod. Welche Eigenschaft bleibt für diese Replika gleich?KubernetesStatefulSet-IdentitätMittelWähle eine Antwort.Die Kubernetes-UID des Pod-Objekts.Der Pod-Name cache-1 mit seiner Ordnungsnummer.Die Pod-IP unabhängig von der Neuanlage.Der physische Node unabhängig von der Neuanlage.StatefulSet-Pods behalten ihre logische Identität aus Name und Ordnungsnummer beim Ersatz. Der Ersatz ist dennoch ein neues Pod-Objekt mit anderer UID. Weder eine unveränderte Pod-IP noch die Platzierung auf demselben Node ist durch diese Identität garantiert.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Bash-Shell führt mit gesetztem set -o pipefail eine synchrone Pipeline cmd1 | cmd2 | cmd3 aus. Die drei Befehle enden von links nach rechts mit den Exit-Statuswerten 7, 3 und 0. Es gibt weder ! vor der Pipeline noch & am Ende. Welchen Status hat die gesamte Pipeline unmittelbar danach?LinuxLinux – bash pipefail statusSchwerWähle eine Antwort.7, weil pipefail immer den ersten Fehler von links übernimmt.0, weil grundsätzlich nur der letzte Befehl zählt.3, weil pipefail den Status des am weitesten rechts stehenden fehlgeschlagenen Befehls verwendet.10, weil pipefail alle von null verschiedenen Statuswerte addiert.Ohne pipefail gilt normalerweise der letzte Pipeline-Status. Mit pipefail ist es der Status des am weitesten rechts stehenden Befehls mit einem Wert ungleich null; hier cmd2 mit 3. Die Werte werden weder addiert noch nach dem ersten Fehler ausgewählt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In ./reports liegen reguläre Dateien mit Leerzeichen und Zeilenumbrüchen im Namen. Mit GNU find, GNU xargs und wc sollen deren Pfade als unveränderte Argumente an wc gelangen. Währenddessen ändert niemand den Verzeichnisbaum. Welche Varianten erhalten die Dateinamengrenzen korrekt? Wähle alle zutreffenden Antworten.LinuxLinux – dateinamen unveraendert weitergebenMittelWähle alle zutreffenden Antworten.find ./reports -type f -print0 | xargs -0 wc -c --find ./reports -type f -print | xargs wc -c --find ./reports -type f -exec wc -c -- '{}' ';'find ./reports -type f -print | xargs -0 wc -c ---print0 und xargs -0 benutzen gemeinsam NUL als Trennzeichen, das nicht Teil eines Dateinamens sein kann. -exec übergibt den gefundenen Pfad direkt als Argument. Normales -print und normales xargs verlieren bei solchen Namen Grenzen; -print mit xargs -0 kombiniert inkompatible Trennformate.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Unter GNU/Linux willst du vor einem großen Export die freien Datenblöcke des eingehängten Dateisystems prüfen, auf dem /srv/export liegt. Du brauchst keine Verzeichnisgrößenschätzung und keine Inode-Statistik. Welcher Aufruf liefert die passende Kapazitätsübersicht in lesbaren Einheiten?LinuxLinux – dateisystem freien platz pruefenEinfachWähle eine Antwort.du -sh /srv/exportdf -i /srv/exportdu --apparent-size -s /srv/exportdf -h /srv/exportdf berichtet belegten und verfügbaren Platz des Dateisystems; ein Pfad wählt dessen enthaltendes Dateisystem. -h nutzt lesbare Einheiten. du summiert Datei-/Verzeichnisverbrauch, während df -i Inodes statt Datenblöcke auswertet.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In log.txt suchst du mit GNU grep alle Zeilen, die irgendwo die exakt geschriebene Zeichenfolge build[17].log enthalten. Eckige Klammern und Punkt sollen keine Regex-Bedeutung haben; Groß-/Kleinschreibung bleibt relevant. Welcher Aufruf bildet diese Anforderung direkt ab?LinuxLinux – grep zeichenfolge literalEinfachWähle eine Antwort.grep -F 'build[17].log' log.txtgrep -E 'build[17].log' log.txtgrep -v 'build[17].log' log.txtgrep -Fx 'build[17].log' log.txt-F behandelt das Muster als feste Zeichenfolge. -E interpretiert [17] und den Punkt als Regex-Elemente; -v kehrt die Auswahl um. -Fx wäre auf Zeilen beschränkt, die ausschließlich die Zeichenfolge enthalten, und verfehlt damit Vorkommen innerhalb längerer Zeilen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du hast direkt eine systemd-Unit-Datei unter /etc/systemd/system/app.service bearbeitet. Zuerst soll der Systemmanager seine Unit-Definitionen und den Abhängigkeitsbaum neu einlesen, ohne damit bereits einen Dienstneustart anzufordern. Welcher Befehl ist dafür vorgesehen?LinuxLinux – unit datei neu einlesenMittelWähle eine Antwort.systemctl reload app.servicesystemctl daemon-reloadsystemctl restart app.servicesystemctl reset-failed app.servicedaemon-reload lädt die Manager-Konfiguration, führt Generatoren erneut aus, liest Unit-Dateien neu und baut den Abhängigkeitsbaum neu auf. reload fordert das dienstspezifische Konfigurationsneuladen an; restart stoppt und startet den Dienst. reset-failed setzt Fehlerzustände beziehungsweise Zähler zurück.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
On-Premises-Clients fragen ausschließlich ihren eigenen DNS-Server ab. Sie sollen sql1.database.windows.net zur privaten IP eines Azure-SQL-Private-Endpoints auflösen. Der korrekte A-Record liegt in privatelink.database.windows.net. Eine DNS-Forwarder-VM steht im damit verknüpften Azure-VNet und leitet an Azure DNS weiter; VPN und DNS-Verkehr zur VM funktionieren. Welche Konfiguration fehlt beim On-Premises-DNS?NetworkingPrivate-Endpoint-DNS mit eigenem ResolverMittelWähle eine Antwort.Nur Autoregistrierung für On-Premises-Clients im VNet-Link einschalten.Eine bedingte Weiterleitung für database.windows.net an die Azure-DNS-Forwarder-VM konfigurieren.database.windows.net weiterhin ausschließlich durch öffentliche DNS-Resolver auflösen lassen.Den VNet-Link entfernen, damit öffentliche Resolver automatisch die private Zone abfragen.Die bedingte Weiterleitung für die öffentliche Dienstzone database.windows.net führt die Anfrage zur DNS-Forwarder-VM in Azure. Diese fragt Azure DNS aus dem mit der privaten Zone verknüpften VNet ab und kann so die private Endpoint-IP auflösen. Der VNet-Link allein ändert die Anfrageziele des eigenen On-Premises-DNS nicht. Autoregistrierung ersetzt keine Weiterleitung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du änderst die IPv4-Adresse in einem Azure-DNS-A-Record-Set. Ein Client hat die vorherige Antwort mit TTL 300 Sekunden gerade gecacht und verwendet einen TTL-respektierenden DNS-Cache ohne vorzeitige Leerung. Warum kann er nach einer Minute noch die alte IP verwenden?NetworkingDNS-Caching bei IP-WechselEinfachWähle eine Antwort.Die Änderung eines A-Records kann erst nach dem nächsten Azure-VM-Neustart wirksam werden.Die TTL legt fest, wie viele Pakete der Client an die alte IP senden darf.Die zuvor gecachte Antwort darf bis zum Ablauf ihrer verbleibenden TTL weiterverwendet werden.Azure DNS legt jede A-Record-Änderung grundsätzlich erst nach 24 Stunden in der Zone ab.Die TTL beschreibt die zulässige Cache-Dauer einer DNS-Antwort, hier 300 Sekunden. Eine Änderung am autoritativen Record leert bereits bestehende Client-Caches nicht automatisch. Nach 60 Sekunden können bei diesem Cache noch 240 Sekunden Restlaufzeit verbleiben. TTL ist keine Paketanzahl und keine feste 24-Stunden-Veröffentlichungsfrist.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Standard Load Balancer verteilt neue TCP-Verbindungen auf zwei Backends. Seine HTTP-Health-Probe fragt /health ab. Backend A antwortet dort nun mit HTTP 302, Backend B weiterhin mit HTTP 200. Keine Admin-State-Überschreibung ist gesetzt. Sobald A wegen der Probe als unhealthy gilt, wie behandelt der Load Balancer neue TCP-Verbindungen?NetworkingHTTP-Health-Probe bei WartungMittelWähle eine Antwort.Er folgt dem Redirect von A und behandelt deshalb jedes HTTP 302 als erfolgreiche Probe.Er verteilt weiter neue Verbindungen auf A und B, solange A auf dem Probe-Port einen TCP-Handshake schafft.Er nimmt auch Backend B aus der Verteilung, weil jede fehlgeschlagene Probe den ganzen Pool als unhealthy markiert.Er leitet neue Verbindungen nicht mehr an A, sondern an das weiterhin gesunde Backend B.Eine HTTP-Probe gilt bei einer rechtzeitigen HTTP-200-Antwort als erfolgreich; 302 ist keine erfolgreiche Probe. Ein ungesundes Backend erhält keine neuen Verbindungen über die zugehörige Load-Balancing-Regel. Der Erfolg eines TCP-Handshakes allein ersetzt keine HTTP-200-Antwort. Der Fehler von A markiert nicht pauschal den gesamten Backend-Pool als unhealthy; B bleibt wegen seiner erfolgreichen Probe verfügbar.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Unternehmen vergleicht einen Standort-VPN-Tunnel zu Azure mit einer privaten ExpressRoute-Verbindung. Es geht um die Transportwege, nicht um zusätzliche Verschlüsselungslösungen. Wähle alle zutreffenden Antworten.NetworkingHybride NetzverbindungenMittelWähle alle zutreffenden Antworten.Eine Site-to-Site-Verbindung mit Azure VPN Gateway kann IPsec/IKE zwischen dem lokalen VPN-Gerät und Azure über das öffentliche Internet verwenden.Eine ExpressRoute-Verbindung ist derselbe Internet-IPsec-Tunnel mit einem anderen Azure-Ressourcennamen.ExpressRoute verbindet das lokale Netz über eine private Verbindung mit Microsoft und führt nicht über das öffentliche Internet.Für Site-to-Site muss auf jedem lokalen Endgerät separat ein Point-to-Site-VPN-Client eingerichtet werden.Site-to-Site nutzt einen IPsec/IKE-Tunnel zwischen VPN-Geräten beziehungsweise Gateways über das öffentliche Internet. ExpressRoute verwendet einen privaten Verbindungsweg zu Microsoft statt des öffentlichen Internets. Ein Standorttunnel verbindet Netze; dafür sind keine separaten P2S-Clients auf jedem Endgerät erforderlich. Private Transportwege sind nicht mit einer pauschalen Verschlüsselungsgarantie gleichzusetzen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Azure-Subnetz besitzt ein Standard NAT Gateway mit einer öffentlichen IPv4-Adresse. Eine VM darin hat keine eigene öffentliche IP. Für das Internet-Ziel gilt die Route 0.0.0.0/0 mit Next Hop Internet; keine UDR oder BGP-Route leitet es um. DNS, NSGs, lokale Firewall und der Zielserver erlauben HTTPS. Wähle alle zutreffenden Antworten.NetworkingExpliziter Internet-EgressMittelWähle alle zutreffenden Antworten.Die VM kann darüber keine ausgehende HTTPS-Verbindung aufbauen, solange sie keine eigene öffentliche IP hat.Der Zielserver sieht für diese Verbindung die öffentliche IPv4-Adresse des NAT Gateways als Quelladresse.Ohne zusätzliche Inbound-Lösung kann ein Internet-Client über diese NAT-Adresse keine neue Verbindung zur VM initiieren.Das NAT Gateway stellt automatisch eine eingehende TCP-Portweiterleitung zur VM bereit.NAT Gateway stellt ausgehende Konnektivität auf Subnetzebene bereit und übersetzt die private Quelladresse in seine öffentliche Adresse. Eine eigene öffentliche VM-IP ist dafür nicht nötig. Antworten auf ausgehende Verbindungen sind erlaubt; neue, von außen initiierte Verbindungen und automatische Inbound-Portweiterleitungen stellt NAT Gateway nicht bereit.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure Private DNS Zone enthält bereits den A-Record db.apps.example. Du verknüpfst ein weiteres VNet mit dieser Zone und lässt Autoregistrierung deaktiviert. Der Link ist fertig provisioniert; die VMs verwenden Azure-provided DNS. Welche Wirkung hat dieser Link?NetworkingPrivate DNS ohne AutoregistrierungMittelWähle eine Antwort.Er registriert automatisch die Namen aller VMs des neuen VNets in der Zone, erlaubt aber keine Abfragen.Er erlaubt nur die Auflösung von Records, die aus dem neuen VNet registriert wurden.Er erlaubt die Auflösung vorhandener Zoneneinträge, registriert aber nicht automatisch die VMs des neuen VNets.Er macht die privaten Zoneneinträge im öffentlichen Internet auflösbar.Ein Link ohne Autoregistrierung ist ein Resolution-Link. Das verknüpfte VNet kann vorhandene Records der Zone auflösen, auch wenn sie nicht aus diesem VNet stammen. Automatische VM-Registrierung ist separat zu aktivieren. Ein solcher Link veröffentlicht die Zone nicht im Internet.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für ein externes Ziel 203.0.113.10 betrachtet Azure die folgenden Routen: eine UDR 0.0.0.0/0 zur NVA A, eine per BGP gelernte Route 203.0.113.0/24 zum virtuellen Netzgateway und eine UDR 203.0.113.0/24 zur NVA B. Die BGP-Route ist gelernt und nicht herausgefiltert; ihre Auswahl konkurriert mit der UDR. Es gibt keine weiteren passenden Routen, Service Endpoints oder VNet-/Peering-Sonderrouten. Welche Route gewinnt?NetworkingPräfixlänge vor RoutenherkunftSchwerWähle eine Antwort.Die UDR 0.0.0.0/0 zur NVA A, weil UDRs unabhängig von der Präfixlänge gewinnen.Die UDR 203.0.113.0/24 zur NVA B, weil zunächst /24 vor /0 und dann UDR vor BGP gilt.Die BGP-Route 203.0.113.0/24, weil BGP bei gleicher Präfixlänge Vorrang vor UDR hat.Azure verteilt jedes Paket abwechselnd über alle drei Next Hops.Azure wählt zuerst das längste passende Zielpräfix. Beide /24-Routen sind spezifischer als /0. Bei identischem Präfix hat eine UDR Vorrang vor BGP und Systemrouten, daher wird die UDR zur NVA B verwendet. Die explizit ausgeschlossenen bevorzugten VNet-/Peering- und Service-Endpoint-Routen verhindern Sonderfälle.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du aktivierst den klassischen Microsoft.Storage Service Endpoint für ein Subnetz und erlaubst dieses Subnetz in den Netzwerkregeln eines Storage-Kontos. Es gibt keinen Private Endpoint und keine eigene DNS-Überschreibung. Welche Aussagen treffen für den Zugriff auf Storage zu? Wähle alle zutreffenden Antworten.NetworkingService Endpoint versus Private EndpointSchwerWähle alle zutreffenden Antworten.Die normale DNS-Auflösung des Storage-Endpunkts liefert weiterhin eine öffentliche Dienst-IP.Der Service Endpoint legt für das Storage-Konto eine NIC mit privater Ziel-IP im Subnetz an.Nach dem Aktivieren des Service Endpoints ist die Netzwerkregel des Storage-Kontos grundsätzlich entbehrlich.Der Service Endpoint erweitert die VNet-Identität auf den Dienst und ermöglicht dem Konto, den Zugriff auf das zugelassene Subnetz zu beschränken.Ein klassischer Service Endpoint erweitert die VNet-Identität bis zum unterstützten Dienst; das Storage-Konto kann das freigegebene Subnetz anhand seiner Netzwerkregeln zulassen. Die DNS-Auflösung bleibt auf der öffentlichen Dienst-IP. Eine NIC mit privater Ziel-IP gehört zum Private-Endpoint-Modell, nicht zum klassischen Service Endpoint. Das Aktivieren allein ersetzt keine Dienst-Firewallregeln.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine regionale Azure-Webanwendung soll HTTPS am vorgeschalteten Dienst terminieren und Anfragen unter /bilder/* und /api/* anhand des URL-Pfads an unterschiedliche Backend-Pools senden. Welcher der folgenden Dienste stellt diese HTTP-basierte Verteilung bereit?NetworkingLayer 7 versus Layer 4EinfachWähle eine Antwort.Azure Application Gateway v2.Azure Standard Load Balancer allein mit TCP-Regeln auf Port 443.Azure NAT Gateway.Azure VPN Gateway.Application Gateway arbeitet auf Layer 7 und unterstützt TLS-Terminierung sowie URL-pfadbasierte Backend-Auswahl. Azure Load Balancer verteilt dagegen TCP/UDP-Flows auf Layer 4; eine TCP-Regel auf Port 443 wertet den HTTP-Pfad nicht aus. NAT Gateway dient dem Egress, VPN Gateway der VPN-Konnektivität.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Entwicklerin soll von ihrem Notebook im Homeoffice verschlüsselt auf private Ressourcen eines Azure-VNets zugreifen. Es soll keine VPN-Verbindung für das gesamte Heimnetz eingerichtet werden. Welche VPN-Gateway-Verbindungsart passt zu diesem einzelnen Remote-Client?NetworkingPoint-to-Site für Remote-ZugriffEinfachWähle eine Antwort.Site-to-Site zwischen dem VPN Gateway und einem VPN-Gerät des Heimnetzes.VNet-to-VNet zwischen zwei Azure VPN Gateways.Ein ExpressRoute-Circuit für einen privaten Provideranschluss des Heimnetzes.Point-to-Site mit einem VPN-Client auf dem Notebook.Point-to-Site verbindet einen einzelnen Remote-Client mit dem VNet, etwa aus dem Homeoffice. Site-to-Site verbindet dagegen Netze über ein VPN-Gerät. VNet-to-VNet verbindet Azure-VNets über Gateways. ExpressRoute ist ein privater Netzanschluss und keine VPN-Gateway-Verbindungsart für einen einzelnen Notebook-Client.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team aktiviert repositorybezogene GitHub Push Protection für Git-Pushes. Welche Aussagen sollte es bei der Sicherheitsplanung berücksichtigen? Wähle alle zutreffenden Antworten.SecurityGitHub Push ProtectionMittelWähle alle zutreffenden Antworten.Ein durchgelassener Push beweist, dass die Dateien keinerlei Geheimnisse enthalten.Erkannte Geheimnisse können den Push blockieren, bevor sie das Repository erreichen.Welche Muster geschützt werden, hängt auch von unterstützten Mustern und der Konfiguration ab.Mit entsprechend eingeräumten Rechten kann ein Beitragender den Schutz umgehen.Push Protection blockiert erkannte Secrets vor dem Push ins Repository. Die Abdeckung hängt von Mustern, verfügbaren Funktionen und Einstellungen ab; ein erfolgreicher Push ist kein Beweis vollständiger Geheimnisfreiheit. Bypass- beziehungsweise Ausnahmeberechtigungen müssen ebenfalls berücksichtigt werden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Azure Key Vault verwendet bereits das Azure-RBAC-Berechtigungsmodell. Eine Person hat dort nur Key Vault Contributor. Sie soll vorhandene Secret-Werte lesen können, aber weder Secrets ändern noch Berechtigungen verwalten. Netzwerkzugriff und Anmeldung funktionieren. Welche zusätzliche eingebaute Rolle am Vault erfüllt dieses Ziel?SecurityKey Vault DatenebeneSchwerWähle eine Antwort.Key Vault Secrets UserKey Vault ReaderKey Vault Secrets OfficerKey Vault Data Access AdministratorKey Vault Secrets User erlaubt das Lesen der Secret-Inhalte. Key Vault Reader liest nur Metadaten. Secrets Officer erlaubt auch Änderungen an Secrets. Data Access Administrator verwaltet bestimmte Rollenvergaben statt selbst Secret-Werte zu lesen. Key Vault Contributor ist eine Control-Plane-Rolle und gewährt im hier verwendeten RBAC-Modell keine Secret-Leserechte.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Administratorin ist in Microsoft Entra PIM für eine Azure-Ressourcenrolle berechtigt und aktiviert sie für zwei Stunden. Was passiert mit der durch diese Aktivierung erzeugten aktiven Rollenzuweisung nach Ablauf, wenn keine Verlängerung erfolgt? Gemeint ist die Zuweisung, nicht ein eventuell zwischengespeicherter Zugriff einer Anwendung.SecurityPrivileged Identity ManagementMittelWähle eine Antwort.Die Rolle wird dauerhaft aktiv, bis die Administratorin sich abmeldet.PIM löscht automatisch die verwaltete Azure-Ressource.PIM entzieht automatisch alle anderen Rollen der Administratorin.PIM entfernt die temporäre aktive Rollenzuweisung.PIM fügt bei der Aktivierung eine temporäre aktive Rollenzuweisung hinzu und entfernt diese bei Deaktivierung oder Ablauf der Aktivierungszeit. Das ist weder eine dauerhafte Aktivierung noch das Löschen von Ressourcen oder anderer Rollen. Anwendungen können Rolleninformationen zwischenspeichern; deshalb bezieht sich die Frage ausdrücklich auf die Zuweisung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Beim ersten SSH-Verbindungsversuch zu github.com erscheint eine Rückfrage zur unbekannten Host-Identität mit einem Fingerprint. Du willst prüfen, dass du dem GitHub-Server vertraust. Was solltest du vor dem Bestätigen vergleichen?SecuritySSH-ServerprüfungMittelWähle eine Antwort.Den Fingerprint mit dem deiner eigenen SSH-Anmeldeschlüssel.Den angezeigten Fingerprint mit dem offiziellen GitHub-Host-Key-Fingerprint desselben Schlüsseltyps.Den Fingerprint mit dem Namen des Repositorys.Nur die Passphrase deines privaten Schlüssels; sie bestätigt den Server.GitHub empfiehlt, den angezeigten Host-Key-Fingerprint mit seinen veröffentlichten öffentlichen Host-Key-Fingerprints zu vergleichen. Der Host-Schlüssel authentifiziert den Server; dein eigener SSH-Schlüssel und seine Passphrase dienen einer anderen Aufgabe und ersetzen diese Prüfung nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein exportierbares Zertifikat aus Azure Key Vault wird als PFX mitsamt privatem Schlüssel abgerufen. Welcher Bestandteil dieses Exports muss geheim bleiben und darf nicht wie das öffentliche Zertifikat verteilt werden?SecurityZertifikate und SchlüsselEinfachWähle eine Antwort.Das Ablaufdatum des Zertifikats.Der öffentliche X.509-Zertifikatsteil.Der private Schlüssel.Der öffentliche Name des Zertifikatsinhabers.Der private Schlüssel ist das vertrauliche Schlüsselmaterial. Bei exportierbaren Key-Vault-Zertifikaten kann der Secret-Export im PFX- oder PEM-Format diesen Schlüssel enthalten. Das öffentliche Zertifikat enthält hingegen öffentliche X.509-Metadaten, einschließlich Angaben wie Name und Gültigkeit.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Was besagt das Prinzip der minimalen Rechtevergabe (Least Privilege)?SecurityZugriffskontrolleEinfachWähle eine Antwort.Administratoren sollten immer alle Rechte besitzen, um Störungen schnell zu beheben.Identitäten erhalten nur die Rechte, die sie für ihre Aufgabe tatsächlich benötigen.Rechte werden ausschließlich über Gruppen vergeben.Passwörter müssen mindestens alle 30 Tage geändert werden.Least Privilege begrenzt den möglichen Schaden bei kompromittierten Konten oder Fehlbedienung, indem jede Identität nur die minimal nötigen Berechtigungen erhält – idealerweise auch zeitlich begrenzt.ÜberprüfenNächste Frage
Welche Kombinationen sind echte Multi-Faktor-Authentifizierung (Faktoren aus verschiedenen Kategorien)?SecurityAuthentifizierungEinfachWähle alle zutreffenden Antworten.Passwort und Code aus einer Authenticator-AppPasswort und SicherheitsfrageHardware-Sicherheitsschlüssel und PINZwei verschiedene PasswörterMFA kombiniert Wissen (Passwort, PIN), Besitz (Smartphone, Sicherheitsschlüssel) und Inhärenz (Biometrie). Passwort plus Sicherheitsfrage oder zwei Passwörter sind beide nur Wissen.ÜberprüfenNächste Frage
Was ist ein Pod in Kubernetes?KubernetesGrundlagenEinfachWähle eine Antwort.Ein physischer Server im Cluster.Die kleinste deploybare Einheit, die einen oder mehrere Container mit gemeinsamem Netzwerk und Speicher umfasst.Ein Namespace für die Abrechnung von Ressourcen.Ein Load Balancer vor einer Gruppe von Nodes.Pods sind die kleinsten Einheiten, die Kubernetes erstellt und verwaltet. Container in einem Pod teilen sich Netzwerk-Namespace (IP-Adresse) und können gemeinsame Volumes nutzen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Welche Adressbereiche sind nach RFC 1918 für private Netze reserviert?NetworkingIP-AdressierungMittelWähle alle zutreffenden Antworten.10.0.0.0/8172.16.0.0/12192.168.0.0/16169.254.0.0/16RFC 1918 definiert 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16. 169.254.0.0/16 ist der Link-Local-Bereich (RFC 3927) und kein privater Adressraum im Sinne von RFC 1918.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Was passiert, wenn die Readiness Probe eines Pods fehlschlägt?KubernetesHealth ChecksMittelWähle eine Antwort.Der Container wird sofort neu gestartet.Der Pod wird auf einen anderen Node verschoben.Der Pod erhält vorübergehend keinen Traffic über Services mehr.Das Deployment wird automatisch zurückgerollt.Eine fehlschlagende Readiness Probe entfernt den Pod aus den Endpunkten der Services, bis er wieder bereit ist. Neustarts löst dagegen eine fehlschlagende Liveness Probe aus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für einen allgemeinen Azure-Storage-Account kann Archive als Default-Access-Tier gewählt werden, sodass neue Blobs ohne explizite Tierwahl direkt im Archiv entstehen.CloudAccount-StandardtierMittelIst die Aussage richtig oder falsch?RichtigFalschArchive wird nicht als Default-Access-Tier unterstützt. Der Default ist ein Online-Tier; eine explizite Archivierung ist ein anderer Vorgang.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein ausdrücklich im Archive-Tier liegender Azure-Block-Blob soll wieder lesbaren Inhalt liefern. Welche Maßnahme rehydriert ihn tatsächlich, statt nur Konfiguration für andere Blobs zu ändern?CloudArchivabrufMittelWähle eine Antwort.Den Blob ausdrücklich per Set Blob Tier in ein Online-Tier wie Hot, Cool oder Cold verschieben.Nur den Default-Access-Tier des Accounts auf Hot setzen; das rehydriert ausdrücklich archivierte Blobs.Eine Lifecycle-Management-Regel zum Rehydrieren archivierter Blobs verwenden.Einen Get-Blob-Read mit längerem Client-Timeout ausführen; der Read startet selbst die Rehydration.Set Blob Tier kann den archivierten Blob durch Rehydration in ein Online-Tier überführen; der Inhalt ist erst nach deren Abschluss verfügbar. Ein Default-Access-Tier wirkt nicht auf Blobs mit ausdrücklich gesetztem Tier. Lifecycle-Management-Regeln können archivierte Blobs nicht in Online-Tiers rehydrieren. Ein Get-Blob-Read löst keine Rehydration aus; vor dem Inhaltsabruf muss sie abgeschlossen sein.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure-Ressource soll trotz Management-Lock für autorisierte Nutzer aktualisierbar bleiben, aber nicht über die Control Plane gelöscht werden können. Alle nachfolgend genannten Locks bleiben aktiv; weitere Einschränkungen bestehen nicht. Welche Konfiguration passt?CloudLöschschutzMittelWähle eine Antwort.Nur CanNotDelete auf der Ressource.Nur ReadOnly auf der Ressource.CanNotDelete und zusätzlich ReadOnly auf derselben Ressource.ReadOnly auf der Ressourcengruppe und CanNotDelete auf der darin enthaltenen Ressource.CanNotDelete erlaubt Updates und verhindert Control-Plane-Löschung. ReadOnly verhindert zusätzlich Updates. Bei mehreren oder vererbten Locks wirkt die restriktivste Einschränkung; ein zusätzlicher oder vererbter ReadOnly-Lock kann deshalb nicht durch CanNotDelete gelockert werden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team wählt für selten gelesene Azure-Block-Blobs in einem General-Purpose-v2-Account ein Tier mit mindestens 90 Tagen vorgesehener Mindesthaltedauer, geringeren Speicherkosten als Cool und unmittelbarem Online-Zugriff ohne Rehydration. Welches der folgenden Tiers erfüllt diese Kombination?CloudOnline-TiersMittelWähle eine Antwort.HotColdCoolArchiveCold ist online, hat in einem GPv2-Account eine Mindesthaltedauer von 90 Tagen und geringere Speicherkosten als Cool. Hot hat höhere Speicherkosten und keine solche Mindesthaltedauer. Cool hat 30 Tage und erfüllt den Kostenvergleich mit sich selbst nicht. Archive ist offline und benötigt Rehydration; dessen 180 Tage allein reichen nicht zur Erfüllung aller Bedingungen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Warum kann bei einem nicht wiederherstellbaren Ausfall der Primärregion eines GRS-Accounts trotz Geo-Replikation ein Teil der letzten Schreibvorgänge fehlen?CloudRecovery Point ObjectiveMittelWähle eine Antwort.Die Übertragung in die Sekundärregion erfolgt asynchron.Die Speicherung innerhalb der Primärregion wartet grundsätzlich nicht auf die vorgesehenen LRS-Replikate.Jeder primäre Schreibvorgang muss synchron von der Sekundärregion bestätigt werden.GRS beginnt die Übertragung vorhandener Daten erst nach dem Start eines Account-Failovers.GRS speichert zunächst synchron innerhalb der Primärregion und überträgt anschließend asynchron in die Sekundärregion. Neueste Writes können dort noch fehlen. Die lokale LRS-Synchronität ist daher nicht die beschriebene Ursache; ein synchrones Bestätigen durch die Sekundärregion und ein erst beim Failover beginnender Replikationsprozess widersprechen dem dokumentierten Ablauf.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Azure-Storage-Account hat einen aktiven Management-Lock; ein Client besitzt unabhängig davon passende Datenzugriffsrechte. Wähle alle zutreffenden Antworten.CloudLock-GrenzenMittelWähle alle zutreffenden Antworten.Der Lock beschränkt Control-Plane-Operationen.Ein Management-Lock allein verhindert nicht die Löschung eines Blobs über dessen Data-Plane-API.Ein Management-Lock entzieht automatisch sämtliche Blob-Datenrollen.CanNotDelete garantiert, dass kein autorisierter Datenclient jemals Blob-Inhalte überschreiben kann.Locks gelten für die Control Plane, nicht pauschal für Blob-Datenoperationen. Sie entziehen Datenrollen nicht automatisch und garantieren keinen Schutz vor autorisierten Data-Plane-Löschungen oder Überschreibungen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Ressourcengruppe besitzt ReadOnly. Eine darin enthaltene Ressource hat zusätzlich CanNotDelete; beide Locks bleiben bestehen. Welche Restriktion wirkt entlang dieser Vererbungskette?CloudVererbungMittelWähle eine Antwort.Nur CanNotDelete, weil die Ressource näher liegt.Die restriktivere ReadOnly-Einschränkung.Keine, weil sich verschiedene Lock-Typen aufheben.Nur ReadOnly auf bereits früher erstellte, nicht auf neue Ressourcen.Parent-Locks werden auch an später erstellte Ressourcen vererbt, und die restriktivste Einschränkung gewinnt. Der weniger strenge Child-Lock hebt ReadOnly weder auf noch begrenzt er dessen Vererbung auf ältere Ressourcen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Administrator besitzt weiterhin die nötige List-Keys-Berechtigung für einen Azure-Storage-Account. Nach Setzen eines ReadOnly-Locks scheitert das Auflisten der Account-Keys über die Management-API. Welche Erklärung passt zur Wirkung dieses Locks?CloudManagement-LocksMittelWähle eine Antwort.Der Lock sperrt ausschließlich Data-Plane-Zugriffe; List Keys wird als Blob-Datenoperation blockiert.Der Lock erlaubt jeden Management-POST, solange dessen Ergebnis nur lesend verwendet wird.Die API ruft Keys per Management-GET ab; ReadOnly blockiert ausschließlich GET-Anfragen.List Keys verwendet einen Management-POST, der durch den ReadOnly-Lock blockiert wird.List Keys verwendet einen Control-Plane-POST, den ReadOnly blockiert, obwohl der Aufrufer einen Wert lesen möchte. Management-Locks sind nicht auf die Data Plane beschränkt; gerade diese ist nicht pauschal betroffen. Der lesende Verwendungszweck des Ergebnisses nimmt POST nicht vom Lock aus. List Keys ist hier kein GET, und ReadOnly sperrt nicht ausschließlich GET.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team bewertet Azure-Storage-Redundanz als Schutz vor Ausfällen und versehentlichen Änderungen. Wähle alle zutreffenden Antworten.CloudDatenschutzmechanismenMittelWähle alle zutreffenden Antworten.Replikate spiegeln auch aktuelle Löschungen und Überschreibungen wider.Redundanz allein ist kein Ersatz für Schutz vor versehentlichen datenändernden Operationen.LRS bewahrt jede frühere Blob-Version automatisch als unveränderliches Backup.Eine Löschung in der Primärregion kann grundsätzlich nie in Replikaten sichtbar werden.Replikate bilden den aktuellen Zustand einschließlich Datenänderungen ab. Redundanz schützt gegen Hardwareausfälle, nicht allein gegen Fehlbedienung. LRS garantiert keine historische Versionssicherung, und Löschungen bleiben nicht grundsätzlich auf die Primärkopie beschränkt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Blob-Anwendung soll den sekundären regionalen Endpunkt schon vor einem Account-Failover für Lesezugriffe nutzen können. Welche Konfiguration ermöglicht das unter den genannten Optionen?CloudSekundärendpunktMittelWähle eine Antwort.Nur LRSZRS ohne Geo-ReplikationGRS ohne Read-Access-OptionRA-GRSRA-GRS erlaubt Read Access auf die Sekundärregion. Normales GRS macht sie ohne Failover nicht direkt für Lesezugriffe verfügbar. LRS und ZRS besitzen diese geo-replizierte Sekundärregion nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Service-Bus-Empfänger hat eine PeekLock-Nachricht vollständig verarbeitet. Der Lock und die Verbindung sind noch gültig. Welche Settlement-Operation signalisiert Erfolg und entfernt die Nachricht bei erfolgreichem Settlement aus der Queue?CloudNachrichtenbestätigungMittelWähle eine Antwort.AbandonCompleteRenewMessageLockDeadLetterComplete bestätigt erfolgreiche Verarbeitung und entfernt die Nachricht. Abandon gibt sie für Wiederzustellung frei, RenewMessageLock verlängert nur den Lock und DeadLetter verschiebt eine abgelehnte Nachricht in die konfigurierte Dead-Letter-Queue.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Empfänger liest aus einer normalen Azure-Service-Bus-Queue im Modus PeekLock. Wähle alle zutreffenden Antworten.CloudFehlerbehandlungMittelWähle alle zutreffenden Antworten.Abandon kann eine nicht verarbeitete Nachricht sofort zur Wiederzustellung entsperren.DeadLetter kann eine nicht sinnvoll erneut verarbeitbare Nachricht mit Begründung in die Dead-Letter-Queue verschieben.Complete ist die Operation, mit der unverarbeitete Nachrichten ausdrücklich zur Wiederzustellung freigegeben werden.RenewMessageLock bestätigt erfolgreiche Verarbeitung und entfernt die Nachricht aus der Queue.Abandon entsperrt für Retry; DeadLetter weist mit optionaler Begründung in die DLQ ab. Complete bestätigt Erfolg statt Retry; RenewMessageLock verlängert den Lock, ohne die Nachricht zu entfernen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Service-Bus-Worker verarbeitet eine PeekLock-Nachricht länger als die maximal konfigurierbare einzelne Lock-Dauer von fünf Minuten. Welche Technik versucht, den Lock bei längerer Verarbeitung aufrechtzuerhalten? Unerwarteten Lock-Verlust muss der Worker zusätzlich behandeln.CloudLock-ErneuerungMittelWähle eine Antwort.Nur die Message-Time-to-Live erhöhen, ohne den gehaltenen Lock zu erneuern.Complete gleich nach Empfang aufrufen und danach weiterverarbeiten.Den Lock erneuern, etwa mit RenewMessageLockAsync oder automatischer Erneuerung.Eine einzelne Lock-Dauer von 60 Minuten an der Queue konfigurieren.Die einzelne Lock-Dauer ist auf fünf Minuten begrenzt; längere Verarbeitung kann manuelle oder automatische Erneuerung nutzen. Message-TTL ersetzt keine Lock-Erneuerung. Frühes Complete entfernt die Nachricht statt ihren Processing-Lock zu erhalten, und 60 Minuten sind keine zulässige einzelne Lock-Dauer. Erneuerung garantiert keinen dauerhaften Lock: etwa Verbindungs- oder Serviceereignisse können Lock-Verlust verursachen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Bei Azure Service Bus wird eine Nachricht im Modus ReceiveAndDelete übertragen; die Übertragung zum Empfänger scheitert. Welche dokumentierte Gefahr besteht?CloudZustellmodusMittelWähle eine Antwort.Die Nachricht ist verloren, weil sie beim Senden als konsumiert gilt.Die Nachricht bleibt immer exklusiv bis Complete gesperrt.Der Broker verlangt automatisch eine manuelle Complete-Bestätigung.Der Modus wechselt bei Übertragungsfehlern zwingend zu PeekLock.ReceiveAndDelete behandelt die Nachricht beim Senden als konsumiert; Transferfehler können Verlust bedeuten. Ein Lock und explizites Complete gehören zum anderen Empfangsmodell. Ein automatischer Moduswechsel ist nicht zugesichert.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du erstellst einen neuen Azure-App-Service-Slot und klonst die Konfiguration aus production. Was gilt vor einem separaten Content-Deployment?CloudSlot-ErstellungMittelWähle eine Antwort.Der komplette Produktionscode ist automatisch im neuen Slot vorhanden.Die Einstellungen können geklont sein, der neue Slot hat aber noch keinen App-Content.Der neue Slot übernimmt standardmäßig sofort 50 Prozent des Kundentraffics.Es werden automatisch alle privaten Endpunkte mitgeklont.Das Klonen kopiert Konfiguration, nicht App-Content. Ein neuer Slot erhält standardmäßig Traffic 0 Prozent; der Kundentraffic bleibt auf production, sofern man dies nicht ändert. Private Endpunkte werden derzeit ebenfalls nicht über Slots geklont.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein App-Service-Team möchte vor Abschluss eines Swaps die staging-App mit den Zielslot-Einstellungen prüfen. Site Authentication ist in keinem Slot aktiviert. Welche Funktion pausiert den Swap nach dem Anwenden dieser Einstellungen?CloudSwap mit VorschauMittelWähle eine Antwort.Normaler Swap ohne Vorschau und ohne eingeplante Pause.Nur prozentuale Traffic-Aufteilung auf staging ohne Swap.Auto Swap ohne Vorabvalidierung.Swap with preview.Swap with preview wendet die Zielkonfiguration an und pausiert zur Validierung vor dem Routingwechsel. Ein normaler Swap bietet nicht die verlangte Vorschaupause. Traffic-Aufteilung ist kein Swap und wendet dabei nicht dessen Zielslot-Konfiguration an. Auto Swap ohne Vorabvalidierung bietet diese manuelle Prüfphase nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine App Service App verwendet zwei Slots ohne Override der standardmäßigen Sticky-Einstellungen. Wähle alle zutreffenden Antworten.CloudSwap-KonfigurationMittelWähle alle zutreffenden Antworten.Eine App-Einstellung kann ausdrücklich als slotgebunden konfiguriert werden.Managed Identities bleiben beim Swap am jeweiligen Slot und werden nicht mitgetauscht.Alle Connection Strings müssen unabhängig von ihrer Slot-Konfiguration immer mitwandern.Custom Domain Names werden beim Swap grundsätzlich mitgetauscht.App-Einstellungen und Connection Strings können an einen Slot gebunden werden. Managed Identities und Custom Domains gehören zu den nicht getauschten Elementen; daher sind die absoluten Aussagen zu Connection Strings und Domains falsch.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Nach einem Swap von staging und production zeigt ausschließlich der neue App-Code Fehler. Es gab keine externen Änderungen; beide Slots enthalten unverändert ihre Inhalte nach dem Swap. Ohne neues Content-Deployment soll der vorherige App-Stand wieder zum Inhalt von production werden. Welche Maßnahme passt?CloudDeployment-RollbackMittelWähle eine Antwort.Nur die App-Einstellungen von production zurücksetzen; das ersetzt automatisch dessen App-Code.Die geklonte Konfiguration aus staging übernehmen, ohne Content zu deployen oder Slots zu swappen.Dieselben beiden Slots erneut swappen.Nur einen Anteil des Traffics nach staging umleiten, ohne die Inhalte von production zu ändern.Nach dem ersten Swap enthält staging den vorherigen Produktionsstand. Ein erneuter Swap stellt ihn als production-Inhalt wieder her. Reines Zurücksetzen oder Klonen von Einstellungen kopiert keinen App-Code. Traffic-Routing zu staging kann Besucher zu dessen Inhalt führen, macht diesen aber nicht zum geforderten Inhalt von production. Externe Änderungen wären getrennt zu behandeln.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In einem General-Purpose-v2-Account sind Block-Blobs ausdrücklich nach Cool oder Cold verschoben worden. Soft Delete ist deaktiviert. Wähle alle zutreffenden Antworten.CloudFrühe LöschungMittelWähle alle zutreffenden Antworten.Ein Cool-Blob kann bei Löschung nach 20 Tagen eine Early-Deletion-Gebühr auslösen.Ein Cold-Blob kann bei Löschung nach 60 Tagen eine Early-Deletion-Gebühr auslösen.Cool hat eine Mindestdauer von 90 Tagen und Cold von 30 Tagen.Ein Wechsel von Cool in ein anderes Tier vor Ablauf der Mindestdauer verhindert stets Early-Deletion-Gebühren.Für diesen Account beträgt die Mindestdauer Cool 30 und Cold 90 Tage. Die genannten Löschungen liegen darunter. Die Dauern sind nicht vertauscht; auch ein vorzeitiger Tierwechsel kann die Gebühr auslösen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Blob-Daten dürfen nur innerhalb der Primärregion repliziert werden. Der Account soll den Ausfall einer Availability Zone besser verkraften als LRS. Welche Redundanz erfüllt diese beiden Vorgaben?CloudSpeicherreplikationMittelWähle eine Antwort.GRSGZRSZRSRA-GRSZRS repliziert synchron über Zonen der Primärregion. GRS, GZRS und RA-GRS replizieren zusätzlich in eine Sekundärregion und erfüllen deshalb die auf eine Region begrenzte Vorgabe nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Actions-Cleanup-Job mit needs: [build, test] soll nach deren Abschluss auch laufen, wenn einer fehlschlägt. Der Workflow wird nicht abgebrochen. Welche zusätzliche Job-Bedingung ist dafür dokumentiert?DevOpsCleanup-JobsMittelWähle eine Antwort.if: success()if: always()if: falseNur name: cleanup, ohne Bedingungalways() erlaubt den Job unabhängig vom erfolgreichen Ausgang seiner Abhängigkeiten. success() verlangt Erfolg, false verhindert die Ausführung und ein Anzeigename hebt das standardmäßige Überspringen nicht auf.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In GitHub Actions braucht job2 den job1; job3 braucht job2. Es sind keine überschreibenden if-Bedingungen gesetzt. Wähle alle zutreffenden Antworten.DevOpsFehlerpropagationMittelWähle alle zutreffenden Antworten.Scheitert job1, wird job2 normalerweise übersprungen.Das Überspringen von job2 wirkt in dieser Abhängigkeitskette auch auf job3.job3 läuft automatisch, sobald job1 fehlschlägt.needs legt nur die UI-Reihenfolge fest und beeinflusst die Ausführung nicht.Fehler und Überspringen propagieren entlang der needs-Kette. Ohne bedingte Ausnahme startet job3 hier nicht. needs ist eine echte Ausführungsabhängigkeit und keine bloße UI-Sortierung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Actions-Deployment darf erst nach erfolgreich abgeschlossenen Jobs build und test starten. Welche Job-Einstellung bildet diese Abhängigkeit direkt ab?DevOpsJob-AbhängigkeitenMittelWähle eine Antwort.needs: [build, test]name: build-teststrategy.max-parallel: 1concurrency.group: build-testneeds verlangt den erfolgreichen Abschluss der genannten Jobs. name ist eine Anzeige, max-parallel begrenzt Matrix-Parallelität und concurrency serialisiert eine Gruppe, ohne den Erfolg genau dieser Jobs zur Voraussetzung zu machen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du hast Lesezugriff auf ein GitHub-Repository und möchtest mit gh nur das Artefakt release-binary aus Workflow-Lauf 123 herunterladen. Welcher Befehl wählt genau dieses Artefakt?DevOpsArtefakt-DownloadMittelWähle eine Antwort.gh run download 123gh run view 123gh run list --limit 123gh run download 123 -n release-binaryrun download mit -n wählt das benannte Artefakt des Laufs. Ohne -n werden alle Artefakte heruntergeladen; view zeigt Laufdetails und list listet Läufe statt das ausgewählte Artefakt herunterzuladen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Pipeline produziert ein Release-Binary, das nach dem Workflow heruntergeladen und von einem anderen Job genutzt werden soll. Welche GitHub-Actions-Funktion ist dafür vorgesehen?DevOpsBuild-AusgabenMittelWähle eine Antwort.Nur ein Dependency-Cache als verbindlicher Release-Speicher.Ein Workflow-Artefakt.Ein Job-Anzeigename mit der Binary-Datei als Wert.Eine concurrency-Gruppe als Dateispeicher.Artefakte speichern Job-Ausgaben für Nutzung nach dem Lauf oder in anderen Jobs. Caches dienen wiederverwendbaren, regenerierbaren Dateien und sind kein austauschbarer Release-Speicher. Anzeigenamen und concurrency speichern keine Dateien.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein CI-Job verwendet Dependency-Caching zur Beschleunigung. Was sollte beim ersten Lauf ohne verfügbaren Cache möglich sein?DevOpsCache-MissesMittelWähle eine Antwort.Die Abhängigkeiten gelten automatisch als installiert.Der Job muss unabhängig vom Projekt dauerhaft scheitern.Der Job lädt oder erzeugt die benötigten Dateien neu.GitHub verwandelt automatisch ein altes Artefakt in den passenden Cache.Ein Job sollte benötigte Dateien bei Cache-Miss erneut herunterladen oder regenerieren können. Ein Cache-Miss installiert nichts von selbst und ist kein zwingender dauerhafter Fehler; Artefakte werden nicht automatisch in Caches umgewandelt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
In demselben GitHub-Repository bezeichnen die concurrency-Gruppennamen prod und Prod unterschiedliche Gruppen und erlauben dadurch zwei gleichzeitig aktive Gruppenläufe.DevOpsGruppennamenMittelIst die Aussage richtig oder falsch?RichtigFalschConcurrency-Gruppennamen sind nicht case-sensitive. prod und Prod sind dieselbe Gruppe; Unterschiede allein in Groß-/Kleinschreibung schaffen keine getrennte Parallelität.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Actions-Workflow setzt in derselben concurrency-Konfiguration queue: max und cancel-in-progress: true. Was sagt die aktuelle Dokumentation zu dieser Kombination?DevOpsDeployment-WarteschlangeMittelWähle eine Antwort.Sie erhöht die Queue automatisch auf unbegrenzte Länge.Sie ist nicht zulässig und führt zu einem Workflow-Validierungsfehler.Sie stellt alle aktiven Läufe parallel bereit.Sie ignoriert cancel-in-progress ohne Hinweis.queue: max und cancel-in-progress: true sind ausdrücklich nicht kombinierbar. Die Kombination schafft weder unbegrenzte Warteschlangen noch parallele aktive Gruppenläufe und wird nicht stillschweigend durch Ignorieren einer Option korrigiert.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
GitHub-Actions-Läufe derselben concurrency-Gruppe sollen einen bereits laufenden älteren Lauf abbrechen, wenn ein neuer Lauf eingereiht wird. Welche Option steuert dies ausdrücklich?DevOpsÜberholte CI-LäufeMittelWähle eine Antwort.cancel-in-progress: truequeue: maxstrategy.max-parallel: 100needs: previous-runcancel-in-progress aktiviert den Abbruch des aktiven Laufs derselben Gruppe. queue: max lässt mehrere Läufe warten; max-parallel betrifft Matrixjobs und needs ist keine Referenz auf einen vorherigen Workflow-Lauf.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein öffentliches GitHub-Repository verwendet Environments zur kontrollierten Bereitstellung. Wähle alle zutreffenden Antworten.DevOpsSchutzregelnMittelWähle alle zutreffenden Antworten.Prevent self-review kann verhindern, dass der Auslöser seine eigene Bereitstellung genehmigt.Deployment-Branch-/Tag-Regeln können zulässige Quellen einschränken.Ein Wait Timer zählt seine Wartezeit grundsätzlich als abrechenbare Jobzeit.Environment-Variablen werden grundsätzlich über den secrets-Kontext gelesen.Prevent self-review verlangt einen anderen Reviewer; Quellen lassen sich durch Branch-/Tag-Regeln begrenzen. Wartezeit des Wait Timers ist nicht abrechenbar. Environment-Variablen sind über vars zugänglich, nicht generell secrets.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein öffentliches GitHub-Repository hat für production drei required reviewers konfiguriert. Keine zusätzliche Schutzregel verlangt weitere Freigaben; ein zulässiger Reviewer genehmigt. Wie viele dieser required reviewers müssen gemäß Standardregel mindestens genehmigen?DevOpsDeployment-FreigabeMittelWähle eine Antwort.Alle dreiGenau zweiEinerKeiner, sobald drei Reviewer eingetragen sindBei required reviewers genügt einer der eingetragenen zulässigen Reviewer. Die Liste verlangt weder alle noch eine Mehrheit. Das Eintragen ersetzt die erforderliche tatsächliche Genehmigung nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Actions-Job referenziert ein Environment mit erforderlicher Freigabe. Administratives Umgehen der Schutzregeln ist deaktiviert; weitere Schutzregeln bestehen nicht. Wann erhält er Zugriff auf dessen Secrets?DevOpsEnvironment-SecretsMittelWähle eine Antwort.Schon jeder Job des Repositories vor einer Environment-Referenz.Nur durch Eintragen des Secret-Namens als Job-ID.Zwingend vor der Reviewer-Entscheidung, damit das Review möglich ist.Erst nachdem ein zulässiger required reviewer den Job genehmigt hat.Environment-Secrets sind auf referenzierende Jobs beschränkt und bei erforderlicher Freigabe erst danach zugänglich. Repository-Zugehörigkeit oder Job-ID genügen nicht, und die Reviewphase gibt noch keinen Zugriff.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team unterscheidet GitHub-Actions-Caches und -Artefakte. Wähle alle zutreffenden Antworten.DevOpsPersistenz in WorkflowsMittelWähle alle zutreffenden Antworten.Caches eignen sich für häufig wiederverwendete heruntergeladene Abhängigkeiten.Artefakte eignen sich zum Übergeben erzeugter Dateien zwischen Jobs.Caches und Artefakte sind in jeder Hinsicht austauschbar.Ein Cache-Hit ist zwingende Voraussetzung für einen korrekt entworfenen Dependency-Installationsjob.Die Dokumentation unterscheidet Wiederverwendung regenerierbarer Dateien von Speicherung beziehungsweise Übergabe produzierter Ausgaben. Die Mechanismen sind nicht austauschbar; ein fehlender Cache sollte durch Download oder Regeneration kompensierbar sein.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine GitHub-Actions-Matrix enthält drei Laufzeitversionen und zwei Betriebssysteme, ohne include oder exclude. Wie viele Job-Varianten entstehen?DevOpsTestmatrixMittelWähle eine Antwort.ZweiDreiSechsFünfFür jede Kombination entsteht ein Job: 3 mal 2 ergibt 6. Zwei oder drei zählen nur eine Achse; fünf wäre die Summe statt des kartesischen Produkts.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine GitHub-Actions-Testmatrix soll eine einzelne bekannte inkompatible Kombination aus Betriebssystem und Laufzeitversion nicht ausführen. Welche Einstellung entfernt diese Kombination aus der Matrix?DevOpsMatrix-AusnahmenMittelWähle eine Antwort.strategy.max-parallelconcurrency.groupneedsstrategy.matrix.excludematrix.exclude entfernt passende Kombinationen. max-parallel limitiert nur gleichzeitig laufende Varianten, concurrency regelt Gruppen und needs beschreibt Vorgängerjobs; keine dieser Einstellungen entfernt die einzelne Kombination.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine GitHub-Actions-Matrix hat fail-fast: true. Stabile Varianten verwenden continue-on-error: false, eine experimentelle Variante true. Wähle alle zutreffenden Antworten.DevOpsExperimentelle TestsMittelWähle alle zutreffenden Antworten.Das Scheitern einer stabilen Variante kann andere laufende oder wartende Matrixjobs abbrechen.Das Scheitern der experimentellen Variante löst in dieser Konfiguration nicht denselben Abbruch der anderen Varianten aus.continue-on-error: true verhindert technisch jeden Fehler im Testprozess.fail-fast erzeugt automatisch einen erneuten Testlauf aller fehlgeschlagenen Varianten.Die dokumentierte Kombination behandelt stabile Fehler als Grund zum Abbrechen, experimentelle Fehler dagegen nicht. continue-on-error unterdrückt nicht den tatsächlichen Prozessfehler; fail-fast ist keine automatische Wiederholungsfunktion.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Sechs GitHub-Actions-Matrixjobs könnten gleichzeitig laufen, sollen wegen begrenzter Testdienst-Kapazität aber höchstens zu zweit aktiv sein. Welche Einstellung passt?DevOpsRunner-KapazitätMittelWähle eine Antwort.strategy.max-parallel: 2strategy.matrix.exclude: 2needs: 2name: two-at-a-timemax-parallel begrenzt die Zahl gleichzeitig aktiver Matrixjobs. exclude definiert ausgeschlossene Kombinationen, needs referenziert Jobs und name beschriftet; sie begrenzen diese Parallelität nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Job B einer Azure-Pipeline soll eine in Job A erzeugte Variable in einer Bedingung verwenden. Welche Markierung sieht die Dokumentation für die von A gesetzte Multi-Job-Ausgabevariable vor?DevOpsJob-AusgabevariablenMittelWähle eine Antwort.Nur den Variablennamen in den Anzeigenamen von Job A kopieren.isOutput=true beim Setzen der Variable, danach Zugriff über die Job-Outputs der Abhängigkeit.isOutput=false, damit jede Job-Ausgabe automatisch global wird.Die Variable erst im selben Schritt berechnen, dessen Startbedingung sie prüfen soll.isOutput=true markiert Multi-Job-Ausgaben; ein abhängiger Job referenziert die Ausgabe über dependencies. Anzeigenamen schaffen keine Ausgabe und isOutput=false markiert keine Multi-Job-Ausgabe. Eine Startbedingung kann keine erst im selben Schritt berechnete Variable verwenden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Azure-Pipelines-Job kann nach seinen Abhängigkeiten noch gestartet werden; sein übergeordneter Bereich ist nicht übersprungen. Wähle alle zutreffenden Antworten.DevOpsStatusabhängiges CleanupMittelWähle alle zutreffenden Antworten.succeededOrFailed() erlaubt Ausführung nach Fehlern, nicht aber bei abgebrochenem Lauf.always() kann auch bei einem Abbruch noch wahr sein.failed() bedeutet, dass alle Abhängigkeiten erfolgreich waren.Eine eigene condition wird zusätzlich zur Standardbedingung angewandt, ohne sie zu überschreiben.succeededOrFailed schließt den Abbruch aus, always nicht. failed prüft Fehler und nicht Erfolg. Eine gesetzte condition ersetzt die Standardbedingung; daher muss benötigter Erfolg ausdrücklich einbezogen werden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Azure-Pipelines-Job soll nur auf main und nur nach erfolgreichen Abhängigkeiten laufen. Welche Bedingung bewahrt beide Anforderungen?DevOpsAzure-Pipeline-BedingungenMittelWähle eine Antwort.and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))eq(variables['Build.SourceBranch'], 'refs/heads/main')always()failed()and verbindet den Erfolgsstatus mit der Branchprüfung. Die Branchprüfung allein überschreibt die Standard-Erfolgsbedingung; always erlaubt auch Fehlerzustände und failed verlangt gerade einen Fehler statt Erfolg.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein reproduzierbarer Fehler ist im aktuellen Commit vorhanden, in einem älteren Tag aber nicht. Du möchtest den ersten fehlerhaften Commit durch wiederholte Tests effizient eingrenzen. Welche Git-Funktion ist dafür vorgesehen?Git & GitHubRegressionen eingrenzenMittelWähle eine Antwort.git stash --allgit bisect mit einem bekannten good- und bad-Commitgit restore --staged .git reset --soft HEADbisect sucht binär zwischen bekannten guten und schlechten Ständen. stash sichert lokale Änderungen, restore ändert den Index und reset bewegt einen lokalen Zeiger; diese Funktionen übernehmen keine testgestützte binäre Regressionssuche.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Während git bisect lässt sich ein vorgeschlagener Commit wegen eines unabhängigen Build-Fehlers nicht testen. Wie meldest du diesen Stand als unprüfbar, ohne ihn fälschlich als good oder bad zu klassifizieren?Git & GitHubUnprüfbare ZwischenständeMittelWähle eine Antwort.git bisect goodgit bisect badgit bisect skipgit bisect resetskip überspringt unprüfbare Stände. good und bad würden eine nicht belegte Bewertung des gesuchten Fehlers abgeben; reset beendet beziehungsweise bereinigt die Sitzung. Übersprungene benachbarte Commits können die eindeutige Eingrenzung erschweren.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team prüft die Risiken von git reset --hard <commit>, bevor es den Befehl lokal ausführt. Wähle alle zutreffenden Antworten.Git & GitHubDestruktive OperationenMittelWähle alle zutreffenden Antworten.Der aktuelle Branch-HEAD wird auf den angegebenen Commit gesetzt.Index und versionierte Arbeitsdateien werden an den Zielcommit angepasst.Uncommittete Änderungen an versionierten Dateien bleiben garantiert erhalten.Der Befehl erzeugt zwingend einen neuen Rücknahme-Commit.--hard setzt HEAD, Index und Arbeitsbaum auf den Zielzustand. Uncommittete Änderungen können verloren gehen. Ein neuer Rücknahme-Commit wird nicht erzeugt; das wäre ein anderer Ansatz wie revert.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Nach git reset --mixed HEAD~1 in einem lokalen Branch: Welcher Zustand ist dokumentiert?Git & GitHubIndex und ArbeitsbaumMittelWähle eine Antwort.HEAD bleibt unverändert und nur unversionierte Dateien werden gelöscht.HEAD zeigt auf den Vorgänger, der Index entspricht diesem Commit und der Arbeitsbaum bleibt unverändert.HEAD zeigt auf den Vorgänger und alle Arbeitsdateien entsprechen zwingend dem Vorgänger.Nur die Commit-Nachricht des letzten Commits wird verändert.--mixed setzt HEAD und Index auf den Zielcommit, lässt aber den Arbeitsbaum bestehen. Das Zurücksetzen des Arbeitsbaums wäre --hard. Weder Löschen ausschließlich unversionierter Dateien noch Änderung einer Commit-Nachricht beschreibt mixed.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Datei hat eine bereits gestagte Änderung und zusätzliche ungestagte Änderungen. Du führst git restore --worktree -- datei.txt ohne --source aus. Welche Version wird in den Arbeitsbaum geschrieben?Git & GitHubDateiwiederherstellungMittelWähle eine Antwort.Immer die Version aus HEAD.Die Version aus dem letzten Remote-Tracking-Branch.Die Version aus dem Index, also der gestagte Stand.Keine neue Version; --worktree entfernt nur die Staging-Markierung und behält den Dateiinhalt.Ohne --source verwendet restore für den Arbeitsbaum standardmäßig den Index. HEAD ist die Standardquelle bei --staged; ein Remote-Tracking-Branch wird nicht automatisch gewählt. --worktree ersetzt hier den Arbeitsbaum-Inhalt und verändert nicht die Staging-Markierung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Nur config.json im Arbeitsbaum soll auf den Stand des Tags v2 zurückgesetzt werden. Branch-HEAD und Index sollen unverändert bleiben. Welcher Befehl passt?Git & GitHubGezielte WiederherstellungMittelWähle eine Antwort.git reset --hard v2git reset --soft v2git restore --source=v2 --staged -- config.jsongit restore --source=v2 --worktree -- config.jsonrestore mit --source=v2 --worktree betrifft nur den ausgewählten Arbeitsdateipfad. --staged würde den Index ändern. Beide reset-Varianten mit einem Commit bewegen HEAD; --hard wirkt zudem auf den gesamten Arbeitsbaum.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du wählst die Zielbereiche eines git-restore-Aufrufs für eine einzelne versionierte Datei. Wähle alle zutreffenden Antworten.Git & GitHubRestore-ZieleMittelWähle alle zutreffenden Antworten.--staged ohne --worktree aktualisiert nur den Index.--staged zusammen mit --worktree kann Index und Arbeitsbaum aktualisieren.--worktree verschiebt den aktuellen Branch-HEAD.Ohne --source nimmt --staged standardmäßig den Remote-Branch als Quelle.--staged wählt den Index, --worktree den Arbeitsbaum; beide zusammen wählen beide Bereiche. restore verschiebt HEAD nicht. Die Standardquelle mit --staged ist HEAD, kein Remote-Branch.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein fehlerhafter normaler Commit wurde bereits geteilt. Der Arbeitsbaum ist sauber. Seine Änderungen sollen durch einen neuen Commit zurückgenommen werden, ohne die vorhandene Branch-Historie zurückzusetzen. Welcher Befehl erfüllt dies?Git & GitHubGeteilte HistorieMittelWähle eine Antwort.git revert <commit>git reset --hard <commit>~1git restore --source=<commit>~1 .git reset --soft <commit>~1revert zeichnet die inversen Änderungen als neuen Commit auf. reset verschiebt den Branch zurück. restore stellt Dateien wieder her, erzeugt aber durch diesen Aufruf keinen Rücknahme-Commit und bildet nicht gezielt den inversen Patch ab.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Der letzte lokale Commit ist noch nicht geteilt. Du möchtest den Branch einen Commit zurücksetzen, seine Änderungen aber unverändert im Index für einen neuen Commit behalten. Welcher Befehl passt?Git & GitHubLokale HistorieMittelWähle eine Antwort.git reset --soft HEAD~1git reset --mixed HEAD~1git reset --hard HEAD~1git restore --worktree .--soft bewegt HEAD und lässt Index und Arbeitsbaum unverändert. --mixed setzt zusätzlich den Index zurück; --hard setzt auch den Arbeitsbaum zurück. restore --worktree bewegt HEAD nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Vor einem Branch-Wechsel möchtest du versionierte Änderungen sowie unversionierte und ignorierte Dateien gemeinsam in einem Stash sichern. Welcher Aufruf nimmt ausdrücklich auch ignorierte Dateien auf?Git & GitHubLokale ZwischenablageMittelWähle eine Antwort.git stash push --keep-indexgit stash push --include-untrackedgit stash push --stagedgit stash push --all--all nimmt auch ignorierte und unversionierte Dateien auf. --include-untracked schließt ignorierte Dateien nicht ausdrücklich ein; --staged beschränkt sich auf gestagte Änderungen und --keep-index lässt gestagte Änderungen im Index bestehen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du verteilst mehrere Azure-VMs in einem Availability Set und prüfst dessen Schutzmechanismen. Welche Aussagen beschreiben die beiden Domain-Typen korrekt? Wähle alle zutreffenden Antworten.InfrastructureFault- und Update-DomainsMittelWähle alle zutreffenden Antworten.Eine Fault Domain gruppiert Infrastruktur mit gemeinsamer Stromversorgung und gemeinsamem Netzwerkswitch.Eine Update Domain gruppiert VMs und Hardware, die bei geplanter Wartung gemeinsam neu gestartet werden können.Update Domains legen fest, in welchen voneinander getrennten Azure-Regionen die VMs liegen.Fault Domains garantieren, dass Anwendungsfehler nicht auf mehreren VMs gleichzeitig auftreten.Fault Domains teilen Stromversorgung und Switch, während Update Domains die Gruppierung für geplante Wartungsneustarts beschreiben. Beide gehören zur Verteilung innerhalb eines Availability Sets und sind keine regionale Replikation. Availability Sets schützen nicht vor gemeinsamen OS- oder Anwendungsfehlern.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein bereits erstelltes Azure Availability Set hat zu wenige Update Domains für den geplanten Aufbau. Die Anzahl lässt sich an diesem bestehenden Set nachträglich ändern, ohne ein neues Set anzulegen.InfrastructureAvailability-Set-KonfigurationMittelIst die Aussage richtig oder falsch?RichtigFalschDie konfigurierte Anzahl der Fault und Update Domains eines Availability Sets kann nach dessen Erstellung nicht geändert werden. Ein geänderter Aufbau muss diese Unveränderlichkeit berücksichtigen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für eine noch vorhandene, unverschlüsselte Azure-VM mit verwalteten Datenträgern und unterstützter Konfiguration nutzt du Azure Backup: Replace existing. Welche Aussagen sind richtig? Wähle alle zutreffenden Antworten.InfrastructureIn-place-WiederherstellungMittelWähle alle zutreffenden Antworten.Die Wiederherstellung ersetzt Datenträger der vorhandenen VM.Die vorhandene VM darf bereits vollständig gelöscht sein; Replace existing erzeugt sie dann zwangsläufig neu.Die ursprünglichen Datenträger bleiben nach dem Austausch in der Ressourcengruppe erhalten.Replace existing ist automatisch auch die Cross-Region-Restore-Option zum Ersetzen einer VM in der sekundären Region.Replace existing ersetzt Disks einer noch vorhandenen VM; diese Existenz ist Voraussetzung. Die ursprünglichen Disks bleiben in der Ressourcengruppe erhalten. Eine gelöschte VM wird mit dieser Option nicht einfach neu erstellt. Cross-Region Restore unterstützt das Ersetzen bestehender Disks nicht; dafür gelten andere Wiederherstellungswege.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du hast einen gültigen Azure-Backup-Wiederherstellungspunkt. Zunächst sollen nur dessen Datenträger bereitgestellt werden, damit du danach eigenständig eine angepasste neue VM daraus erstellst. Azure Backup soll dabei keine vorhandene VM direkt ersetzen und noch keine neue VM erstellen. Welcher Ablauf passt?InfrastructureVM-WiederherstellungMittelWähle eine Antwort.Restore disks, anschließend die VM mit den wiederhergestellten Disks gezielt erstellen.Replace existing verwenden und erst danach eine weitere VM erstellen.Nur einzelne Dateien und Ordner aus dem Wiederherstellungspunkt wiederherstellen.Create new VM wählen und deren Einstellungen erst nach der automatischen VM-Erstellung anpassen.Restore disks stellt die Datenträger bereit und liefert eine Vorlage zur angepassten VM-Erstellung. Replace existing verändert eine vorhandene VM. Einzeldatei-Restore ist kein vollständiger Disk-Restore. Create new VM erzeugt bereits eine VM und erfüllt daher nicht die ausdrücklich verlangte Trennung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure-VM wurde mit SKU A gesichert und erst danach auf SKU B geändert. Du wählst für den alten Wiederherstellungspunkt Create new VM, ohne nachträgliche Anpassung. Welche SKU hat die neu wiederhergestellte VM laut dokumentiertem Verhalten?InfrastructureWiederhergestellte VM-GrößeMittelWähle eine Antwort.Stets SKU B, weil Restore nur die derzeitige Quell-VM betrachtet.Immer die kleinste SKU der Region, unabhängig vom Backup.SKU A, also die Größe der VM zum Zeitpunkt des verwendeten Backups.Keine SKU; Create new VM stellt ausschließlich lose Datenträger bereit.Create new VM erstellt die wiederhergestellte VM mit der beim Backup geltenden SKU. Spätere Größenänderungen werden durch den alten Wiederherstellungspunkt nicht übernommen. Es gibt weder einen dokumentierten pauschalen Wechsel zur kleinsten SKU noch das Verhalten von Restore disks bei Create new VM.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Zwei parallel laufende Bicep-Deployments verwenden denselben statischen Modulnamen am selben Ziel-Scope und lesen dessen Outputs. Du willst Verwechslungen der Deployment-Ausgaben vermeiden. Welche Änderung adressiert genau dieses Problem?InfrastructureKonkurrierende ModulbereitstellungenMittelWähle eine Antwort.Nur beide Deployments auf denselben Resource-Group-Scope setzen; identische Modulnamen werden dadurch isoliert.Nur die Parent-Output-Namen unterscheiden; der gleiche Modul-Deployment-Name ist immer sicher.Eindeutige Modul-Deployment-Namen verwenden oder name weglassen, damit Bicep eindeutige GUID-Namen erzeugt.Nur den lokalen Pfad der Moduldatei ändern, den gleichen statischen Deployment-Namen und Scope aber beibehalten.Am selben Scope können gleichnamige konkurrierende Modul-Deployments die Ausgaben gegenseitig beeinflussen. Eindeutige Namen oder weggelassenes name mit automatisch erzeugtem GUID-Namen vermeiden die Kollision. Derselbe Scope isoliert nicht; weder Parent-Output-Namen noch ein anderer lokaler Dateipfad trennen gleichnamige Deployment-Ressourcen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Dein Bicep-Deployment läuft in Ressourcengruppe app-rg, soll aber ein bestehendes Konto aus shared-rg derselben Subscription referenzieren. Welche Aussagen treffen auf die existing-Deklaration zu? Wähle alle zutreffenden Antworten.InfrastructureBicep-Scope und RessourcenauflösungMittelWähle alle zutreffenden Antworten.Mit scope: resourceGroup('shared-rg') kann die Referenz auf die andere Ressourcengruppe zielen.Ein falscher Ressourcenname oder Scope kann beim Auflösen zu NotFound und einem fehlgeschlagenen Deployment führen.existing verschiebt das Konto automatisch aus shared-rg nach app-rg.existing stellt bei einem falschen Namen stillschweigend ein neues Konto in app-rg bereit.Ein expliziter resourceGroup-Scope ermöglicht die Referenz auf die andere Gruppe. Die Ressource muss unter Name und Scope tatsächlich existieren, sonst kann die Auflösung mit NotFound scheitern. existing referenziert nur und verschiebt oder erzeugt die Ressource nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Bicep-Deployment soll die ID eines bereits bereitgestellten Speicherkontos verwenden, ohne dieses Konto erneut bereitzustellen. Welcher Weg entspricht diesem Ziel?InfrastructureBestehende Bicep-RessourcenMittelWähle eine Antwort.Das Konto als gewöhnliche resource deklarieren; die Deklaration wird weiterhin Teil der Bereitstellung.Das Konto mit einem normalen resource-Block ohne Eigenschaften deklarieren; das bedeutet automatisch existing.Eine Moduldatei mit gewöhnlicher resource-Deklaration des Kontos aufrufen; Module sind grundsätzlich nur lesend.Das Konto mit existing und passendem Namen sowie Scope referenzieren und seine ID nutzen.existing referenziert eine vorhandene Ressource, ohne sie erneut bereitzustellen. Eine gewöhnliche resource-Deklaration ist dagegen eine Bereitstellungsdeklaration, auch innerhalb eines Moduls. Allein das Weglassen von Eigenschaften ersetzt existing nicht. Module sind wiederverwendbare Bereitstellungen, nicht grundsätzlich lesende Referenzen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Bicep-Modul mit dem symbolischen Namen storageModule deklariert output endpoint string. Das Eltern-Template benötigt diesen Wert. Welche Ausdrucksform greift auf diese Modulausgabe zu?InfrastructureBicep-ModulausgabenMittelWähle eine Antwort.storageModule.outputs.endpointstorageModule.params.endpointstorageModule.endpointoutputs.storageModule.endpointModulausgaben werden über <symbolischerName>.outputs.<Ausgabename> gelesen, hier storageModule.outputs.endpoint. params beschreibt Eingaben, nicht Ausgaben. Die direkten und umgekehrten Zugriffspfade sind nicht die dokumentierte Modulsyntax.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine vorbereitete Azure-Referenz-VM ist generalisiert, deallokiert und besitzt einen verwalteten OS-Datenträger sowie zwei verwaltete Datenträger mit benötigten Ausgangsdaten. Du möchtest daraus wiederholt neue VMs mit diesem gesamten Datenträgerstand bereitstellen. Welches Artefakt passt dazu?InfrastructureVM-AbbilderMittelWähle eine Antwort.Ein Snapshot nur des OS-Datenträgers, ohne zusätzliche Erfassung der Datendatenträger.Ein Snapshot nur eines Datendatenträgers, aus dem anschließend das gesamte OS automatisch rekonstruiert wird.Ein verwaltetes Image der generalisierten VM mit ihren verwalteten OS- und Datendatenträgern.Ein verwaltetes Image ausschließlich des OS-Datenträgers, ohne die benötigten Datendatenträger einzuschließen.Ein verwaltetes Image kann die verwalteten OS- und Datendatenträger einer generalisierten VM enthalten und daraus neue VMs bereitstellen. Ein einzelner Snapshot enthält nur den ausgewählten Datenträger. Ein OS-only-Image erfüllt die ausdrückliche Anforderung nach den benötigten Ausgangsdaten auf beiden Datendatenträgern nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Zwei Azure-VMs sollen dieselbe unterstützte Shared Managed Disk in einem Cluster verwenden. Was muss die Clusterlösung zusätzlich zum erfolgreichen Anhängen sicherstellen, damit konkurrierende Schreibzugriffe koordiniert werden?InfrastructureGemeinsam genutzte DatenträgerMittelWähle eine Antwort.Nur die unterstützte Shared Disk an beide VMs anhängen; das Anhängen ersetzt jede Clusterkoordination.Auf beiden VMs gewöhnliche lokale Dateisysteme unabhängig schreibend mounten, ohne gemeinsame Sperrkoordination.Nur eine zentrale Datensicherung einrichten, ohne Schreibzugriffe der aktiven Knoten zu koordinieren.Einen Cluster-Manager mit geeigneter Knotenkommunikation und Schreibsperrkoordination.Shared Disks können von mehreren VMs genutzt werden, benötigen aber einen Cluster-Manager für Knotenkommunikation und Schreibsperren. Anhängen allein oder unabhängiges gleichzeitiges Mounten ersetzt diese Koordination nicht. Eine Sicherung koordiniert nicht die konkurrierenden Schreibzugriffe der laufenden Clusterknoten.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure-VM speichert Daten über zwei verwaltete Datenträger hinweg. Du erstellst nur vom ersten Datenträger einen Snapshot, ohne die Anwendung zu koordinieren. Welche Aussagen treffen auf diesen Snapshot zu? Wähle alle zutreffenden Antworten.InfrastructureDisk-SnapshotsMittelWähle alle zutreffenden Antworten.Er ist eine schreibgeschützte Zeitpunktkopie des ausgewählten Datenträgers.Er enthält automatisch auch den zweiten Datenträger der VM.Aus ihm lässt sich ein neuer verwalteter Datenträger erstellen.Er garantiert allein eine anwendungskonsistente gemeinsame Sicherung beider Datenträger.Ein Snapshot ist eine schreibgeschützte, crash-konsistente Kopie genau eines verwalteten Datenträgers und kann zur Erstellung neuer Datenträger dienen. Er erfasst nicht automatisch weitere VM-Datenträger. Ohne Koordination der Anwendung und beider Disks gibt ein einzelner Snapshot keine gemeinsame Anwendungskonsistenz.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Anwendung legt ihre einzige dauerhaft benötigte Datendatei auf dem temporären Datenträger einer Azure-VM ab. Sie soll auch nach Wartung oder Redeployment wiederherstellbar bleiben. Welche Änderung beseitigt das grundlegende Speicherproblem?InfrastructureTemporärer VM-SpeicherMittelWähle eine Antwort.Die Datei auf persistentem Speicher wie einem verwalteten Datenträger ablegen und passend sichern.Nur Schreibrechte einschränken; dadurch wird der temporäre Datenträger persistent.Die Datei in ein anderes Verzeichnis desselben temporären Datenträgers verschieben.Die VM nach jeder Änderung regulär neu starten; das garantiert Persistenz bei späterer Wartung.Temporärer VM-Speicher dient kurzlebigen Daten und kann bei Wartung oder Redeployment verloren gehen. Persistenter Speicher mit einer Sicherungsstrategie passt zur Anforderung. Rechte und Verzeichniswechsel ändern den Speichertyp nicht. Ein erfolgreicher regulärer Neustart kann temporäre Daten erhalten, garantiert aber keine Persistenz bei späteren Wartungsereignissen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Deine Azure-VMs liegen in mehreren Update Domains desselben Availability Sets. Welche Zusicherung darfst du bei geplanter Plattformwartung zugrunde legen?InfrastructureGeplante VM-WartungMittelWähle eine Antwort.Es wird zwingend in aufsteigender numerischer Reihenfolge neu gestartet.Es wird jeweils nur eine Update Domain neu gestartet; die Reihenfolge muss nicht numerisch sein.Eine Update Domain garantiert, dass ihre VMs bei Plattformwartung niemals neu starten.Nur Fault Domains bestimmen die Gruppen für gemeinsam geplante Neustarts; Update Domains werden dafür nicht verwendet.Bei geplanter Wartung wird jeweils nur eine Update Domain neu gestartet; die Reihenfolge ist nicht zwingend numerisch. Update Domains vermeiden nicht jeden Neustart, sondern gruppieren gemeinsam restartbare VMs. Fault Domains betreffen gemeinsame Stromversorgung und Netzwerkswitches, nicht die Update-Domain-Gruppierung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du fährst eine Azure-VM im Gastbetriebssystem herunter. Azure zeigt danach Stopped (Allocated). Welche Maßnahme beendet die Compute-Abrechnung, wenn die VM vorerst nicht mehr benötigt wird?InfrastructureVM-KostenstatusMittelWähle eine Antwort.Nur den Gast-Shutdown erneut ausführen; Allocated ist bereits abrechnungsfrei.Die VM in Azure deallokieren, bis der Status Stopped (Deallocated) erreicht ist.Die Netzwerkkarte von der NSG trennen, ohne den VM-Status zu ändern.Den OS-Datenträger durch einen Snapshot ersetzen, während die VM allokiert bleibt.Stopped (Allocated) behält die Zuteilung und wird weiter für Compute berechnet; erst Deallocated beendet diese Compute-Abrechnung. Ein erneuter Gast-Shutdown, eine NSG-Änderung oder ein anderer OS-Datenträger deallokieren die VM nicht. Datenträger und andere Ressourcen können nach Deallokation weiterhin Kosten verursachen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Pod wurde mit requiredDuringSchedulingIgnoredDuringExecution platziert. Wenn das erforderliche Node-Label später entfernt wird, wird dieser bereits laufende Pod allein aufgrund dieser Affinitätsregel nicht vertrieben.KubernetesLaufzeitverhaltenMittelIst die Aussage richtig oder falsch?RichtigFalschIgnoredDuringExecution bedeutet, dass Änderungen der Node-Labels nach der Platzierung den Pod aufgrund dieser Regel nicht entfernen. Die Anforderung wird beim Scheduling geprüft; andere unabhängige Eviction-Ursachen bleiben möglich.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine erforderliche Node-Affinität enthält mehrere nodeSelectorTerms und mehrere matchExpressions je Term. Wähle alle zutreffenden Antworten.KubernetesSelektorlogikMittelWähle alle zutreffenden Antworten.Zwischen nodeSelectorTerms besteht eine ODER-Verknüpfung.Innerhalb eines Terms müssen alle matchExpressions erfüllt sein.Ein zusätzlicher nodeSelector wird durch nodeAffinity ersetzt.Alle nodeSelectorTerms müssen gleichzeitig erfüllt sein.Terms werden ODER-verknüpft, Expressions innerhalb eines Terms UND-verknüpft. Ein zusätzlicher nodeSelector muss ebenfalls erfüllt sein. Daher ersetzt Affinität den Selektor nicht und verlangt auch nicht alle Terms zugleich.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Pod soll nicht vertrauliche Einstellungen aus einer ConfigMap im selben Namespace konsumieren. Wähle alle zutreffenden Antworten.KubernetesKonfigurationszugriffMittelWähle alle zutreffenden Antworten.Über env.valueFrom.configMapKeyRef einzelne Schlüssel auswählen.Schlüssel als Dateien in einem ConfigMap-Volume bereitstellen.Die ConfigMap garantiert dabei Verschlüsselung vertraulicher Werte.Der ConfigMap-Inhalt darf beliebig größer als 1 MiB sein.ConfigMaps können einzelne Umgebungsvariablen und Volume-Dateien liefern. Sie garantieren keine Geheimhaltung oder Verschlüsselung und haben eine Größenbegrenzung von 1 MiB; beide anderen Aussagen sind ausdrücklich ausgeschlossen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Anwendung liest einen ConfigMap-Wert beim Start aus einer Umgebungsvariable. Das Team ändert die ConfigMap. Was ist nötig, damit ein neuer Containerprozess den geänderten Wert auf diesem Weg erhält?KubernetesKonfigurationsänderungenMittelWähle eine Antwort.Nur die ConfigMap ändern; die laufende Prozessumgebung aktualisiert sich automatisch.Den Pod neu starten beziehungsweise ersetzen lassen.Nur bis zum nächsten kubelet-Synchronisationszyklus warten, ohne den Pod zu ersetzen.Nur den Scheduler neu starten, ohne den Pod zu ersetzen.Über Umgebungsvariablen konsumierte ConfigMaps werden nicht automatisch aktualisiert; ein Pod-Neustart liefert den neuen Wert. Der kubelet-Synchronisationszyklus kann normale Volume-Projektionen aktualisieren, nicht jedoch die bestehende Prozessumgebung. Ein Scheduler-Neustart ändert diese Prozessumgebung ebenfalls nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine ConfigMap besitzt vier vorhandene Schlüssel. Im Pod-Volume werden über items nur zwei davon unter unterschiedlichen Dateipfaden ausgewählt. Es gibt keinen überlagernden Mount. Wie viele aus diesen Schlüsseln projizierte Dateien erscheinen im Mount?KubernetesVolume-DateienMittelWähle eine Antwort.Vier, weil items ignoriert wird.Eine, weil bei mehreren items nur der erste ausgewählte Schlüssel projiziert wird.Keine, weil items nur für Secrets zulässig ist.Zwei, jeweils unter dem in items angegebenen Pfad.items beschränkt die Projektion auf die ausgewählten Schlüssel und legt ihre Pfade fest. Ohne items würden alle vier Schlüssel Dateien erzeugen. Die Liste verarbeitet beide ausgewählten Schlüssel, nicht nur den ersten; items ist auch für ConfigMap-Volumes zulässig.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine veränderliche ConfigMap-Datei wird per subPath in einen laufenden Container gemountet. Ihr Schlüssel bleibt vorhanden und der Pod wird nicht ersetzt. Auch nach mehreren kubelet-Synchronisationszyklen erscheint der neue Wert nicht. Welche Mount-Eigenschaft erklärt dies?KubernetesVolume-ProjektionMittelWähle eine Antwort.Alle ConfigMap-Volumes behalten grundsätzlich ihren Erstellungsstand ohne Updates.Das erste Mounten einer ConfigMap aktiviert automatisch immutable.ConfigMap-Mounts mit subPath erhalten keine ConfigMap-Updates.Die Auswahl einer einzelnen Datei verlängert die Aktualisierung zwingend auf 24 Stunden.Die Dokumentation schließt automatische Updates für ConfigMap-subPath-Mounts aus. Normale ConfigMap-Volumes werden dagegen nach einer Verzögerung aktualisiert. Mounten setzt nicht automatisch immutable; eine feste Aktualisierungsfrist von 24 Stunden ist keine Eigenschaft der Auswahl einer einzelnen Datei.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Container auf einem Linux-Node erreicht sein CPU-Limit, hat aber genügend Arbeitsspeicher. Wie wird dieses CPU-Limit normalerweise durchgesetzt?KubernetesRessourcenlimitsMittelWähle eine Antwort.Der Container erhält weniger CPU-Zeit durch Throttling.Der Container wird wegen OOM sofort beendet.Der Scheduler verschiebt den laufenden Pod automatisch.Das CPU-Limit verändert lediglich die Scheduling-Priorität.CPU-Limits werden durch CPU-Throttling durchgesetzt. OOM betrifft Speicher, nicht das CPU-Limit. Der Scheduler platziert Pods, migriert hier aber keinen laufenden Pod; ein Limit ist nicht bloß eine Scheduling-Priorität.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein bestehendes CSI-Volume soll über eine größere PVC-Anforderung erweitert werden. Welche Voraussetzungen beziehungsweise Schritte treffen zu? Wähle alle zutreffenden Antworten.KubernetesPVC-ErweiterungMittelWähle alle zutreffenden Antworten.Die StorageClass setzt allowVolumeExpansion auf true.Der CSI-Treiber unterstützt Volume-Erweiterung.Die gewünschte größere Kapazität wird am PVC angefordert.Die PV-Kapazität muss zuerst manuell erhöht werden, damit Kubernetes das Backend erweitert.StorageClass und CSI-Treiber müssen Erweiterung unterstützen; die größere Größe wird am PVC angefordert. Das direkte Anpassen der PV-Kapazität kann die automatische Backend-Erweiterung verhindern, statt sie auszulösen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team möchte etwa 400 Mebibyte Arbeitsspeicher für einen Container anfordern. Welcher Wert für requests.memory bildet diese Absicht korrekt ab?KubernetesRessourceneinheitenMittelWähle eine Antwort.400m400400Mi400kMi bezeichnet Mebibyte. 400m sind 0,4 Byte, 400 ohne Suffix sind 400 Byte und 400k sind 400.000 Byte. Nur 400Mi erfüllt die Größenanforderung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Node hat noch 1 CPU an nicht durch Requests belegbarer Kapazität. Ein neuer Pod fordert in seinem einzigen Container 2 CPUs an. Alle Nodes haben dieselbe Restkapazität; Preemption schafft keinen Platz. Weshalb bleibt der Pod trotz geringer gemessener CPU-Auslastung Pending?KubernetesSchedulingMittelWähle eine Antwort.Der Scheduler berücksichtigt ausschließlich die aktuelle CPU-Auslastung.Die Summe der Requests würde die verfügbare Node-Kapazität überschreiten.CPU-Requests müssen stets kleiner als 1 sein.Requests werden erst nach dem Start eines Containers geprüft.Der Scheduler prüft Requests gegen die Node-Kapazität, nicht lediglich die momentane Nutzung. Zwei CPUs sind gültig, passen hier aber auf keinen Node. Die Kapazitätsprüfung erfolgt vor der Platzierung.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Die Löschung eines nicht mehr verwendeten PVC ist abgeschlossen; das zugehörige PV besitzt ReclaimPolicy Retain. Welche Folge ist für die Wiederverwendung des Speichers entscheidend?KubernetesReclaim PolicyMittelWähle eine Antwort.Der externe Speicher wird unmittelbar gelöscht.Das PV wird Released; vorhandene Daten erfordern manuelle Reclamation.Das PV wird ohne Prüfung sofort jedem neuen PVC zugewiesen.Retain bereinigt die vorhandenen Daten automatisch und setzt das PV direkt auf Available.Retain erhält den Speicher und lässt das PV nach Freigabe im Zustand Released. Wegen verbliebener Daten ist manuelle Reclamation nötig. Delete wäre die Löschvariante; weder sofortige freie Bindung noch automatische Datenbereinigung mit Zustand Available folgt aus Retain.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Cluster hat nur ungebundene statische PVs mit je 50Gi; dynamische Provisionierung ist deaktiviert. Ein PVC fordert 100Gi an. Was geschieht?KubernetesVolume-BindungMittelWähle eine Antwort.Das PVC bleibt ungebunden, bis ein passendes Volume verfügbar ist.Zwei PVs werden automatisch zu einem 100Gi-Volume zusammengeführt.Das PVC erhält eines der 50Gi-Volumes mit halbierter Anforderung.Kubernetes vergrößert automatisch ein statisches 50Gi-PV, um den neuen PVC zu binden.Ein PVC wird an ein geeignetes PV gebunden und erhält mindestens die angeforderte Kapazität. Zwei kleinere PVs werden nicht zusammengeführt und die Anforderung wird nicht reduziert. Die Bindung vergrößert auch nicht automatisch ein zu kleines statisches PV.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein PVC soll ausdrücklich keine dynamische Provisionierung und keine Default-StorageClass verwenden. Welche Angabe erfüllt dies?KubernetesStorageClassMittelWähle eine Antwort.storageClassName weglassen.storageClassName auf den Namen der Default-StorageClass setzen.storageClassName explizit auf die leere Zeichenkette setzen.Nur das Label app=static setzen.Ein explizites storageClassName: "" deaktiviert dynamische Provisionierung für das PVC und verhindert die Default-Zuordnung. Weglassen kann die Default-Klasse zuweisen; deren Name aktiviert gerade diese Klasse. Ein beliebiges Label steuert dies nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Pod hat nodeSelector mit disk=ssd und zone=west. Welche Nodes kommen allein hinsichtlich dieses Selektors infrage?KubernetesNode-AuswahlMittelWähle eine Antwort.Alle Nodes mit mindestens einem der beiden Labels.Alle Nodes ohne zone-Label.Nur Nodes, deren Name west lautet.Nur Nodes, die beide angegebenen Labels besitzen.nodeSelector verlangt alle angegebenen Node-Labels. Einzelne Treffer genügen nicht; fehlende Labels passen ebenfalls nicht. Die Auswahl bezieht sich auf Labels, nicht auf den Node-Namen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Pod soll bevorzugt auf SSD-Nodes laufen, bei deren Auslastung jedoch auf andere geeignete Nodes ausweichen dürfen. Welche Node-Affinität passt?KubernetesNode-AffinitätMittelWähle eine Antwort.preferredDuringSchedulingIgnoredDuringExecutionrequiredDuringSchedulingIgnoredDuringExecutionnodeSelector: {disk: ssd}nodeName mit dem Namen eines SSD-Nodespreferred formuliert eine weiche Präferenz. required und nodeSelector schließen Nodes ohne das passende Label aus. nodeName legt einen konkreten Node fest, statt eine flexible SSD-Präferenz auszudrücken.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du verwendest GNU ln, um weitere Namen für eine vorhandene reguläre Datei anzulegen. Welche Aussagen sind korrekt? Wähle alle zutreffenden Antworten.LinuxHardlinks und SymlinksMittelWähle alle zutreffenden Antworten.Ohne -s legt ln standardmäßig einen Hardlink an.Ein Hardlink kann ohne Weiteres eine Datei auf einem anderen Dateisystem adressieren.Ein symbolischer Link darf auf ein noch nicht vorhandenes Ziel verweisen.Hardlinks auf dieselbe Datei im selben Dateisystem teilen deren Inode und Dateiinhalt.GNU ln erzeugt standardmäßig Hardlinks. Hardlinks sind weitere Namen für dieselbe Datei und denselben Inode, können aber Dateisystemgrenzen nicht überschreiten. Symbolische Links enthalten dagegen einen Zielpfad und dürfen auch dangling sein, also ein nicht vorhandenes Ziel benennen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du willst mit journalctl nur Einträge für app.service aus dem aktuellen Boot und seit 10:00 Uhr heute lesen. Die nötigen Zugriffsrechte und Einträge sind vorhanden. Welcher Aufruf kombiniert diese Filter?LinuxJournal gezielt filternMittelWähle eine Antwort.journalctl -b -1 -u app.service --since '10:00' --no-pagerjournalctl -b --since '10:00' --no-pagerjournalctl -b -u app.service --until '10:00' --no-pagerjournalctl -b -u app.service --since '10:00' --no-pager-b ohne Boot-ID meint den aktuellen Boot, -u app.service begrenzt die Unit und --since setzt die untere Zeitgrenze. -b -1 wählt den vorherigen Boot; ohne -u fehlt der Unit-Filter. --until wäre die obere statt der verlangten unteren Grenze. --no-pager ändert nur die Ausgabeweise. Bei der Zeitangabe '10:00' ohne Datum wird der aktuelle Tag angenommen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Der symbolische Link /srv/app/current enthält als Ziel ../releases/v2. Ein Prozess folgt diesem Link, während sein Arbeitsverzeichnis /tmp ist. Es gibt keine weiteren Symlinks im Pfad. Auf welchen Pfad wird das relative Linkziel bezogen?LinuxRelative symbolische LinksMittelWähle eine Antwort./tmp/releases/v2, weil das Arbeitsverzeichnis des lesenden Prozesses maßgeblich ist./srv/releases/v2, weil das Ziel relativ zu /srv/app als Verzeichnis des Links aufgelöst wird./srv/app/releases/v2, weil .. bei symbolischen Links ignoriert wird./releases/v2, weil alle Symlink-Ziele absolut interpretiert werden.Relative Symlink-Ziele werden relativ zum Verzeichnis aufgelöst, in dem der Link liegt. Von /srv/app führt ../releases/v2 nach /srv/releases/v2. Das Arbeitsverzeichnis des Lesers, eine ignorierte Elternkomponente oder automatische absolute Interpretation erklären den Pfad nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Logrotator benennt /var/log/app.log um und erstellt später unter demselben Namen eine neue Datei. GNU tail soll die neue Datei weiter beobachten und bei vorübergehend fehlendem Pfad erneut versuchen. Welcher Aufruf passt?LinuxLogrotation beobachtenMittelWähle eine Antwort.tail -n 20 /var/log/app.logtail --follow=descriptor /var/log/app.logtail -F /var/log/app.logtail -c 20 /var/log/app.logtail -F entspricht --follow=name --retry und folgt dem Dateinamen auch bei Rotation und zwischenzeitlichem Fehlen. Descriptor-Following bleibt beim ursprünglichen Dateiobjekt, selbst nach Umbenennung. -n 20 und -c 20 zeigen nur einen Ausschnitt und verfolgen ohne Follow-Option keine neu erstellte Datei.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Du diagnostizierst fehlgeschlagene Units des systemd-Managers deines eigenen Benutzers, nicht des System-Managers. Welcher systemctl-Aufruf listet gezielt diesen Zustand in diesem Manager?Linuxsystemd-User-UnitsMittelWähle eine Antwort.systemctl --user --failed --no-pagersystemctl --system --failed --no-pagersystemctl --user --state=active --no-pagersystemctl --failed --no-pager--user adressiert den Service-Manager des aufrufenden Benutzers. --failed entspricht --state=failed. --system und der Standard ohne --user adressieren den System-Manager; --state=active wählt einen anderen Zustand. Das Listing startet oder repariert keine Unit.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Web- und Datenbank-VMs wechseln häufig ihre privaten IP-Adressen. Eine NSG soll Regeln anhand ihrer Anwendungsrollen formulieren, statt jede IP-Liste manuell zu pflegen. Welche Funktion ist dafür vorgesehen?NetworkingApplication Security GroupsMittelWähle eine Antwort.Nur das Erhöhen der NSG-Regelprioritätsnummern.Eine Route mit Next Hop None.Application Security Groups zur Gruppierung der VMs.Das Löschen sämtlicher NSG-Default-Regeln.ASGs gruppieren VMs für rollenbasierte Netzwerksicherheitsregeln ohne manuelle Pflege expliziter IPs. Prioritätsänderungen lösen die Gruppierung nicht; Next Hop None verwirft Verkehr. Default-NSG-Regeln können nicht gelöscht werden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine aktive SSH-Verbindung zu einer VM bleibt durch die NSG-Regeländerung allein bestehen, wenn die bisher erlaubende NSG-Regel entfernt wird; neue Verbindungen können danach blockiert werden.NetworkingRegeländerungenMittelIst die Aussage richtig oder falsch?RichtigFalschDie NSG-Dokumentation beschreibt, dass bestehende Verbindungen bei Entfernen einer erlaubenden Regel ununterbrochen bleiben; die Regeln wirken auf neue Verbindungen. Andere Ursachen können eine SSH-Sitzung natürlich dennoch beenden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine neue TCP-Verbindung passt in derselben NSG zu Allow mit Priorität 200 und Deny mit Priorität 300. Es gibt keine höher priorisierte passende Regel oder Security-Admin-Regel. Welche Aktion greift?NetworkingNSG-RegelprioritätMittelWähle eine Antwort.Allow, weil die kleinere Prioritätszahl zuerst ausgewertet wird.Deny, weil Deny immer unabhängig von der Priorität gewinnt.Deny, weil die größere Prioritätszahl zuerst ausgewertet wird.Die Default-Regel gewinnt immer vor benutzerdefinierten Regeln.NSG-Regeln werden mit kleineren Zahlen zuerst verarbeitet; beim ersten Treffer endet die Auswertung. Deny ist kein pauschaler Vorrang. Default-Regeln haben niedrigere Priorität, und Regeln werden nicht addiert.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine NSG erlaubt einem Client eine ausgehende TCP-Verbindung zu Port 443. Weshalb braucht der Rückverkehr dieser etablierten Verbindung normalerweise keine zusätzliche eingehende Allow-Regel?NetworkingStateful FilteringMittelWähle eine Antwort.NSGs filtern generell keinen eingehenden Verkehr.NSGs sind zustandsbehaftet und berücksichtigen den Verbindungszustand.TCP 443 umgeht NSGs grundsätzlich.Eine ausgehende Allow-Regel erzeugt automatisch eine spiegelbildliche eingehende NSG-Regel.NSGs sind stateful und erlauben den Rückverkehr der zugelassenen Verbindung anhand des Flow-Zustands. Sie filtern eingehenden Verkehr; Port 443 umgeht den Filter nicht. Die Flow Records berücksichtigen die etablierte Verbindung, ohne eine spiegelbildliche NSG-Regel zu erzeugen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure-VM soll als NVA Pakete mit einem Ziel außerhalb ihrer eigenen NIC-Adressen zwischen privaten Netzen weiterleiten. Wähle alle zutreffenden Antworten.NetworkingNetwork Virtual AppliancesMittelWähle alle zutreffenden Antworten.Azure-IP-Forwarding muss an der weiterleitenden NIC aktiviert werden.Auch im Gastbetriebssystem muss die erforderliche Weiterleitung passend konfiguriert sein.Eine UDR kann als Virtual-Appliance-Next-Hop die private IP der NVA verwenden.Eine UDR allein aktiviert automatisch IP-Forwarding in NIC und Gastbetriebssystem.Die Azure-NIC muss Forwarding erlauben; die NVA beziehungsweise ihr Betriebssystem muss tatsächlich weiterleiten können. Eine UDR kann die private NVA-IP als Next Hop wählen. Die UDR konfiguriert NIC und Betriebssystem nicht automatisch.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Zwei Azure-VNets derselben Region sind direkt gepeert. Wie fließt Verkehr zwischen ihren VMs bei erlaubenden Sicherheitsregeln?NetworkingVNet PeeringMittelWähle eine Antwort.Direkt über das Microsoft-Backbone, ohne notwendigen Gateway oder öffentliches Internet.Zwingend über öffentliche VM-IP-Adressen im Internet.Zwingend durch einen eigens angelegten VPN-Tunnel.Nur nach Deployment eines ExpressRoute-Gateways in jedem VNet.Peering nutzt privat das Microsoft-Backbone. Öffentliche IP-Adressen, VPN-Tunnel und ExpressRoute-Gateways sind für diese direkte Peering-Kommunikation nicht erforderlich.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für eine Azure-VNet-Peering-Architektur werden regionale Grenzen und Gateway Transit geprüft. Wähle alle zutreffenden Antworten.NetworkingPeering-ArchitekturMittelWähle alle zutreffenden Antworten.Global VNet Peering verbindet VNets in unterschiedlichen Azure-Regionen.Ein VNet, das einen Remote-Gateway per Transit nutzt, kann dabei nicht zugleich einen eigenen Gateway haben.Peering erlaubt grundsätzlich keine Verbindungen über Subscription-Grenzen.Gateway Transit wird grundsätzlich nur bei Peering innerhalb derselben Region unterstützt.Global Peering verbindet Regionen; beim Verwenden eines Remote-Gateways darf das VNet keinen eigenen Gateway besitzen. Subscription-Grenzen sind kein generelles Hindernis, und Gateway Transit wird sowohl regional als auch global unterstützt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Private Endpoint wurde manuell beantragt, seine Verbindung steht auf Pending. Routing und DNS sind korrekt. Warum kann er den vorgesehenen PaaS-Dienst noch nicht erreichen?NetworkingPrivate-Link-FreigabeMittelWähle eine Antwort.Pending bedeutet, dass ein öffentlicher DNS-Record gelöscht werden muss.Der Ressourcenbesitzer muss die Verbindung erst genehmigen; nutzbar ist der Zustand Approved.Der Private Endpoint muss zwingend in derselben Region wie der PaaS-Dienst liegen.Der Client muss zunächst eine vom Dienst initiierte Verbindung annehmen.Nur Approved-Endpunkte können Verkehr senden; Pending wartet auf Freigabe. Der PaaS-Dienst darf in einer anderen Region liegen und Verbindungen werden vom Client initiiert. Das Löschen eines öffentlichen DNS-Records ist keine Bedeutung von Pending.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Für eine Zieladresse ist nach der Routenwahl eine Route mit Next Hop None wirksam. Was macht Azure mit diesem Verkehr?NetworkingRouting-EntscheidungenMittelWähle eine Antwort.Es schickt ihn zwingend an den VPN-Gateway.Es ersetzt None automatisch durch Internet.Es stellt ihn wie beim Next-Hop-Typ Virtual network direkt im VNet zu.Es verwirft den Verkehr, statt ihn weiterzuleiten.Next Hop None bedeutet Verwerfen. Virtual network gateway, Internet und Virtual network sind andere Next-Hop-Typen. None löst weder einen Internet-Fallback noch direkte VNet-Zustellung aus.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team plant die Zuordnung von Azure-Routentabellen zu Subnetzen. Wähle alle zutreffenden Antworten.NetworkingUDR-ZuordnungMittelWähle alle zutreffenden Antworten.Eine Routentabelle kann mehreren Subnetzen zugeordnet werden.Ein Subnetz kann null oder eine Routentabelle zugeordnet haben.Ein Subnetz kann gleichzeitig beliebig viele Routentabellen zugeordnet haben.Eine eigene Routentabelle ist für normale Kommunikation zwischen Subnetzen desselben VNets immer erforderlich.Eine Tabelle kann mehreren Subnetzen dienen; je Subnetz ist höchstens eine Tabelle zugeordnet. Azure-Systemrouten ermöglichen standardmäßig Kommunikation zwischen Subnetzen eines VNets, sodass dafür nicht immer eine UDR-Tabelle nötig ist.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine unterstützte Azure-Anwendung soll über eine verwaltete Identität auf einen Entra-authentifizierten Zieldienst zugreifen. Wähle alle zutreffenden Antworten.SecurityAuthentifizierung und AutorisierungMittelWähle alle zutreffenden Antworten.Die Identität benötigt eine passende Autorisierung am Zieldienst.Die Anwendung kann Tokens ohne selbst verwaltete Zugangsdaten beziehen.Das Aktivieren der Identität erteilt automatisch Zugriff auf alle Zieldienste.Ein Entwickler muss das Passwort der Managed Identity auslesen und regelmäßig wechseln.Managed Identities liefern Tokens ohne selbst verwaltete Credentials, müssen aber am Ziel autorisiert sein. Das Aktivieren erteilt keine allgemeinen Zugriffsrechte; die Zugangsdaten sind dem Entwickler gerade nicht zugänglich.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein Team ersetzt langlebige Cloud-Credentials in GitHub Actions durch OIDC. Welche Aussagen zum dokumentierten Ablauf treffen zu? Wähle alle zutreffenden Antworten.SecurityKurzlebige CredentialsMittelWähle alle zutreffenden Antworten.Der Cloud-Anbieter muss dem vorgesehenen GitHub-Workflow über passende Trust-Bedingungen vertrauen.GitHub liefert ein Token mit Claims über den Workflow-Job.Nach erfolgreicher Prüfung stellt der Cloud-Anbieter ein kurzlebiges Zugriffstoken aus.Jeder Job erhält dadurch ohne Cloud-Autorisierung automatisch Administratorrechte.OIDC verbindet Trust-Konfiguration, ein jobbezogenes GitHub-Token und ein kurzlebiges Cloud-Zugriffstoken nach Claim-Prüfung. Die Cloud-Autorisierung bleibt wirksam; automatische Administratorrechte sind keine Eigenschaft von OIDC.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein GitHub-Actions-Job erhält ein OIDC-Token. Dessen Claims passen nicht zu den Bedingungen der Cloud-Trust-Policy. Welche Korrektur ist erforderlich, statt ein langlebiges Cloud-Secret anzulegen?SecurityWorkload Identity FederationMittelWähle eine Antwort.Nur zusätzliche Ressourcenrollen vergeben, ohne die nicht passenden Trust-Claims zu ändern.Die Trust-Bedingungen und die beabsichtigte Workflow-Identität korrekt aufeinander abstimmen.Nur denselben Job erneut ausführen, ohne seine Identität oder die Trust-Bedingungen zu ändern.Nur ein anderes Deployment-Werkzeug verwenden, das dasselbe abgelehnte Token übermittelt.Der Anbieter prüft die Token-Claims gegen die konfigurierten Trust-Bedingungen. Diese müssen zur beabsichtigten Workflow-Identität passen. Zusätzliche Ressourcenrollen beheben keine gescheiterte Trust-Prüfung. Ein identischer neuer Lauf oder ein anderes Werkzeug mit demselben abgelehnten Token korrigiert die nicht passenden Claims ebenfalls nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Mehrere regelmäßig ersetzte Azure-VMs sollen dieselbe vorab autorisierte Identität verwenden. Deren Lebenszyklus darf nicht an eine einzelne VM gebunden sein. Welche Identität passt?SecurityManaged IdentitiesMittelWähle eine Antwort.Eine systemzugewiesene Identität der ersten VM.Je VM eine neue systemzugewiesene Identität mit identischen Rollenberechtigungen.Je VM eine eigene benutzerzugewiesene Identität, die beim Ersetzen ebenfalls gelöscht wird.Eine benutzerzugewiesene verwaltete Identität, die allen VMs zugeordnet wird.Benutzerzugewiesene Managed Identities existieren unabhängig und können mehreren Ressourcen zugeordnet werden. Systemzugewiesene Identitäten sind nicht teilbar und an ihre Ressource gebunden. Gleiche Rollen machen mehrere Identitäten nicht zu derselben Identität; eigene beim Ersetzen gelöschte benutzerzugewiesene Identitäten erfüllen den gemeinsamen, fortbestehenden Lebenszyklus ebenfalls nicht.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Eine Azure-VM wird endgültig gelöscht. Was geschieht mit dem Service Principal ihrer systemzugewiesenen verwalteten Identität?SecurityIdentitätslebenszyklusMittelWähle eine Antwort.Azure löscht ihn zusammen mit der übergeordneten Ressource.Er wird automatisch zu einer benutzerzugewiesenen Identität.Er bleibt grundsätzlich bestehen, bis ein Administrator ihn manuell löscht.Er wird automatisch auf die nächste VM gleichen Namens übertragen.Der Service Principal einer systemzugewiesenen Identität teilt den Lebenszyklus der Ressource und wird automatisch gelöscht. Unabhängiger Lebenszyklus gehört zu benutzerzugewiesenen Identitäten; weder Typumwandlung noch Übertragung ist die dokumentierte Folge.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Ein versehentlich committetes Passwort ist wieder sicher, sobald man es in einem neuen Commit löscht.SecuritySecretsMittelIst die Aussage richtig oder falsch?RichtigFalschDer alte Commit enthält das Passwort weiterhin und bleibt in der Historie und in allen Klonen erreichbar. Das Secret muss als kompromittiert gelten und rotiert werden; das Bereinigen der Historie ist nur ein Zusatzschritt.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Welche der folgenden Angebote sind typische Beispiele für PaaS (Platform as a Service)?CloudServicemodelleEinfachWähle alle zutreffenden Antworten.Azure App ServiceGoogle App EngineEine Azure Virtual MachineMicrosoft 365Bei PaaS stellt der Anbieter die Laufzeitplattform bereit; man deployt nur noch den Code. App Service und App Engine sind klassische Beispiele. Eine VM ist IaaS, Microsoft 365 ist SaaS.ÜberprüfenNächste Frage
Wofür ist beim Betrieb einer virtuellen Maschine (IaaS) typischerweise der Kunde verantwortlich?CloudShared ResponsibilityEinfachWähle eine Antwort.Für die physische Sicherheit des Rechenzentrums.Für den Hypervisor der Hosts.Für Patches des Gastbetriebssystems.Für die Stromversorgung der Server.Im Modell der geteilten Verantwortung kümmert sich der Anbieter bei IaaS um Rechenzentrum, Hardware und Virtualisierung. Betriebssystem, Anwendungen und Daten in der VM liegen beim Kunden.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
systemctl enable nginx startet den Dienst sofort.LinuxsystemdMittelIst die Aussage richtig oder falsch?RichtigFalschenable sorgt nur dafür, dass der Dienst beim Systemstart gestartet wird. Für einen sofortigen Start braucht es systemctl start oder die Kombination systemctl enable --now.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
terraform plan verändert keine Infrastruktur, sondern zeigt nur die geplanten Änderungen an.InfrastructureTerraformEinfachIst die Aussage richtig oder falsch?RichtigFalschterraform plan erstellt einen Ausführungsplan und zeigt ihn an. Erst terraform apply führt die Änderungen tatsächlich durch.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Wozu dient die State-Datei in Terraform?InfrastructureTerraformEinfachWähle eine Antwort.Sie speichert die Zuordnung zwischen Konfiguration und real existierenden Ressourcen.Sie enthält die Provider-Binaries für den Offline-Betrieb.Sie protokolliert alle Konsolenausgaben vergangener Läufe.Sie ersetzt die .tf-Dateien, sobald die Infrastruktur erstellt ist.Terraform verfolgt im State, welche realen Ressourcen zu welchen Ressourcen in der Konfiguration gehören, und speichert dazu Attribute und Metadaten. Auf dieser Basis berechnet terraform plan die nötigen Änderungen.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage
Welche der folgenden Objekte sind Kubernetes-Workload-Ressourcen, die Pods verwalten?KubernetesWorkloadsMittelWähle alle zutreffenden Antworten.DeploymentStatefulSetDaemonSetConfigMapDeployment, StatefulSet und DaemonSet erzeugen und verwalten Pods. Eine ConfigMap speichert lediglich Konfigurationsdaten, die Pods nutzen können.Mehr dazu in der Quelle (öffnet in neuem Tab)ÜberprüfenNächste Frage