无法从 ASP.NET Core ECS 任务连接到 Serverless Redis 缓存

问题描述 投票:0回答:1

尝试访问无服务器 Redis 缓存时收到以下错误:

StackExchange.Redis.RedisConnectionException:消息在尝试发送的积压中超时,因为没有可用的连接(5000 毫秒) - 上次连接异常:UnableToConnect

我的高级设置是:

  • 专有网络
  • VPC 中的 ECS Fargate 任务。
  • VPC 中的无服务器 Redis 缓存。
  • 缓存和任务位于同一子网。
  • 缓存安全组具有允许任务访问的入站规则。

我正在尝试使用

Microsoft.Extensions.Caching.StackExchangeRedis
包中的 AddStackExchangeRedisCache 扩展从 ASP.NET Core 应用程序访问它。

不确定任务还缺少什么才能到达缓存。

amazon-web-services asp.net-core redis
1个回答
0
投票

经过大量调整和环顾四周,我终于注意到无服务器缓存默认启用了

Encryption in Transit

同时,在我的应用程序启动中添加 Redis 服务时,我没有在

Ssl
中明确将
ConfigurationOptions
设置为 true。默认情况下这是错误的,因此缓存和我的服务器在加密方面不匹配。

添加服务的最终解决方案类似于:

services.AddStackExchangeRedisCache(delegate (RedisCacheOptions options)
{
    options.ConfigurationOptions = new ConfigurationOptions()
    {
        EndPoints = new EndPointCollection { "your-cache.serverless.use1.cache.amazonaws.com:6379" },
        Ssl = true,
        ConnectRetry = 3,
        ReconnectRetryPolicy = new LinearRetry(250),
        AbortOnConnectFail = false,
        ConnectTimeout = 500,
        SyncTimeout = 500
    };
});
© www.soinside.com 2019 - 2024. All rights reserved.