Google GKE 上带有 PubSub 的医疗保健 API - INVALID_ARGUMENT
Google Healthcare API on GKE with PubSub - INVALID_ARGUMENT
我们一直在测试 Google Healthcare API,特别是在 HL7 中,当我 运行 通过教程时,我遇到了障碍。我应该提一下,我在 Kubernetes 和 AWS 方面有相当多的经验,但没有那么多 Google 云。
这一步给我带来了麻烦:
当我尝试从 VM 发送消息时,我没有看到响应,并且 pod 中的日志显示以下错误:
I0411 17:27:33.756432 1 healthapiclient.go:163] Dialing connection to https://healthcare.googleapis.com:443/v1beta1
I0411 17:27:58.809932 1 mllpreceiver.go:107] Accepted connection from 10.128.0.5:58698
I0411 17:27:58.810140 1 healthapiclient.go:182] Sending message of size 319.
E0411 17:27:58.880369 1 mllpreceiver.go:118] handleMessage: Send: request failed: 400
{
"error": {
"code": 400,
"message": "location ID invalid, expected us-central1",
"status": "INVALID_ARGUMENT"
}
}
I0411 17:27:58.880691 1 mllpreceiver.go:119] Closed connection from 10.128.0.5:58698
这个错误让人费解,因为GKE集群和VM在同一个region/zone。有人遇到过 MLLP 适配器和 GKE 的类似问题吗?
似乎 HL7v2 商店路径中的位置 ID 参数(在 yaml 中,hl7_v2_location_id
)可能丢失或不正确;该错误看起来像是从 MLLP 适配器对 Cloud Healthcare API 的请求中引发的,而不是 GKE 特有的任何错误。
问题是我指定 location/zone:
的方式
最初我的模板是这样的:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mllp-adapter-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: mllp-adapter
spec:
containers:
- name: mllp-adapter
imagePullPolicy: Always
image: gcr.io/cloud-healthcare-containers/mllp-adapter
ports:
- containerPort: 2575
protocol: TCP
name: "port"
command:
- "/usr/mllp_adapter/mllp_adapter"
- "--port=2575"
- "--hl7_v2_project_id=XXXXXXXXXXXXX"
- "--hl7_v2_location_id=us-central1-b"
- "--hl7_v2_dataset_id=XXX-test-set"
- "--hl7_v2_store_id=hlstore"
- "--api_addr_prefix=https://healthcare.googleapis.com:443/v1beta1"
- "--logtostderr"
- "--receiver_ip=0.0.0.0"
- "--pubsub_project_id=XXXXXXXX-api-dev"
- "--pubsub_subscription=XX-incomingsub"
并且 location_id
需要像这样指定:
- "--hl7_v2_location_id=us-central1"
谢谢。
我们一直在测试 Google Healthcare API,特别是在 HL7 中,当我 运行 通过教程时,我遇到了障碍。我应该提一下,我在 Kubernetes 和 AWS 方面有相当多的经验,但没有那么多 Google 云。
这一步给我带来了麻烦:
当我尝试从 VM 发送消息时,我没有看到响应,并且 pod 中的日志显示以下错误:
I0411 17:27:33.756432 1 healthapiclient.go:163] Dialing connection to https://healthcare.googleapis.com:443/v1beta1
I0411 17:27:58.809932 1 mllpreceiver.go:107] Accepted connection from 10.128.0.5:58698
I0411 17:27:58.810140 1 healthapiclient.go:182] Sending message of size 319.
E0411 17:27:58.880369 1 mllpreceiver.go:118] handleMessage: Send: request failed: 400
{
"error": {
"code": 400,
"message": "location ID invalid, expected us-central1",
"status": "INVALID_ARGUMENT"
}
}
I0411 17:27:58.880691 1 mllpreceiver.go:119] Closed connection from 10.128.0.5:58698
这个错误让人费解,因为GKE集群和VM在同一个region/zone。有人遇到过 MLLP 适配器和 GKE 的类似问题吗?
似乎 HL7v2 商店路径中的位置 ID 参数(在 yaml 中,hl7_v2_location_id
)可能丢失或不正确;该错误看起来像是从 MLLP 适配器对 Cloud Healthcare API 的请求中引发的,而不是 GKE 特有的任何错误。
问题是我指定 location/zone:
的方式最初我的模板是这样的:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mllp-adapter-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: mllp-adapter
spec:
containers:
- name: mllp-adapter
imagePullPolicy: Always
image: gcr.io/cloud-healthcare-containers/mllp-adapter
ports:
- containerPort: 2575
protocol: TCP
name: "port"
command:
- "/usr/mllp_adapter/mllp_adapter"
- "--port=2575"
- "--hl7_v2_project_id=XXXXXXXXXXXXX"
- "--hl7_v2_location_id=us-central1-b"
- "--hl7_v2_dataset_id=XXX-test-set"
- "--hl7_v2_store_id=hlstore"
- "--api_addr_prefix=https://healthcare.googleapis.com:443/v1beta1"
- "--logtostderr"
- "--receiver_ip=0.0.0.0"
- "--pubsub_project_id=XXXXXXXX-api-dev"
- "--pubsub_subscription=XX-incomingsub"
并且 location_id
需要像这样指定:
- "--hl7_v2_location_id=us-central1"
谢谢。