fix(queue-url): seed.go через gosqs.TenantQueueURL; env-override в applyEnvironmentDefaults (работает без goaws.yaml)

This commit is contained in:
Repinoid
2026-10-10 14:03:44 +03:00
parent f0e7cc905d
commit c011099224
3 changed files with 13 additions and 13 deletions
+4 -8
View File
@@ -16,6 +16,7 @@ import (
"github.com/google/uuid"
log "github.com/sirupsen/logrus"
"shared-sqs/app/gosqs"
"shared-sqs/app/models"
"shared-sqs/app/tenant"
)
@@ -82,14 +83,9 @@ func seedDemoData(store *tenant.TenantStore) {
// URL и ARN формируем по тому же шаблону что gosqs/tenant_helpers.go:tenantQueueURL/tenantQueueARN
// Иначе AWS CLI получает пустой QueueUrl в ListQueues и не может работать с очередью.
env := models.CurrentEnvironment
var queueURL string
if env.Region != "" {
queueURL = "http://" + env.Region + "." + env.Host + ":" + env.Port + "/" + t.ID + "/" + q.name
} else {
queueURL = "http://" + env.Host + ":" + env.Port + "/" + t.ID + "/" + q.name
}
queueARN := "arn:aws:sqs:" + env.Region + ":" + t.ID + ":" + q.name
// URL — единый источник (gosqs.TenantQueueURL), учитывает ExternalURLBase.
queueURL := gosqs.TenantQueueURL(t, q.name)
queueARN := "arn:aws:sqs:" + models.CurrentEnvironment.Region + ":" + t.ID + ":" + q.name
msgs := make([]models.SqsMessage, 0, len(q.msgs))
for _, body := range q.msgs {
+4 -5
View File
@@ -67,11 +67,6 @@ func LoadYamlConfig(filename string, env string) []string {
models.CurrentEnvironment = envs[env]
// Публичный адрес очередей (напр. https://sqs.sinefo.ru) — override через env.
if v := os.Getenv("SHARED_SQS_EXTERNAL_URL_BASE"); v != "" {
models.CurrentEnvironment.ExternalURLBase = v
}
if envs[env].Port != "" {
ports = []string{envs[env].Port}
}
@@ -148,6 +143,10 @@ func LoadYamlConfig(filename string, env string) []string {
// AccountID и Host. Вызывается через defer в LoadYamlConfig, чтобы дефолты
// устанавливались при любом раннем return (например, если конфиг не найден).
func applyEnvironmentDefaults() {
// Публичный адрес очередей — override через env (работает и когда goaws.yaml не найден).
if v := os.Getenv("SHARED_SQS_EXTERNAL_URL_BASE"); v != "" {
models.CurrentEnvironment.ExternalURLBase = v
}
if models.CurrentEnvironment.QueueAttributeDefaults.VisibilityTimeout <= 0 {
models.CurrentEnvironment.QueueAttributeDefaults.VisibilityTimeout = 30
}
+5
View File
@@ -41,6 +41,11 @@ return "http://" + region + "." + host + ":" + port + "/" + t.ID + "/" + queueNa
return "http://" + host + ":" + port + "/" + t.ID + "/" + queueName
}
// TenantQueueURL — экспортированная обёртка над tenantQueueURL (нужна app/cmd).
func TenantQueueURL(t *tenant.Tenant, queueName string) string {
return tenantQueueURL(t, queueName)
}
// tenantQueueARN — формирует ARN очереди для тенанта.
func tenantQueueARN(t *tenant.Tenant, queueName string) string {
return "arn:aws:sqs:" + models.CurrentEnvironment.Region + ":" + t.ID + ":" + queueName