我已经设置了Google Cloud Endpoints项目并可以调用http / https请求。Endpoints为我提供了MY_API.endpoints.MY_PROJECT.cloud.goog域名,我可以使用它。我正在使用gRPC Cloud Endpoints与HTTP / JSON转换功能。
它部署在Google Kubernetes Engine上(附有部署yaml脚本)。
当我尝试使用该URL创建推送订阅时,我收到以下错误:
“提供的HTTP URL未在订阅的父项目中注册(url =“ https://MY_API.endpoints.MY_PROJECT.cloud.goog/v1/path”,project_id =“PROJECT_ID”)。 ”
我的gcloud调用:
它部署在Google Kubernetes Engine上(附有部署yaml脚本)。
当我尝试使用该URL创建推送订阅时,我收到以下错误:
“提供的HTTP URL未在订阅的父项目中注册(url =“ https://MY_API.endpoints.MY_PROJECT.cloud.goog/v1/path”,project_id =“PROJECT_ID”)。 ”
我的gcloud调用:
gcloud pubsub subscriptions create SUB_NAME --topic=projects/MY_PROJECT/topics/MY_TOPIC --push-endpoint="https://MY_API.endpoints.MY_PROJECT.cloud.goog/v1/path"
我尝试创建使用该DNS名称的Cloud DNS公共区域并设置相应记录。但我仍然无法在Google Search Console中验证所有权。
问题是如何为MY_API.endpoints.MY_PROJECT.cloud.goog域设置DNS TXT记录以验证所有权?或者如何以其他方式使用Pubsub推送订阅和Cloud Endpoints gRPC?
如果我能够更改转换为HTTP的gRPC响应的元数据或标头,我可以验证域的所有权。但我怀疑是否有这种方法。
我用于部署的Kubernetes脚本(如果有帮助)。
apiVersion: v1
kind: Service
metadata:
name: GKE_SERVICE_NAME
spec:
ports:
# Port that accepts gRPC and JSON/HTTP2 requests over HTTP.
- port: 80
targetPort: 9000
protocol: TCP
name: http2
selector:
app: GKE_SERVICE_NAME
type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: GKE_SERVICE_NAME
spec:
replicas: 1
template:
metadata:
labels:
app: GKE_SERVICE_NAME
spec:
containers:
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:1
args: [
"--http2_port=9000",
"--service=MY_API.endpoints.MY_PROJECT.cloud.goog",
"--rollout_strategy=managed",
"--backend=grpc://127.0.0.1:50051"
]
ports:
- containerPort: 9000
- name: MY_CONTAINER_NAME
image: gcr.io/MY_PROJECT/IMAGE_NAME:v1
ports:
- containerPort: 50051