grpc - 如何使用 gRPC 将 HOST 标头传递给 AWS ALB
问题描述
我成功地创建了一个支持带有私有自签名证书的 gRPC 的 ALB;Host
但是,我计划使用此 ALB 根据ALB 支持的标头对 gRPC 请求进行内容路由。直到现在,我尝试都无济于事。有没有人在这方面取得成功?这是我的代码:
import json
import grpc
import base64
from lib import unified_pb2
from lib import unified_pb2_grpc
# Setup
uri = 'internal-test-lb-micky-18886655.us-east-2.elb.amazonaws.com'
with open('server.crt', 'rb') as f:
trusted_certs = f.read()
credentials = grpc.ssl_channel_credentials(root_certificates=trusted_certs)
channel = grpc.secure_channel(f'{uri}:443', credentials)
metadata=( ('host', 'qa.mydomain.com'),)
cf_greeters_stub = unified_pb2_grpc.GreetersStub(channel)
cf_request = unified_pb2.Request()
cf_request.cf_greeters_request.greeter_text = "hello"
data = cf_greeters_stub.GetResponse(cf_request,metadata=metadata)
print(data)
我的 ALB 具有拦截Host
标头的规则,并应基于该规则路由到正确的目标组,但是 ALB 没有这样做,将请求传递给默认规则。我创建的规则在200
匹配时返回,在正文中返回 JSON 字典。
解决方案
推荐阅读
- vb.net - 在 vb 中使用进度条来显示特定的时间范围
- visual-studio - MSBuild CL 任务参数
- html - 水平溢出元素需要溢出-y 可见,为什么?
- javascript - Puppeteer 拦截点击
- hibernate - hibernate MySQL57Dialect 为什么它试图在更新时删除索引?
- mysql - 为什么这个 MySQL 存储过程似乎没有执行它的退出处理程序?
- kotlin - 如何在 Kotlin 中创建回调函数?
- reactjs - 无法添加重定向按钮
- gcc - 为什么 GNAT(通过 GCC 4.7)是构建 GCC 的先决条件?
- julia - 为什么我的向量没有累积迭代?