doc: QueueUrl исправлен (ExternalURLBase) + ошибки по пути; дефект снят

This commit is contained in:
Repinoid
2026-10-10 14:04:04 +03:00
parent c011099224
commit cf369736a0
2 changed files with 30 additions and 10 deletions
@@ -87,9 +87,21 @@ grep "seed: создан тенант" ~/sqs-test/sqs.log | tail -1
curl -sS https://sqs.sinefo.ru/health
```
## 7. Известный дефект
## 7. QueueUrl — ИСПРАВЛЕНО (2026-10-10)
`QueueUrl` в ответах = `http://region.host:port/<tenantID>/<queue>` (плейсхолдеры — нет `goaws.yaml`).
Причина: `app/gosqs/tenant_helpers.go:29-37` (схема `http://`, формат `{region}.{host}:{port}`;
Host/Port/Region только из `app/conf/goaws.yaml`, env-переменных нет). Клиенты с `endpoint_url`
не страдают (используют путь), клиенты без него — сломаны.
**Было:** `QueueUrl` = `http://region.host:port/<tenantID>/<queue>` (плейсхолдеры — на ВМ нет `goaws.yaml`).
**Стало:** база URL задаётся через `ExternalURLBase` (config `goaws.yaml` **или** env
`SHARED_SQS_EXTERNAL_URL_BASE`). На ВМ запускается с `SHARED_SQS_EXTERNAL_URL_BASE=https://sqs.sinefo.ru` →
`QueueUrl` = `https://sqs.sinefo.ru/<tenantID>/<queue>` (проверено снаружи).
Изменения (коммиты `469132b`, `ca0372b`):
- `app/models/configuration.go` — поле `Environment.ExternalURLBase`;
- `app/gosqs/tenant_helpers.go` — `tenantQueueURL` учитывает `ExternalURLBase`; добавлена
экспортированная `TenantQueueURL`;
- `app/conf/config.go` — env-override `SHARED_SQS_EXTERNAL_URL_BASE` в `applyEnvironmentDefaults`
(срабатывает и при отсутствии `goaws.yaml` — важная тонкость: `LoadYamlConfig` делает ранний
`return` без конфига, поэтому override там не срабатывал);
- `app/cmd/seed.go` — демо-очереди формируют URL через `gosqs.TenantQueueURL` (убрано
дублирование логики — оно и было причиной, что фикс «не применялся»);
- тест `app/gosqs/tenant_helpers_test.go`.