|
9 | 9 | from queue import PriorityQueue
|
10 | 10 | from typing import Dict, NamedTuple, Optional, Set
|
11 | 11 |
|
12 |
| -from localstack import config, constants |
| 12 | +from localstack import config |
13 | 13 | from localstack.aws.api import RequestContext
|
14 | 14 | from localstack.aws.api.sqs import (
|
15 | 15 | InvalidAttributeName,
|
|
21 | 21 | ReceiptHandleIsInvalid,
|
22 | 22 | TagMap,
|
23 | 23 | )
|
24 |
| -from localstack.config import external_service_url |
| 24 | +from localstack.config import get_protocol |
25 | 25 | from localstack.services.sqs import constants as sqs_constants
|
26 | 26 | from localstack.services.sqs.exceptions import (
|
27 | 27 | InvalidAttributeValue,
|
|
35 | 35 | )
|
36 | 36 | from localstack.services.stores import AccountRegionBundle, BaseStore, LocalAttribute
|
37 | 37 | from localstack.utils.time import now
|
| 38 | +from localstack.utils.urls import localstack_host |
38 | 39 |
|
39 | 40 | LOG = logging.getLogger(__name__)
|
40 | 41 |
|
@@ -249,13 +250,18 @@ def url(self, context: RequestContext) -> str:
|
249 | 250 | # or us-east-2.queue.localhost.localstack.cloud:4566/000000000000/my-queue
|
250 | 251 | region = "" if self.region == "us-east-1" else self.region + "."
|
251 | 252 | scheme = context.request.scheme
|
252 |
| - host_url = f"{scheme}://{region}queue.{constants.LOCALHOST_HOSTNAME}:{config.EDGE_PORT}" |
| 253 | + |
| 254 | + host_definition = localstack_host(use_localhost_cloud=True) |
| 255 | + host_url = f"{scheme}://{region}queue.{host_definition.host_and_port()}" |
253 | 256 | elif config.SQS_ENDPOINT_STRATEGY == "path":
|
254 | 257 | # https?://localhost:4566/queue/us-east-1/00000000000/my-queue (us-east-1)
|
255 | 258 | host_url = f"{context.request.host_url}/queue/{self.region}"
|
256 | 259 | else:
|
257 | 260 | if config.SQS_PORT_EXTERNAL:
|
258 |
| - host_url = external_service_url("sqs") |
| 261 | + host_definition = localstack_host( |
| 262 | + use_hostname_external=True, custom_port=config.SQS_PORT_EXTERNAL |
| 263 | + ) |
| 264 | + return f"{get_protocol()}://{host_definition.host_and_port()}" |
259 | 265 |
|
260 | 266 | return "{host}/{account_id}/{name}".format(
|
261 | 267 | host=host_url.rstrip("/"),
|
|
0 commit comments