Problem
There's no way to open an interactive redis-cli session against an app's Redis instance today. db shell provides this for the database via a dedicated utility image/task running inside the VPC; no equivalent exists for Redis.
Current workaround
apppack config get REDIS_URL retrieves the connection string, but reaching it requires VPC-level access. ps exec <service> --live can get a shell in a running app container that already has network access, but only works if that container happens to have redis-cli installed.
Proposed implementation
Mirror db shell's architecture (app/db.go's DBShellTaskInfo() -> StartInteractiveShell, cmd/db.go's dbShellCmd):
- A small utility image bundling redis-cli
- A registered ECS task family for it, similar to apppack-db-utils
- New
cmd/redis.go with a redisShellCmd, and a RedisShellTaskInfo()-equivalent method wired to the app's REDIS_URL config var
Repo
apppack (CLI) -- would also need a small utility image (new repo or extending an existing one) and possibly apppack-backend changes to register/support the task.
Problem
There's no way to open an interactive redis-cli session against an app's Redis instance today.
db shellprovides this for the database via a dedicated utility image/task running inside the VPC; no equivalent exists for Redis.Current workaround
apppack config get REDIS_URLretrieves the connection string, but reaching it requires VPC-level access.ps exec <service> --livecan get a shell in a running app container that already has network access, but only works if that container happens to have redis-cli installed.Proposed implementation
Mirror
db shell's architecture (app/db.go'sDBShellTaskInfo()->StartInteractiveShell,cmd/db.go'sdbShellCmd):cmd/redis.gowith aredisShellCmd, and aRedisShellTaskInfo()-equivalent method wired to the app's REDIS_URL config varRepo
apppack (CLI) -- would also need a small utility image (new repo or extending an existing one) and possibly apppack-backend changes to register/support the task.