如何解决在Cloud Run上本地运行数据流
我正在尝试针对流数据流自动执行功能测试。但是,流数据流正在侦听位于项目外部的pub子主题,在该子主题中,我们无权访问用于执行测试的发布消息。 当我手动测试数据流时,我只是在本地运行它,然后连接到我们内部的pubsub主题,在这里我们可以控制发布消息。 因此,我想针对我们的功能测试自动执行相同的行为。 以下是我对此的想法,
- 在Cloud Run中的容器上本地运行数据流(侦听内部主题)
- 通过向内部主题发布消息开始功能测试
- 等待几秒钟,然后检查是否已将邮件处理到BigQuery
对于step1,我编写了以下docker文件(为简单起见,一些命令已被排除在外),
# Use the official lightweight Python image.
# https://hub.docker.com/_/python
FROM python:3.8-slim
# Allow statements and log messages to immediately appear in the Knative logs
ENV PYTHONUNBUFFERED True
#Install git
RUN apt-get update \
&& apt-get install -y git
# Make ssh dir
RUN mkdir /root/.ssh/
# Copy over private key,and set permissions
#Change directory and clone git repo
#Set working directory and authenticate service account
# Install dependencies
RUN pip install -r requirements.txt
# Run dataflow locally
CMD ["python","main.py","deploy","local"]
然后,我构建了在Container Registry中创建该图像的图像。 然后,我进入了云运行控制台,并尝试使用该映像创建服务。 我收到以下错误,
Cloud Run error: Container failed to start. Failed to start and then listen on the port defined by the PORT environment variable. Logs for this revision might contain more information. Logs URL: https://console.cloud.google.com/logs/viewer?project=xxxxxxxx&resource=cloud_run_revision/service_name/consume-sales-order-functional-test/revision_name/consume-sales-order-functional-test-00002-vib&advancedFilter=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22consume-sales-order-functional-test%22%0Aresource.labels.revision_name%3D%22consume-sales-order-functional-test-00002-vib%22
我知道我收到此错误,可能是因为Cloud run希望我提到一个可以监听服务的PORT。但是我的数据流实际上不是一个不启动Web服务器的Web应用程序。
关于如何解决此问题的任何想法?
解决方法
如果您没有Web应用程序在给定的$ PORT编号上侦听HTTP,则该应用程序不适合Cloud Run。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。