TL,博士;
- 在生成 API 描述符文件时,运行 Python gRPC 插件最快/最轻的 Linux Docker 映像是什么?
- 上述 API 描述符是否应该成为 Cloud Build工件并保存到 Cloud Storage 存储桶中?
- ...为了用于
gcloud
将 API 部署到 Cloud Endpoints。
- ...为了用于
细节
我在Google Compute Engine上运行的 Docker 容器中运行Python gRPC 服务和 ESP 。关于 gRPC > API 管理展示了我的应用架构图:
我的高级构建步骤:
1)使用 protoc 协议缓冲区编译器创建描述符文件, 。api_descriptor.pb
python -m grpc_tools.protoc \
--include_imports \
--include_source_info \
--proto_path=. \
--descriptor_set_out=api_descriptor.pb \
--python_out=generated_pb2 \
--grpc_python_out=generated_pb2 \
bookstore.proto
2) 使用 gcloud 命令行工具部署 proto 描述符文件 ( ) 和配置文件:api_descriptor.pb
gcloud endpoints services deploy api_descriptor.pb api_config.yaml
3) 使用 Python 插件生成 gRPC 代码:
python -m grpc_tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/helloworld.proto
4)构建最终的 Docker 映像以部署在Google Compute Engine上。生成的 Docker 映像应包括:
- 从第 3 步生成的 gRPC 代码)。
- gRPC 服务器所需的任何其他 Python 包。
第 4 步)使用以下 Dockerfile 构建“gRPC 服务器”(附图中最右边的蓝色框):
FROM gcr.io/google_appengine/python:latest
WORKDIR .
EXPOSE 8081
ENTRYPOINT ["python", "server.py"]
ADD requirements.txt .
ADD protos ./protos
RUN mkdir out
RUN apt-get update && \
apt-get install -y python2.7 python-pip && \
pip install -r requirements.txt
RUN python \
-m grpc_tools.protoc \
--python_out=out \
--grpc_python_out=out \
--proto_path=. \
bookstore.proto
我正在将这些构建步骤迁移到 Google 的Cloud Build。
AFAICT 我的高级构建步骤应该映射到 Cloud Builder官方构建器图像。
1)???
2) 使用cloud-builders/gcloud/运行gcloud
命令。
3)???
4) 使用cloud-builders/ docker 构建 'gRPC Server' Docker 镜像。
步骤 2) 和 3) 已经有可用的云构建器(请参阅GoogleCloudPlatform/cloud-builders)。
但是,我不确定如何将步骤1)和3)迁移到 Cloud Build。这两个步骤都需要运行基础 Linux Docker 映像中不可用的 Python 插件。
AFAICT 步骤 1) 应生成 Cloud Build工件并api_descriptor.pb
保存到 Cloud Storage Bucket。
- 在生成 API 描述符文件时,运行 Python gRPC 插件最快/最轻的 Linux Docker 映像是什么?
- 上述 API 描述符是否应该成为 Cloud Build工件并保存到 Cloud Storage 存储桶中?
- ...为了用于
gcloud
将 API 部署到 Cloud Endpoints。
- ...为了用于