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" "github.com/google/uuid"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"shared-sqs/app/gosqs"
"shared-sqs/app/models" "shared-sqs/app/models"
"shared-sqs/app/tenant" "shared-sqs/app/tenant"
) )
@@ -82,14 +83,9 @@ func seedDemoData(store *tenant.TenantStore) {
// URL и ARN формируем по тому же шаблону что gosqs/tenant_helpers.go:tenantQueueURL/tenantQueueARN // URL и ARN формируем по тому же шаблону что gosqs/tenant_helpers.go:tenantQueueURL/tenantQueueARN
// Иначе AWS CLI получает пустой QueueUrl в ListQueues и не может работать с очередью. // Иначе AWS CLI получает пустой QueueUrl в ListQueues и не может работать с очередью.
env := models.CurrentEnvironment // URL — единый источник (gosqs.TenantQueueURL), учитывает ExternalURLBase.
var queueURL string queueURL := gosqs.TenantQueueURL(t, q.name)
if env.Region != "" { queueARN := "arn:aws:sqs:" + models.CurrentEnvironment.Region + ":" + t.ID + ":" + q.name
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
msgs := make([]models.SqsMessage, 0, len(q.msgs)) msgs := make([]models.SqsMessage, 0, len(q.msgs))
for _, body := range 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] 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 != "" { if envs[env].Port != "" {
ports = []string{envs[env].Port} ports = []string{envs[env].Port}
} }
@@ -148,6 +143,10 @@ func LoadYamlConfig(filename string, env string) []string {
// AccountID и Host. Вызывается через defer в LoadYamlConfig, чтобы дефолты // AccountID и Host. Вызывается через defer в LoadYamlConfig, чтобы дефолты
// устанавливались при любом раннем return (например, если конфиг не найден). // устанавливались при любом раннем return (например, если конфиг не найден).
func applyEnvironmentDefaults() { 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 { if models.CurrentEnvironment.QueueAttributeDefaults.VisibilityTimeout <= 0 {
models.CurrentEnvironment.QueueAttributeDefaults.VisibilityTimeout = 30 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 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 очереди для тенанта. // tenantQueueARN — формирует ARN очереди для тенанта.
func tenantQueueARN(t *tenant.Tenant, queueName string) string { func tenantQueueARN(t *tenant.Tenant, queueName string) string {
return "arn:aws:sqs:" + models.CurrentEnvironment.Region + ":" + t.ID + ":" + queueName return "arn:aws:sqs:" + models.CurrentEnvironment.Region + ":" + t.ID + ":" + queueName