

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# トラブルシューティング AWS HealthLake
<a name="reference-healthlake-troubleshooting"></a>

以下のトピックでは、、 AWS SDKs AWS CLI、または HealthLake コンソールの使用時に発生する可能性のあるエラーや問題のトラブルシューティングに関するアドバイスを提供します。このセクションに記載されていない問題が見つかった場合は、このページの右側のサイドバーにある**フィードバックの提供**ボタンを使用して報告します。

**Topics**
+ [データストアアクション](#troubleshooting-data-store)
+ [インポートアクション](#troubleshooting-import)
+ [FHIR APIs](#troubleshooting-fhir-apis)
+ [NLP 統合](#troubleshooting-nlp-integrations)
+ [SQL 統合](#troubleshooting-sql-integrations)

## データストアアクション
<a name="troubleshooting-data-store"></a>

**問題:** * HealthLake データストアを作成しようとすると、次のエラーが表示されます。*

```
AccessDeniedException: Insufficient Lake Formation permission(s): Required Database on Catalog
```

2022 年 11 月 14 日、HealthLake は新しいデータストアを作成するために必要な IAM アクセス許可を更新しました。詳細については、「[HealthLake を使用するように IAM ユーザーまたはロールを設定する (IAM 管理者)](getting-started-setting-up.md#setting-up-configure-iam)」を参照してください。

**問題: ** * AWS SDKs を使用して HealthLake データストアを作成すると、データストアの作成ステータスは例外または不明なステータスを返します。*

`DescribeFHIRDatastore` または `ListFHIRDatastores` API 呼び出しが例外または不明なデータストアステータスを返す場合は、 AWS SDK を最新バージョンに更新します。

## インポートアクション
<a name="troubleshooting-import"></a>

**問題: ** *データが FHIR R4 形式でない場合でも HealthLake を使用できますか?*

HealthLake データストアにインポートできるのは、FHIR R4 形式のデータのみです。既存のヘルスデータを FHIR R4 形式に変換するのに役立つパートナーのリストについては、[AWS HealthLake 「 パートナー](https://docs.aws.amazon.com/healthlake/partners/)」を参照してください。

**問題:** *FHIR インポートジョブが失敗したのはなぜですか?*

インポートジョブが成功すると、 `.ndjson`形式の結果 (出力ログ) を含むフォルダが生成されますが、個々のレコードはインポートに失敗する可能性があります。この場合、インポートに失敗したレコードのマニフェストを含む 2 番目の`FAILURE`フォルダが生成されます。詳細については、「[を使用した FHIR データのインポート AWS HealthLake](importing-fhir-data.md)」を参照してください。

インポートジョブが失敗した理由を分析するには、 `DescribeFHIRImportJob` API を使用して JobProperties を分析します。以下が推奨されます。
+ ステータスが `FAILED`で、メッセージが存在する場合、失敗は入力データサイズや HealthLake クォータを超える入力ファイルの数などのジョブパラメータに関連しています。
+ インポートジョブのステータスが の場合は`COMPLETED_WITH_ERRORS`、マニフェストファイル をチェックして`manifest.json`、正常にインポートされなかったファイルに関する情報を確認してください。
+ インポートジョブのステータスが `FAILED`で、メッセージが存在しない場合は、ジョブの出力場所に移動してマニフェストファイル にアクセスします`manifest.json`。

 入力ファイルごとに、インポートに失敗したリソースの入力ファイル名を持つ失敗出力ファイルがあります。レスポンスには、入力データの場所に対応する行番号 (lineId)、FHIR レスポンスオブジェクト (UpdateResourceResponse)、およびレスポンスのステータスコード (statusCode) が含まれます。

サンプル出力ファイルは次のようになります。

```
{"lineId":3, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"1 validation error detected: Value 'Patient123' at 'resourceType' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z]{1,256}"}]}, "statusCode":400}
{"lineId":5, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"This property must be an simple value, not a com.google.gson.JsonArray","location":["/EffectEvidenceSynthesis/name"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@telecom'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@gender'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@birthDate'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@address'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@maritalStatus'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@multipleBirthBoolean'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@communication'","location":["/EffectEvidenceSynthesis"]},{"severity":"warning","code":"processing","diagnostics":"Name should be usable as an identifier for the module by machine processing applications such as code generation [name.matches('[A-Z]([A-Za-z0-9_]){0,254}')]","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.status': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.population': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposure': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposureAlternative': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.outcome': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/disability-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[3]"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/quality-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[4]"]}]}, "statusCode":400}
{"lineId":7, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"2 validation errors detected: Value at 'resourceId' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z0-9-.]{1,64}; Value at 'resourceId' failed to satisfy constraint: Member must have length greater than or equal to 1"}]}, "statusCode":400}
{"lineId":9, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Missing required id field in resource json"}]}, "statusCode":400}
{"lineId":15, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Invalid JSON found in input file"}]}, "statusCode":400}
```

上記の例は、入力ファイルから対応する入力行の 3、4、7、9、15 行で障害が発生したことを示しています。これらの各行の説明は次のとおりです。
+ 行 3 で、入力ファイルの行 3 で`resourceType`指定された が有効でないことがレスポンスで説明されています。
+ 5 行目には、入力ファイルの 5 行目に FHIR 検証エラーがあることがレスポンスで説明されています。
+ 7 行目のレスポンスでは、入力として`resourceId`提供された の検証の問題があることが説明されています。
+ 9 行目のレスポンスでは、入力ファイルには有効なリソース ID が含まれている必要があることが説明されています。
+ 15 行目で、入力ファイルのレスポンスは、ファイルが有効な JSON 形式ではないことです。

## FHIR APIs
<a name="troubleshooting-fhir-apis"></a>

**問題: ***FHIR RESTful APIs の認可を実装するにはどうすればよいですか?*

使用する [データストア認可戦略](getting-started-concepts.md#concept-data-store-authorization-strategy)を決定します。

を使用して SigV4 認可を作成するには AWS SDK for Python (Boto3)、次の例のようなスクリプトを作成します。

```
import boto3
import requests
import json
from requests_auth_aws_sigv4 import AWSSigV4
 
# Set the input arguments
data_store_endpoint = 'https://healthlake.us-east-1.amazonaws.com/datastore/<datastore id>/r4//'
resource_path = "Patient"
requestBody = {"resourceType": "Patient", "active": True, "name": [{"use": "official","family": "Dow","given": ["Jen"]},{"use": "usual","given": ["Jen"]}],"gender": "female","birthDate": "1966-09-01"}
region = 'us-east-1'
 
#Frame the resource endpoint
resource_endpoint = data_store_endpoint+resource_path
session = boto3.session.Session(region_name=region)
client = session.client("healthlake")
 
# Frame authorization
auth = AWSSigV4("healthlake", session=session)
 
# Call data store FHIR endpoint using SigV4 auth

r = requests.post(resource_endpoint, json=requestBody, auth=auth, )
print(r.json())
```

**問題: ** *カスタマーマネージド KMS キーで暗号化されたデータストアに FHIR RESTful APIs を使用するときに`AccessDenied`エラーが表示されるのはなぜですか?*

ユーザーまたはロールがデータストアにアクセスするには、カスタマーマネージドキーと IAM ポリシーの両方に対するアクセス許可が必要です。ユーザーは、カスタマーマネージドキーを使用するために必要な IAM アクセス許可を持っている必要があります。ユーザーがカスタマーマネージド KMS キーを使用するアクセス許可を HealthLake に付与する許可を取り消したり、廃止したりすると、HealthLake は`AccessDenied`エラーを返します。

HealthLake には、顧客データにアクセスし、データストアにインポートされた新しい FHIR リソースを暗号化し、リクエストされたときに FHIR リソースを復号するためのアクセス許可が必要です。詳細については、「アクセス[許可のトラブルシューティング AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html)」を参照してください。

**問題: ** *10MB のドキュメントを使用して HealthLake への FHIR `POST` API オペレーションが`413 Request Entity Too Large`エラーを返しています。*

AWS HealthLake の同期 Create and Update API 制限は 5MB で、レイテンシーとタイムアウトの増加を回避できます。一括インポート API を使用して、 `Binary`リソースタイプを使用して最大 164MB の大きなドキュメントを取り込むことができます。

## NLP 統合
<a name="troubleshooting-nlp-integrations"></a>

**問題: ** * HealthLake の統合自然言語処理機能を有効にするにはどうすればよいですか?*

2022 年 11 月 14 日現在、HealthLake データストアのデフォルトの動作が変更されています。

**現在のデータストア**: 現在の HealthLake データストアはすべて、base64 でエンコードされた`DocumentReference`リソースでの自然言語処理 (NLP) の使用を停止します。つまり、新しい`DocumentReference`リソースは NLP を使用して分析されず、リソースタイプのテキストに基づいて新しい`DocumentReference`リソースは生成されません。既存の`DocumentReference`リソースの場合、NLP を介して生成されたデータとリソースは残りますが、2023 年 2 月 20 日以降は更新されません。

**新しいデータストア**: 2023 年 2 月 20 日以降に作成された HealthLake データストアは、base64 でエンコードされた`DocumentReference`リソースで自然言語処理 (NLP) を実行*しません*。

HealthLake NLP 統合を有効にするには、 を使用してサポートケースを作成します[AWS Support Center Console](https://console.aws.amazon.com/support/home#/)。ケースを作成するには、 にログインし AWS アカウント、**ケースの作成**を選択します。ケースとケース管理の作成の詳細については、「 *サポート ユーザーガイド*」の[「サポートケースとケース管理の作成](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html)」を参照してください。

**問題:** *>統合 NLP で処理できなかった`DocumentReference`リソースを見つけるにはどうすればよいですか?*

`DocumentReference` リソースが有効でない場合、HealthLake は統合された医療 NLP 出力で提供するのではなく、検証エラーを示す拡張機能を提供します。NLP 処理中に検証エラーの原因となった`DocumentReference`リソースを見つけるには、HealthLake の FHIR `search`関数を検索キー **cm-decoration-status** および検索値 **VALIDATION\$1ERROR** とともに使用できます。この検索では、検証エラーの原因となったすべての`DocumentReference`リソースと、エラーの性質を説明するエラーメッセージが一覧表示されます。検証エラーがある`DocumentReference`リソースの拡張フィールドの構造は、次の例のようになります。

```
"extension": [
          {
              "extension": [
                  {
                      "url": "http://healthlake.amazonaws.com/aws-cm/status/",
                      "valueString": "VALIDATION_ERROR"
                  },
                  {
                      "url": "http://healthlake.amazonaws.com/aws-cm/message/",
                      "valueString": "Resource led to too many nested objects after NLP operation processed the document. 10937 nested objects exceeds the limit of 10000."
                  }
              ],
              "url": "http://healthlake.amazonaws.com/aws-cm/"
          }
    ]
```

**注記**  
は、NLP デコレーションによって 10,000 個を超えるネストされたオブジェクトが作成された場合にも発生する`VALIDATION_ERROR`可能性があります。この場合、処理する前にドキュメントを小さなドキュメントに分割する必要があります。

## SQL 統合
<a name="troubleshooting-sql-integrations"></a>

**問題: ** *新しいデータレイク管理者を追加する`permissions error: lakeformation:PutDataLakeSettings`ときに Lake Formation を取得するのはなぜですか?*

IAM ユーザーまたはロールに `AWSLakeFormationDataAdmin` AWS 管理ポリシーが含まれている場合、新しいデータレイク管理者を追加することはできません。以下を含むエラーが表示されます。

```
User arn:aws:sts::111122223333:assumed-role/lakeformation-admin-user is not authorized to perform: lakeformation:PutDataLakeSettings on resource: arn:aws:lakeformation:us-east-2:111122223333:catalog:111122223333 with an explicit deny in an identity-based policy
```

Lake AWS Formation データレイク管理者として IAM ユーザーまたはロールを追加するには、 AWS 管理ポリシー`AdministratorAccess`が必要です。IAM ユーザーまたはロールにも アクションが含まれている`AWSLakeFormationDataAdmin`場合、アクションは失敗します。`AWSLakeFormationDataAdmin` AWS 管理ポリシーには、 AWS Lake Formation API オペレーション の明示的な拒否が含まれています`PutDataLakeSetting`。`AdministratorAccess` 管理ポリシー AWS を使用するためのフルアクセス権を持つ管理者でも、`AWSLakeFormationDataAdmin`ポリシーによって制限できます。

**問題: ** *Amazon Athena SQL 統合を使用するように既存の HealthLake データストアを移行するにはどうすればよいですか?*

2022 年 11 月 14 日より前に作成された HealthLake データストアは機能しますが、SQL を使用して Athena でクエリすることはできません。Athena で既存のデータストアをクエリするには、まず新しいデータストアに移行する必要があります。

**HealthLake データを新しいデータストアに移行するには**

1. 新しいデータストアを作成します。

1. 既存の から Amazon S3 バケットにデータをエクスポートします。

1. Amazon S3 バケットから新しいデータストアにデータをインポートします。

**注記**  
Amazon S3 バケットにデータをエクスポートすると、追加料金が発生します。追加料金は、エクスポートするデータのサイズによって異なります。

**問題: ** *SQL 統合用の新しい HealthLake データストアを作成する場合、データストアのステータスは から変更されません`Creating`。*

新しい HealthLake データストアを作成しようとしたときに、データストアのステータスが**「作成**中」から変更されない場合は、 を使用するように Athena を更新する必要があります AWS Glue Data Catalog。詳細については、[「Amazon Athena ユーザーガイド」の「 AWS Glue データカタログへのstep-by-stepのアップグレード](https://docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html)」を参照してください。 *Amazon Athena *

を正常にアップグレードしたら AWS Glue Data Catalog、HealthLake データストアを作成できます。

古い HealthLake データストアを削除するには、 を使用してサポートケースを作成します[AWS Support Center Console](https://console.aws.amazon.com/support/home#/)。ケースを作成するには、 にログインし AWS アカウント、**ケースの作成**を選択します。詳細については、「 *サポート ユーザーガイド*」の[「サポートケースとケース管理の作成](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html)」を参照してください。

**問題: ** *新しい HealthLake データストアにデータをインポートした後、Athena コンソールが機能しない*

新しい HealthLake データストアにデータをインポートすると、そのデータはすぐに使用できない場合があります。これは、データが Apache Iceberg テーブルに取り込まれる時間を確保するためです。後でもう一度試してください。

**問題: ** *Athena の検索結果を他の AWS サービスに接続するにはどうすればよいですか?*

Athena の検索結果を他の AWS サービスと共有する場合、SQL 検索クエリ`json_extract[1]`の一部として を使用すると問題が発生する可能性があります。この問題を修正するには、 を に更新する必要があります`CATVAR`。

保存結果、**テーブル** (静的）、または**ビュー** (動的) **を作成**しようとすると、この問題が発生する可能性があります。