In questa pagina viene spiegato come completare le attività seguenti:
- Configura intestazioni HTTP personalizzate nelle richieste all'API Cloud Healthcare.
Utilizza Cloud Audit Logs per cercare le richieste e le intestazioni HTTP personalizzate corrispondenti per effettuare le seguenti operazioni:
- Vedi chi ha inviato una richiesta e quando.
- Semplifica il deployment e il debug individuando la richiesta che ha causato un determinato errore.
Per ulteriori informazioni sull'utilizzo di Cloud Audit Logs nell'API Cloud Healthcare, consulta Visualizzazione di Cloud Audit Logs.
Metodi configurabili
Puoi configurare intestazioni HTTP personalizzate per i metodi dell'API Cloud Healthcare nelle seguenti risorse REST:
projects.locations
projects.locations.datasets
projects.locations.dicomStores
projects.locations.dicomStores.studies
projects.locations.dicomStores.studies.series
projects.locations.dicomStores.studies.series.instances
projects.locations.dicomStores.studies.series.instances.frames
projects.locations.datasets.fhirStores
projects.locations.datasets.fhirStores.fhir
projects.locations.datasets.hl7V2Stores
projects.locations.datasets.hl7V2Stores.messages
projects.locations.datasets.operations
Configurare intestazioni HTTP personalizzate
Esistono due tipi di intestazioni HTTP personalizzate che puoi specificare nelle richieste dell'API Cloud Healthcare e che puoi visualizzare negli audit log. Puoi utilizzare ciascun tipo in modo esclusivo o combinarli.
Logging degli ID personalizzati. Puoi specificare un'intestazione HTTP personalizzata
X-Request-Id
per assegnare a ciascuna richiesta il proprio ID personalizzato, quindi cercare negli audit log una richiesta contenente l'ID. Per fornire un ID personalizzato, specifica l'intestazione HTTP personalizzata nel seguente formato:X-Request-Id: REQUEST_ID
Specifica un valore univoco per REQUEST_ID in ogni richiesta.
La maggior parte dei linguaggi di programmazione ha un modo per generare ID casuali da usare per creare l'ID richiesta. Ad esempio, il modulo Python
uuid
ha una funzioneuuid.uuid4()
che puoi utilizzare per generare ID automaticamente per ogni richiesta. L'API Cloud Healthcare non genera ID richiesta.Logging dei metadati. Puoi includere ulteriori informazioni sui metadati nelle intestazioni HTTP personalizzate utilizzando l'intestazione
X-Goog-Healthcare-Audit-IDENTIFIER
. L'intestazione identifica in modo univoco il tipo di informazioni dei metadati.I metadati vengono archiviati nell'audit log per ogni richiesta. Per fornire informazioni sui metadati, specifica una o più intestazioni HTTP personalizzate nel seguente formato:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
Sostituisci IDENTIFIER con un identificatore leggibile. Sostituisci VALUE con un valore per i metadati. Puoi specificare più valori in un elenco separato da virgole utilizzando la seguente sintassi:
X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
Ad esempio:
X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
Puoi anche specificare più intestazioni HTTP personalizzate con i propri valori univoci:
X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2 X-Goog-Healthcare-Audit-MyIdentifier2: Value3
Visualizza gli audit log in Cloud Audit Logs
Vedi Visualizzazione dei log.
Esempio
L'esempio seguente mostra uno scenario in cui specifichi intestazioni HTTP personalizzate in una richiesta fhir.create
.
Supponiamo che tu stia eseguendo uno studio e che tu abbia un'applicazione mobile per i pazienti chiamata PatientApp
. I pazienti nello studio sono divisi in
due coorti: Cohort1
e Cohort2
. Per identificare ogni richiesta proveniente da Cohort1
con un ID univoco e il nome dell'applicazione mobile, specifica le seguenti intestazioni HTTP personalizzate in ogni richiesta:
X-Request-Id: REQUEST_ID X-Goog-Healthcare-Audit-AppName: PatientApp X-Goog-Healthcare-Audit-CohortName: Cohort1
Le intestazioni HTTP personalizzate vengono visualizzate nel campo metadata
dell'audit log di ogni richiesta in Cloud Audit Logs.
Il seguente esempio mostra come utilizzare curl
per creare una nuova risorsa Patient in un archivio FHIR. La richiesta contiene le seguenti intestazioni HTTP personalizzate:
X-Request-Id: 123
X-Goog-Healthcare-Audit-AppName: PatientApp
X-Goog-Healthcare-Audit-CohortName: Cohort1
Prima di inviare la richiesta, sostituisci quanto segue:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- DATASET_ID: set di dati padre dell'archivio FHIR
- FHIR_STORE_ID: l'ID archivio FHIR
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "X-Request-Id: 123" \ -H "X-Goog-Healthcare-Audit-AppName: PatientApp" \ -H "X-Goog-Healthcare-Audit-CohortName: Cohort1" \ --data '{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }' "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
L'output è il seguente:
{ "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "meta": { "lastUpdated": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ", "versionId": "VERSION_ID" }, "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" }
Se cerchi la richiesta in Cloud Audit Logs, l'audit log avrà il seguente aspetto:
{ logName: "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_write" protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" metadata: { X-Request-Id: [123] X-Goog-Healthcare-Audit-AppName: ["PatientApp"] X-Goog-Healthcare-Audit-CohortName: ["Cohort1"] } ... } ... }