Я уже настроил проект Google Cloud Endpoints и могу вызывать запросы http / https.Конечные точки дают мне доменное имя MY_API.endpoints.MY_PROJECT.cloud.goog, которое я могу использовать.Я использую облачные конечные точки gRPC с функцией транскодирования HTTP / JSON в gRPC.
Развертывается в Google Kubernetes Engine (сценарий развертывания yaml присоединен в конце).
Когда я пытаюсьчтобы создать push-подписку с этим 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.
Вопрос в том, как установить запись DNS TXT для домена MY_API.endpoints.MY_PROJECT.cloud.goog, чтобы подтвердить владение?Или как использовать push-подписку Pubsub с Cloud Endpoints gRPC другим способом?
Я мог бы подтвердить владение доменом, если у меня есть возможность изменить мета-заголовки или заголовки ответов gRPC, преобразованных в HTTP.Но я сомневаюсь, что есть способ.
Сценарий 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