/images/avatar.png

Envoy的ext_proc

本篇文章中,我们学习Envoy中的ext_proc功能。

基本功能

首先我们搭建一个最简单的ext_proc,并观察他的基本使用方法。

首先我们搭建一个简单的外部后端。该后端只处理response header,他在原有header的基础上加一个x-extproc-helloheader。

Envoy里流式协议的数据流

定义后端服务

先用protobuf定义你的服务。该服务有一个双向流API BiStream。

syntax = "proto3";
package api;
option go_package = "envoystreaming/api";

service StreamService {
  rpc BiStream(stream Data) returns (stream Data);
}

message Data { string body = 1; }
提示
为了使Go服务能识别到你定义的服务。你需要先运行下面的代码生成服务定义。执行之后,你会看到他生成了名为stream_grpc.pb.go的Go语言服务定义。

protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    api/stream.proto

然后我们用Go语言实现该服务。该服务按顺序从输入流中轮询发送过来的数据。当他发现有数据发送过来的时候,间隔5秒发送一个ACK响应,一共发三个。

GCP中的IAM问答

问题
什么是Service Account?
信息
Service Account(服务账号)是一种特殊类型的 Google 账号,它通常代表一个应用、服务或虚拟机(VM)等非人类用户,而不是代表最终的终端用户。 它用于在不需要用户凭据(如密码或 OAuth 令牌)的情况下,让你的代码或服务能够安全地调用 Google Cloud APIs 并在 GCP 内进行身份验证与授权。
问题
Service Account的格式是什么?
信息

Service Agent 的邮箱格式因产品而异。常见格式是: