gpt4 book ai didi

google-app-engine - App Engine 标准、无服务器 VPC、Cloud Memorystore 会产生大量超时

转载 作者:行者123 更新时间:2023-12-02 10:44:34 26 4
gpt4 key购买 nike

我们将 App Engine Standard python 3 服务配置为通过 Serverless VPC 服务连接到 Cloud Memorystore(根据文档和其他堆栈溢出线程)。 (我在下面包含了 app.yaml 配置)。这一切都运行良好,除非实例闲置了一段时间。随着时间的推移,我们看到了大量的:

  • 调用 Memorystore 时出现长时间无法解释的挂起,即使它们最终起作用了
  • redis.exceptions.ConnectionError:连接到 10.0.0.12:6379 时出现错误 110。连接超时。
  • redis.exceptions.TimeoutError:从套接字读取超时

发生这些情况后,我不得不重新使用 App Engine Flexible,该服务运行良好,没有出现任何上述问题。

我的结论是,Serverless VPC 无法处理 redis 客户端努力使与 redis 的连接始终保持打开状态的事实。我尝试了几种超时设置,但没有任何帮助。有人成功部署 App Engine Standard、Memorystore 和 Serverless VPC 吗?

env_variables:
REDISHOST: <IP>
REDISPORT: 6379

network:
name: "projects/<PROJECT-ID>/global/networks/default"

vpc_access_connector:
name: "projects/<PROJECT-ID>/locations/us-central1/connectors/<VPC-NAME>

用于连接到 Memorystore 的代码(使用 redis-py ):

REDIS_CLIENT = redis.StrictRedis(
host=REDIS_HOST,
port=REDIS_PORT,
retry_on_timeout=True,
health_check_interval=30
)

(我尝试了各种超时设置,但找不到任何有帮助的)

最佳答案

我按照文档 ( https://cloud.google.com/vpc/docs/configure-serverless-vpc-access ) 中所述创建了一个 Memorystore 实例和一个无服务器 VPC 访问连接器,然后在进行一些修改后将此示例 ( https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard_python37/redis ) 从 Google Cloud Platform Python 文档示例存储库部署到 App Engine Standard :

这是我的 app.yaml:

runtime: python37

# Update with Redis instance details
env_variables:
REDIS_HOST: <memorystore-ip-here>
REDIS_PORT: 6379

# Update with Serverless VPC Access connector details
vpc_access_connector:
name: 'projects/<project-id>/locations/<region>/connectors/<connector-name>'
# [END memorystore_app_yaml_standard]

我编辑了 main.py 上的代码,并使用了用于连接到内存存储实例的代码片段。结果是这样的:

redis_client = redis.StrictRedis(
host=redis_host, port=redis_port,
password=redis_password,
retry_on_timeout=True,
health_check_interval=30
)

我编辑了requirements.txt。我将“redis==3.3.8”更改为“redis>=3.3.0

注意事项:

  • 请务必使用“gcloud beta 应用部署”而不是“gcloud 应用部署”,因为需要它才能使无服务器 VPC 访问连接器正常工作。
  • 确保您为内存存储实例设置的授权网络与您为无服务器 VPC 访问连接器选择的授权网络相同

这对我来说符合预期,您能检查一下这对您是否有用吗?

关于google-app-engine - App Engine 标准、无服务器 VPC、Cloud Memorystore 会产生大量超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58276700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com