Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung in Verbindung mit der Cloud Healthcare API.
Cloud Healthcare API kann nicht aktiviert werden.
Bei der erstmaligen Aktivierung der Cloud Healthcare API in Ihrem Google Cloud-Projekt wird möglicherweise ein Berechtigungsfehler angezeigt, der darauf hinweist, dass Sie nicht berechtigt sind, Google Cloud APIs für Ihr Projekt zu aktivieren.
Informationen zum Aktivieren von Google Cloud APIs, einschließlich der Cloud Healthcare API, finden Sie unter APIs aktivieren und deaktivieren.
Keine Authentifizierung bei der Cloud Healthcare API möglich
Beim Aufrufen der Cloud Healthcare API kann es zu einer Fehlermeldung kommen, die besagt, dass Ihre Standardanmeldedaten für Anwendungen nicht verfügbar sind.
Unter Bei der API authentifizieren finden Sie Informationen dazu, wie Sie Standardanmeldedaten für Anwendungen konfigurieren oder Anmeldedaten zur Authentifizierung manuell an Anwendungen oder Befehle übergeben.
Fehlendes Cloud Healthcare API-Dienstkonto oder Healthcare-Dienst-Agent-Rolle
Das Dienstkonto Cloud Healthcare-Dienst-Agent wird automatisch erstellt, wenn Sie die Cloud Healthcare API aktivieren und Ihren ersten Datensatz erstellen. Das Dienstkonto wird von Google verwaltet. Sie können das Dienstkonto nicht komplett löschen. Unter bestimmten Umständen kann es jedoch vorkommen, dass es auf der Seite „Identitäts- und Zugriffsverwaltung“ nicht angezeigt wird und Probleme mit der Cloud Healthcare API auftreten.
Damit die Cloud Healthcare API ordnungsgemäß funktioniert und Aufgaben wie das Veröffentlichen und Empfangen von Nachrichten aus Pub/Sub oder das Schreiben von Messwerten in Cloud Logging erfüllt, muss das Dienstkonto des Cloud Healthcare-Dienst-Agents vorhanden und die IAM-Rolle Healthcare-Dienst-Agent haben.
Wenn eines der folgenden Probleme auftritt, können Sie das Dienstkonto des Cloud Healthcare-Dienst-Agents neu erstellen oder ihm die IAM-Rolle Healthcare-Dienst-Agent zuweisen:
- Sie finden das Dienstkonto Cloud Healthcare-Dienst-Agent auf der Seite Identitäts- und Zugriffsverwaltung nicht.
- Sie finden das Dienstkonto von Cloud Healthcare-Dienst-Agent, aber es enthält nicht die Rolle Healthcare-Dienst-Agent.
Verwenden Sie die Google Cloud CLI, um dem Dienstkonto Cloud Healthcare-Dienst-Agent mithilfe der ID des Dienstkontos die Rolle healthcare.serviceAgent
hinzuzufügen: Diese hat das Format service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
.
Führen Sie den Befehl gcloud projects add-iam-policy-binding
aus, um das Dienstkonto neu zu erstellen oder ihm die IAM-Rolle Healthcare-Dienst-Agent zuzuweisen. Wie Sie die PROJECT_ID und PROJECT_NUMBER finden, erfahren Sie unter Projekte identifizieren.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \ --role=roles/healthcare.serviceAgent
Wenn die Anfrage erfolgreich ist, wird in der Eingabeaufforderung eine Meldung ähnlich der folgenden angezeigt:
Updated IAM policy for project [PROJECT_ID]. bindings: ... - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com role: roles/healthcare.serviceAgent ... etag: VALUE version: VALUE
Wechseln Sie zur Seite "Identitäts- und Zugriffsverwaltung" zurück und kontrollieren Sie Folgendes:
- Die Spalte Mitglied enthält eine Dienstkontokennung im Format
service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount
. - Die Spalte Name enthält in derselben Zeile wie die Spalte Mitglied den Cloud Healthcare-Dienst-Agent.
- Die Spalte Rolle enthält in derselben Zeile wie die Spalte Mitglied den Eintrag Healthcare-Dienst-Agent.
FHIR-Transaktions-Bundle wurde aufgrund kumulativer hoher Last abgebrochen
Wenn Sie ein FHIR-Transaktions-Bundle ausführen, erhalten Sie möglicherweise eine Fehlermeldung, die besagt, dass die Anfrage "aufgrund der kumulativen hohen Auslastung für die Ausführung des Transaktionspakets" abgebrochen wurde.
Bei der Ausführung von Transaktions-Bundles gibt es keine Begrenzung, wie viele Sperrkonflikte Sie erstellen können. Wenn Sie beispielsweise einen Satz von Sets erstellen, bei dem jedes Bundle eine einzelne gemeinsame Patientenressource aktualisiert und auch andere nicht gängige Ressourcen erstellt und diese parallel ausführen, dauert es länger schnell erhöhen, da jedes Bundle die Sperre für diesen gemeinsamen Patienten für die gesamte Transaktion halten muss. Daher tritt eine Zeitüberschreitung auf. Wenn die Cloud Healthcare API Zeitüberschreitungen für Transaktionen erkennt, lehnt sie vorübergehend alle Transaktionspakete mit dieser Fehlermeldung ab, um zu versuchen, die Konflikte zu beheben.
Versuchen Sie Folgendes, um dieses Problem zu vermeiden:
- Verwenden Sie Batch-Bundles, wenn Sie keine Transaktionssemantik benötigen. Batch-Bundles vermeiden dieses Problem vollständig, da sie nicht atomar sind. Dies reduziert jedoch die referenzielle Integritätserzwingung.
- Wenn Sie feststellen können, welche Ressource parallel aktualisiert wird, prüfen Sie, ob diese Aktualisierungen berücksichtigt oder vermieden werden können. In FHIR geschieht dies, wenn Sie eine neue Ressource wie Beobachtung erstellen und auch den zugehörigen Patienten (oder die Organisation, den Standort, das Gerät usw.) aktualisieren, die bereits vorhanden und nicht geändert sind.
- Ratenbegrenzung auf Clientseite; Wenn die Ausführung Ihrer Transaktions-Bundles sehr lange dauert, reduzieren Sie die Aufnahmerate, bevor die Zeitüberschreitung der Anfragen beginnt.