localstack-core 4.6.1.dev30__py3-none-any.whl → 4.6.1.dev31__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. localstack/services/lambda_/event_source_mapping/esm_worker_factory.py +5 -5
  2. localstack/services/lambda_/invocation/assignment.py +1 -23
  3. localstack/services/lambda_/invocation/counting_service.py +0 -21
  4. localstack/services/lambda_/invocation/docker_runtime_executor.py +5 -4
  5. localstack/services/lambda_/invocation/execution_environment.py +1 -18
  6. localstack/services/lambda_/invocation/executor_endpoint.py +4 -4
  7. localstack/services/lambda_/invocation/lambda_models.py +1 -0
  8. localstack/services/lambda_/invocation/lambda_service.py +3 -0
  9. localstack/services/lambda_/invocation/version_manager.py +25 -0
  10. localstack/services/lambda_/lambda_debug_mode/ldm.py +375 -0
  11. localstack/services/lambda_/lambda_debug_mode/ldm_config_file.py +178 -0
  12. localstack/services/lambda_/lambda_debug_mode/ldm_types.py +11 -0
  13. localstack/services/lambda_/lambda_debug_mode/ldm_utils.py +43 -0
  14. localstack/services/lambda_/provider.py +14 -14
  15. localstack/version.py +2 -2
  16. {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev31.dist-info}/METADATA +1 -1
  17. {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev31.dist-info}/RECORD +26 -25
  18. localstack_core-4.6.1.dev31.dist-info/plux.json +1 -0
  19. localstack/utils/lambda_debug_mode/lambda_debug_mode.py +0 -41
  20. localstack/utils/lambda_debug_mode/lambda_debug_mode_config.py +0 -230
  21. localstack/utils/lambda_debug_mode/lambda_debug_mode_session.py +0 -175
  22. localstack_core-4.6.1.dev30.dist-info/plux.json +0 -1
  23. /localstack/{utils → services/lambda_}/lambda_debug_mode/__init__.py +0 -0
  24. {localstack_core-4.6.1.dev30.data → localstack_core-4.6.1.dev31.data}/scripts/localstack +0 -0
  25. {localstack_core-4.6.1.dev30.data → localstack_core-4.6.1.dev31.data}/scripts/localstack-supervisor +0 -0
  26. {localstack_core-4.6.1.dev30.data → localstack_core-4.6.1.dev31.data}/scripts/localstack.bat +0 -0
  27. {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev31.dist-info}/WHEEL +0 -0
  28. {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev31.dist-info}/entry_points.txt +0 -0
  29. {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev31.dist-info}/licenses/LICENSE.txt +0 -0
  30. {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev31.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,178 @@
1
+ from __future__ import annotations
2
+
3
+ import logging
4
+ from typing import Optional
5
+
6
+ import yaml
7
+ from pydantic import BaseModel, Field, ValidationError
8
+ from yaml import Loader, MappingNode, MarkedYAMLError, SafeLoader
9
+
10
+ from localstack.aws.api.lambda_ import Arn
11
+ from localstack.services.lambda_.lambda_debug_mode.ldm_types import LDMException
12
+ from localstack.services.lambda_.lambda_debug_mode.ldm_utils import to_qualified_lambda_function_arn
13
+
14
+ LOG = logging.getLogger(__name__)
15
+
16
+
17
+ class PortAlreadyInUse(LDMException):
18
+ port_number: int
19
+
20
+ def __init__(self, port_number: int):
21
+ self.port_number = port_number
22
+
23
+ def __str__(self):
24
+ return f"PortAlreadyInUse: '{self.port_number}'"
25
+
26
+
27
+ class DuplicateLDMConfig(LDMException):
28
+ lambda_arn_debug_config_first: str
29
+ lambda_arn_debug_config_second: str
30
+
31
+ def __init__(self, lambda_arn_debug_config_first: str, lambda_arn_debug_config_second: str):
32
+ self.lambda_arn_debug_config_first = lambda_arn_debug_config_first
33
+ self.lambda_arn_debug_config_second = lambda_arn_debug_config_second
34
+
35
+ def __str__(self):
36
+ return (
37
+ f"DuplicateLDMConfig: Lambda debug configuration in '{self.lambda_arn_debug_config_first}' "
38
+ f"is redefined in '{self.lambda_arn_debug_config_second}'"
39
+ )
40
+
41
+
42
+ class LambdaFunctionConfig(BaseModel):
43
+ debug_port: Optional[int] = Field(None, alias="debug-port")
44
+ enforce_timeouts: bool = Field(False, alias="enforce-timeouts")
45
+
46
+
47
+ class LDMConfigFile(BaseModel):
48
+ # Bindings of Lambda function Arn and the respective debugging configuration.
49
+ functions: dict[Arn, LambdaFunctionConfig]
50
+
51
+
52
+ class _LDMConfigPostProcessingState:
53
+ ports_used: set[int]
54
+
55
+ def __init__(self):
56
+ self.ports_used = set()
57
+
58
+
59
+ class _SafeLoaderWithDuplicateCheck(SafeLoader):
60
+ def __init__(self, stream):
61
+ super().__init__(stream)
62
+ self.add_constructor(
63
+ yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
64
+ self._construct_mappings_with_duplicate_check,
65
+ )
66
+
67
+ @staticmethod
68
+ def _construct_mappings_with_duplicate_check(
69
+ loader: Loader, node: MappingNode, deep=False
70
+ ) -> dict:
71
+ # Constructs yaml bindings, whilst checking for duplicate mapping key definitions, raising a
72
+ # MarkedYAMLError when one is found.
73
+ mapping = dict()
74
+ for key_node, value_node in node.value:
75
+ key = loader.construct_object(key_node, deep=deep)
76
+ if key in mapping:
77
+ # Create a MarkedYAMLError to indicate the duplicate key issue
78
+ raise MarkedYAMLError(
79
+ context="while constructing a mapping",
80
+ context_mark=node.start_mark,
81
+ problem=f"found duplicate key: {key}",
82
+ problem_mark=key_node.start_mark,
83
+ )
84
+ value = loader.construct_object(value_node, deep=deep)
85
+ mapping[key] = value
86
+ return mapping
87
+
88
+
89
+ def _from_yaml_string(yaml_string: str) -> Optional[LDMConfigFile]:
90
+ try:
91
+ data = yaml.load(yaml_string, _SafeLoaderWithDuplicateCheck)
92
+ except yaml.YAMLError as yaml_error:
93
+ LOG.error(
94
+ "Could not parse yaml LDM configuration file due to: %s",
95
+ yaml_error,
96
+ )
97
+ data = None
98
+ if not data:
99
+ return None
100
+ config = LDMConfigFile(**data)
101
+ return config
102
+
103
+
104
+ def _post_process_ldm_config_file(
105
+ ldm_config: LDMConfigFile,
106
+ post_processing_state: Optional[_LDMConfigPostProcessingState] = None,
107
+ ) -> None:
108
+ post_processing_state = post_processing_state or _LDMConfigPostProcessingState()
109
+ lambda_function_configs = ldm_config.functions
110
+ lambda_arns = list(lambda_function_configs.keys())
111
+ for lambda_arn in lambda_arns:
112
+ qualified_lambda_arn = to_qualified_lambda_function_arn(lambda_arn)
113
+ if lambda_arn != qualified_lambda_arn:
114
+ if qualified_lambda_arn in lambda_function_configs:
115
+ raise DuplicateLDMConfig(
116
+ lambda_arn_debug_config_first=lambda_arn,
117
+ lambda_arn_debug_config_second=qualified_lambda_arn,
118
+ )
119
+ lambda_function_configs[qualified_lambda_arn] = lambda_function_configs.pop(lambda_arn)
120
+
121
+ for lambda_function_config in lambda_function_configs.values():
122
+ _post_process_lambda_function_config(
123
+ post_processing_state=post_processing_state,
124
+ lambda_function_config=lambda_function_config,
125
+ )
126
+
127
+
128
+ def _post_process_lambda_function_config(
129
+ post_processing_state: _LDMConfigPostProcessingState,
130
+ lambda_function_config: LambdaFunctionConfig,
131
+ ) -> None:
132
+ debug_port: Optional[int] = lambda_function_config.debug_port
133
+ if debug_port is None:
134
+ return
135
+ if debug_port in post_processing_state.ports_used:
136
+ raise PortAlreadyInUse(port_number=debug_port)
137
+ post_processing_state.ports_used.add(debug_port)
138
+
139
+
140
+ def parse_ldm_config(yaml_string: str) -> Optional[LDMConfigFile]:
141
+ # Attempt to parse the yaml string.
142
+ try:
143
+ yaml_data = yaml.load(yaml_string, _SafeLoaderWithDuplicateCheck)
144
+ except yaml.YAMLError as yaml_error:
145
+ LOG.error(
146
+ "Could not parse yaml LDM configuration file due to: %s",
147
+ yaml_error,
148
+ )
149
+ yaml_data = None
150
+ if not yaml_data:
151
+ return None
152
+
153
+ # Attempt to build the LDMConfig object from the yaml object.
154
+ try:
155
+ config = LDMConfigFile(**yaml_data)
156
+ except ValidationError as validation_error:
157
+ validation_errors = validation_error.errors() or list()
158
+ error_messages = [
159
+ f"When parsing '{err.get('loc', '')}': {err.get('msg', str(err))}"
160
+ for err in validation_errors
161
+ ]
162
+ LOG.error(
163
+ "Unable to parse LDM configuration file due to errors: %s",
164
+ error_messages,
165
+ )
166
+ return None
167
+
168
+ # Attempt to post_process the configuration.
169
+ try:
170
+ _post_process_ldm_config_file(config)
171
+ except LDMException as ldm_error:
172
+ LOG.error(
173
+ "Invalid LDM configuration due to: %s",
174
+ ldm_error,
175
+ )
176
+ config = None
177
+
178
+ return config
@@ -0,0 +1,11 @@
1
+ class LDMException(Exception): ...
2
+
3
+
4
+ class UnknownLambdaArnFormat(LDMException):
5
+ unknown_lambda_arn: str
6
+
7
+ def __init__(self, unknown_lambda_arn: str):
8
+ self.unknown_lambda_arn = unknown_lambda_arn
9
+
10
+ def __str__(self):
11
+ return f"UnknownLambdaArnFormat: '{self.unknown_lambda_arn}'"
@@ -0,0 +1,43 @@
1
+ from localstack.aws.api.lambda_ import Arn
2
+ from localstack.services.lambda_.lambda_debug_mode.ldm_types import UnknownLambdaArnFormat
3
+
4
+
5
+ def to_qualified_lambda_function_arn(lambda_arn: Arn) -> Arn:
6
+ """
7
+ Returns the $LATEST qualified version of a structurally unqualified version of a lambda Arn iff this
8
+ is detected to be structurally unqualified. Otherwise, it returns the given string.
9
+ Example:
10
+ - arn:aws:lambda:eu-central-1:000000000000:function:functionname:$LATEST ->
11
+ unchanged
12
+
13
+ - arn:aws:lambda:eu-central-1:000000000000:function:functionname ->
14
+ arn:aws:lambda:eu-central-1:000000000000:function:functionname:$LATEST
15
+
16
+ - arn:aws:lambda:eu-central-1:000000000000:function:functionname: ->
17
+ exception UnknownLambdaArnFormat
18
+
19
+ - arn:aws:lambda:eu-central-1:000000000000:function ->
20
+ exception UnknownLambdaArnFormat
21
+ """
22
+ # TODO: consider adding arn syntax validation at this depth.
23
+
24
+ if not lambda_arn:
25
+ return lambda_arn
26
+ lambda_arn_parts = lambda_arn.split(":")
27
+ lambda_arn_parts_len = len(lambda_arn_parts)
28
+
29
+ # The arn is qualified and with a non-empy qualifier.
30
+ is_qualified = lambda_arn_parts_len == 8
31
+ if is_qualified and lambda_arn_parts[-1]:
32
+ return lambda_arn
33
+
34
+ # Unknown lambda arn format.
35
+ is_unqualified = lambda_arn_parts_len == 7
36
+ if not is_unqualified:
37
+ raise UnknownLambdaArnFormat(unknown_lambda_arn=lambda_arn)
38
+
39
+ # Structure-wise, the arn is missing the qualifier.
40
+ qualifier = "$LATEST"
41
+ arn_tail = f":{qualifier}" if is_unqualified else qualifier
42
+ qualified_lambda_arn = lambda_arn + arn_tail
43
+ return qualified_lambda_arn
@@ -211,6 +211,7 @@ from localstack.services.lambda_.invocation.lambda_service import (
211
211
  )
212
212
  from localstack.services.lambda_.invocation.models import LambdaStore
213
213
  from localstack.services.lambda_.invocation.runtime_executor import get_runtime_executor
214
+ from localstack.services.lambda_.lambda_debug_mode.ldm import LDM
214
215
  from localstack.services.lambda_.lambda_utils import HINT_LOG
215
216
  from localstack.services.lambda_.layerfetcher.layer_fetcher import LayerFetcher
216
217
  from localstack.services.lambda_.provider_utils import (
@@ -241,7 +242,6 @@ from localstack.utils.aws.client_types import ServicePrincipal
241
242
  from localstack.utils.bootstrap import is_api_enabled
242
243
  from localstack.utils.collections import PaginatedList
243
244
  from localstack.utils.event_matcher import validate_event_pattern
244
- from localstack.utils.lambda_debug_mode.lambda_debug_mode_session import LambdaDebugModeSession
245
245
  from localstack.utils.strings import get_random_hex, short_uid, to_bytes, to_str
246
246
  from localstack.utils.sync import poll_condition
247
247
  from localstack.utils.urls import localstack_host
@@ -280,17 +280,6 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
280
280
  def accept_state_visitor(self, visitor: StateVisitor):
281
281
  visitor.visit(lambda_stores)
282
282
 
283
- def on_before_start(self):
284
- # Attempt to start the Lambda Debug Mode session object.
285
- try:
286
- lambda_debug_mode_session = LambdaDebugModeSession.get()
287
- lambda_debug_mode_session.ensure_running()
288
- except Exception as ex:
289
- LOG.error(
290
- "Unexpected error encountered when attempting to initialise Lambda Debug Mode '%s'.",
291
- ex,
292
- )
293
-
294
283
  def on_before_state_reset(self):
295
284
  self.lambda_service.stop()
296
285
 
@@ -404,8 +393,7 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
404
393
  self.lambda_service.stop()
405
394
  # Attempt to signal to the Lambda Debug Mode session object to stop.
406
395
  try:
407
- lambda_debug_mode_session = LambdaDebugModeSession.get()
408
- lambda_debug_mode_session.signal_stop()
396
+ LDM.stop_debug_mode()
409
397
  except Exception as ex:
410
398
  LOG.error(
411
399
  "Unexpected error encountered when attempting to signal Lambda Debug Mode to stop '%s'.",
@@ -1080,6 +1068,9 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
1080
1068
  function_name,
1081
1069
  )
1082
1070
 
1071
+ # Enable the LDM configuration for this qualified lambda arn, iff a configuration exists.
1072
+ LDM.enable_configuration(qualified_lambda_arn=version.qualified_arn)
1073
+
1083
1074
  return api_utils.map_config_out(
1084
1075
  version, return_qualified_arn=False, return_update_status=False
1085
1076
  )
@@ -1436,6 +1427,8 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
1436
1427
  if version:
1437
1428
  self.lambda_service.stop_version(version.id.qualified_arn())
1438
1429
  destroy_code_if_not_used(code=version.config.code, function=function)
1430
+ # Notify the LDM about the version deletion.
1431
+ LDM.remove_configuration(qualified_lambda_arn=version.qualified_arn)
1439
1432
  else:
1440
1433
  # delete the whole function
1441
1434
  # TODO: introduce locking for safe deletion: We could create a new version at the API layer before
@@ -1446,6 +1439,8 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
1446
1439
  # we can safely destroy the code here
1447
1440
  if version.config.code:
1448
1441
  version.config.code.destroy()
1442
+ # Notify the LDM about the version deletion.
1443
+ LDM.remove_configuration(qualified_lambda_arn=version.qualified_arn)
1449
1444
 
1450
1445
  def list_functions(
1451
1446
  self,
@@ -1592,6 +1587,10 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
1592
1587
  function_name, qualifier, context
1593
1588
  )
1594
1589
 
1590
+ user_agent = None
1591
+ if user_agent_obj := context.request.user_agent:
1592
+ user_agent = user_agent_obj.string
1593
+
1595
1594
  time_before = time.perf_counter()
1596
1595
  try:
1597
1596
  invocation_result = self.lambda_service.invoke(
@@ -1604,6 +1603,7 @@ class LambdaProvider(LambdaApi, ServiceLifecycleHook):
1604
1603
  request_id=context.request_id,
1605
1604
  trace_context=context.trace_context,
1606
1605
  payload=payload.read() if payload else None,
1606
+ user_agent=user_agent,
1607
1607
  )
1608
1608
  except ServiceException:
1609
1609
  raise
localstack/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '4.6.1.dev30'
21
- __version_tuple__ = version_tuple = (4, 6, 1, 'dev30')
20
+ __version__ = version = '4.6.1.dev31'
21
+ __version_tuple__ = version_tuple = (4, 6, 1, 'dev31')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.6.1.dev30
3
+ Version: 4.6.1.dev31
4
4
  Summary: The core library and runtime of LocalStack
5
5
  Author-email: LocalStack Contributors <info@localstack.cloud>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ localstack/deprecations.py,sha256=mNXTebZ8kSbQjFKz0LbT-g1Kdr0CE8bhEgZfHV3IX0s,15
4
4
  localstack/openapi.yaml,sha256=B803NmpwsxG8PHpHrdZYBrUYjnrRh7B_JX0XuNynuFs,30237
5
5
  localstack/plugins.py,sha256=BIJC9dlo0WbP7lLKkCiGtd_2q5oeqiHZohvoRTcejXM,2457
6
6
  localstack/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- localstack/version.py,sha256=pjLdd3jEI4fGbHVCuoCAKRN-od-_EwudjxPWZDN5PEU,526
7
+ localstack/version.py,sha256=BZCa1Alim_pkV3z49P2kbm175XlOVNpYTK568qZHMWI,526
8
8
  localstack/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  localstack/aws/accounts.py,sha256=102zpGowOxo0S6UGMpfjw14QW7WCLVAGsnFK5xFMLoo,3043
10
10
  localstack/aws/app.py,sha256=n9bJCfJRuMz_gLGAH430c3bIQXgUXeWO5NPfcdL2MV8,5145
@@ -547,7 +547,7 @@ localstack/services/lambda_/lambda_utils.py,sha256=pxnRJnYzwhwbHbW1-GKV1TJyJgn52
547
547
  localstack/services/lambda_/networking.py,sha256=H9fq1aYThqXZkOi0fCoJrHI9rm19qgUVxFe3vYloN08,938
548
548
  localstack/services/lambda_/packages.py,sha256=b2YaCsM3hnSbtwshMIjz1VG0ReMFHhV73niWPmBQ7jw,3965
549
549
  localstack/services/lambda_/plugins.py,sha256=eZsdzZqgEG9EZpd3W8TUdoydTpPXl6JBzJgDx_qeFUU,1275
550
- localstack/services/lambda_/provider.py,sha256=wksXLCzcwORnWclX3obixGCQutzpOTrSXxR9uc9tTYY,191136
550
+ localstack/services/lambda_/provider.py,sha256=jcKrSPdGs-u6ABC2V0Vhk5cmSbzjtFMClbRim9M19fc,191232
551
551
  localstack/services/lambda_/provider_utils.py,sha256=-vM__pt5qIVhTiPA05N2P0P_pQpwyZggyRuL_QvsQHs,3210
552
552
  localstack/services/lambda_/runtimes.py,sha256=0ODrFfr2VYb1jWC-Gqyro7CoTyO3NyY_SpR9paE4_w8,8332
553
553
  localstack/services/lambda_/urlrouter.py,sha256=ZuVUaAn3tmesDQntkrVQ_-xkMAmdDzmAqx7XIzK9dOo,8351
@@ -555,7 +555,7 @@ localstack/services/lambda_/event_source_mapping/__init__.py,sha256=47DEQpj8HBSa
555
555
  localstack/services/lambda_/event_source_mapping/esm_config_factory.py,sha256=E7N81Dm9PV7lbvD_JRWDeqACYnEhazrFV4YEPejkXgw,6180
556
556
  localstack/services/lambda_/event_source_mapping/esm_event_processor.py,sha256=nPQYRRX3AMnqlNCTUapFy3bhCeM00VZQwMASfuA3VqQ,6990
557
557
  localstack/services/lambda_/event_source_mapping/esm_worker.py,sha256=ro4t7DAvrlMd-U7WWly1XKnyKXL6du3T4IgtVVtLoKw,9368
558
- localstack/services/lambda_/event_source_mapping/esm_worker_factory.py,sha256=TXhrTKbqN-gZwy38aoI7abKlXS-C0lyMbQP8u-5j2Gg,10524
558
+ localstack/services/lambda_/event_source_mapping/esm_worker_factory.py,sha256=CClyAlEen_eiV9iZ72TruBt6QWcCpNhkT3X6MOt8ubM,10498
559
559
  localstack/services/lambda_/event_source_mapping/event_processor.py,sha256=lrneBFEeitdd-KVOtVzyWDHbE_dulRP5J44PpAONfJE,2481
560
560
  localstack/services/lambda_/event_source_mapping/noops_event_processor.py,sha256=rCdI2_y0yoOqQ1WwF3rrscwbNVz6AqDScPqAZcR5tTQ,382
561
561
  localstack/services/lambda_/event_source_mapping/pipe_utils.py,sha256=ajZGcrkXpr8skwkufe-alCvY002nm9nb19x7QjhBkXc,2553
@@ -573,21 +573,26 @@ localstack/services/lambda_/event_source_mapping/senders/lambda_sender.py,sha256
573
573
  localstack/services/lambda_/event_source_mapping/senders/sender.py,sha256=73CxzisqP4Jiuz9w_NWzc2rz6X-FaM7Z88BsVTPNi4Q,1744
574
574
  localstack/services/lambda_/event_source_mapping/senders/sender_utils.py,sha256=q8Kq1YE8-irfEAO3UkQ1-Dy-vnb56Mn-Mx9YUzLT7bg,1411
575
575
  localstack/services/lambda_/invocation/__init__.py,sha256=g6PC4HNlQSu3sgTQ8-L7YrW7bj8J0OQyuvE9vWUXY50,202
576
- localstack/services/lambda_/invocation/assignment.py,sha256=Q85sAdKdX2N29bS8EZsqe_RPvo5SXAqZDgzEeDtiXzw,7721
577
- localstack/services/lambda_/invocation/counting_service.py,sha256=3C2b34AM-OCdQOdtEmcDiNptZnosTGI0FrXXDr6mzCY,13824
578
- localstack/services/lambda_/invocation/docker_runtime_executor.py,sha256=Y6h53H8-hoLtrdAINXfeeEwSfc1w4uhHgfhdD8kBLO8,21659
576
+ localstack/services/lambda_/invocation/assignment.py,sha256=r_rDhgomY7V3wrod4oVQ9gUfWL1eirci2A3kOukPiD4,6725
577
+ localstack/services/lambda_/invocation/counting_service.py,sha256=OTYk82lsqAWWbQoHmBe0gerOTPaT5nUzTPkbtkCbk0w,12824
578
+ localstack/services/lambda_/invocation/docker_runtime_executor.py,sha256=lSXh3wzbW1eIFf7GGOcIz3QFBccQVNHkDIy4GUyodeY,21667
579
579
  localstack/services/lambda_/invocation/event_manager.py,sha256=OQTCHkpPPDv_Vis5lL5QtEbIKc7WcNFeFDkQQwBw2WE,27004
580
- localstack/services/lambda_/invocation/execution_environment.py,sha256=2tilgA18tcQ4D7kHn9piYWKrfSKWxMcWlUk-XizMGp0,18192
581
- localstack/services/lambda_/invocation/executor_endpoint.py,sha256=JP5ib3JwtN63_iC4hAm9hc8X0YQol37Y3BvHA8BX_rc,11152
580
+ localstack/services/lambda_/invocation/execution_environment.py,sha256=PZNEvOvO2MXYYfdALg7aKnbe8dyS0rFVkgdFOxyKYu0,17196
581
+ localstack/services/lambda_/invocation/executor_endpoint.py,sha256=1VbSWK91TKl9EKhde_TPe6DDeZlfH8_aA18-7SzsYMM,11126
582
582
  localstack/services/lambda_/invocation/internal_sqs_queue.py,sha256=h8wQPbJPtcUxKXmPzfrD5R5UzhZc248wkXNDJOexJ_I,7332
583
- localstack/services/lambda_/invocation/lambda_models.py,sha256=K0G0CE_8BS58xyl2rjGvx8VFJsczoBekBb4vA1SOJ0A,19813
584
- localstack/services/lambda_/invocation/lambda_service.py,sha256=1E0fnHqvU53yMd4Z0iY4ud-yNsO2d5UkG7GkpXLyqxA,29990
583
+ localstack/services/lambda_/invocation/lambda_models.py,sha256=DghyrArISywojN09pGbnjzfz2u0dZgxD6yPwW6Ov_-U,19850
584
+ localstack/services/lambda_/invocation/lambda_service.py,sha256=GXU9hDtN6b-V7YhNQTFFeZNHF0HqoUCL3ub3N-hD_7s,30114
585
585
  localstack/services/lambda_/invocation/logs.py,sha256=8BkcTZWnKm7wcjcH6i1K3DpDp4eSIh1r6hQdpyDVRh8,3842
586
586
  localstack/services/lambda_/invocation/metrics.py,sha256=IOzQguI3v8xl47FP6jMZYL3g9k-NIZEkvldAImdXljQ,1134
587
587
  localstack/services/lambda_/invocation/models.py,sha256=22B5_QfiDj2Imjwhf9u7PGDWevQpn83AE84fpBRA6Ts,1084
588
588
  localstack/services/lambda_/invocation/plugins.py,sha256=axAnRqpDyPvqh95s21FX7CcYZ5Or6QPJ3LykXu4tpyc,402
589
589
  localstack/services/lambda_/invocation/runtime_executor.py,sha256=9PBCTd0FGHuamjiuDghseUb3h2VnxGUANnCHDo-uB_o,4197
590
- localstack/services/lambda_/invocation/version_manager.py,sha256=sgHOZOBulQYPj7GiOXSrCCszDRFHe3RCHSUMW4seH_8,11552
590
+ localstack/services/lambda_/invocation/version_manager.py,sha256=KPRyxaz01zRQCshN3UhZrxXF8ggG2p42S52D-OsSbW8,12737
591
+ localstack/services/lambda_/lambda_debug_mode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
592
+ localstack/services/lambda_/lambda_debug_mode/ldm.py,sha256=esW_UETNHbZ_GY64zfg2X6i2kvIQ6RzSgISRcMdKpF4,14825
593
+ localstack/services/lambda_/lambda_debug_mode/ldm_config_file.py,sha256=W-spgxeVLSU7n2YdhMZrol8axmgyTbR4UJnl6KKkoWs,6169
594
+ localstack/services/lambda_/lambda_debug_mode/ldm_types.py,sha256=nz54zBBy97uTM0H4tWLrYqlqZhikdmm_xGbkFYrzfiw,306
595
+ localstack/services/lambda_/lambda_debug_mode/ldm_utils.py,sha256=l-KE9BcxtXem1VzKxW9sfO9Ywad5Skrd-i-5fBZvgtQ,1723
591
596
  localstack/services/lambda_/layerfetcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
592
597
  localstack/services/lambda_/layerfetcher/layer_fetcher.py,sha256=GxTG_LKvMrjjy3zLqgHS4e2jPLGyTZ3sPHxQ4jeP_Zw,601
593
598
  localstack/services/lambda_/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1277,22 +1282,18 @@ localstack/utils/container_utils/docker_sdk_client.py,sha256=H3iXgUCCTRrhagNOl7I
1277
1282
  localstack/utils/kinesis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1278
1283
  localstack/utils/kinesis/kclipy_helper.py,sha256=D3GPG9eT21IXuS94iIrJSAEtxGbcoDOkuRyCnHGd4Ek,4022
1279
1284
  localstack/utils/kinesis/kinesis_connector.py,sha256=z9Qi2JgsZh__YSIk3WRjVkDA2vsCWlP8kJaQJyWsrdE,15058
1280
- localstack/utils/lambda_debug_mode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1281
- localstack/utils/lambda_debug_mode/lambda_debug_mode.py,sha256=Y_jB7ZAatMiprT97A6jWGzLteaYnc4ndxivGJVnSf8M,1666
1282
- localstack/utils/lambda_debug_mode/lambda_debug_mode_config.py,sha256=AajclN7x01fWA2cZE2wcgqjximgx66s9DtJJ5ueuLXw,8148
1283
- localstack/utils/lambda_debug_mode/lambda_debug_mode_session.py,sha256=gi0Ws3AsB6laBpbh7CGeT2MUcmXxZM0TXBR_UgZM0vs,6967
1284
1285
  localstack/utils/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1285
1286
  localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8ZBWzJQY,3995
1286
1287
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1287
1288
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1288
1289
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1289
- localstack_core-4.6.1.dev30.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1290
- localstack_core-4.6.1.dev30.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1291
- localstack_core-4.6.1.dev30.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1292
- localstack_core-4.6.1.dev30.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1293
- localstack_core-4.6.1.dev30.dist-info/METADATA,sha256=31nvSrgSk-EZqryACK-wmKLIY-RnHGMWvZLdDTooZ5M,5537
1294
- localstack_core-4.6.1.dev30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1295
- localstack_core-4.6.1.dev30.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
1296
- localstack_core-4.6.1.dev30.dist-info/plux.json,sha256=_ifxxM74eIY_J5x1f175YXvMTKDr8Vm3zpkavs_JaNM,20891
1297
- localstack_core-4.6.1.dev30.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1298
- localstack_core-4.6.1.dev30.dist-info/RECORD,,
1290
+ localstack_core-4.6.1.dev31.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1291
+ localstack_core-4.6.1.dev31.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1292
+ localstack_core-4.6.1.dev31.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1293
+ localstack_core-4.6.1.dev31.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1294
+ localstack_core-4.6.1.dev31.dist-info/METADATA,sha256=z8gh2gEkVxrdTUOwwoxWvkUToKThnLWtz_TYefJ5apY,5537
1295
+ localstack_core-4.6.1.dev31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1296
+ localstack_core-4.6.1.dev31.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
1297
+ localstack_core-4.6.1.dev31.dist-info/plux.json,sha256=zYUOlaD2aLUfGsPd6bIjCDw-ja70p1h46KNWuNwYPnc,20891
1298
+ localstack_core-4.6.1.dev31.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1299
+ localstack_core-4.6.1.dev31.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin"], "localstack.hooks.on_infra_start": ["setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "eager_load_services=localstack.services.plugins:eager_load_services", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package"], "localstack.aws.provider": ["acm:default=localstack.services.providers:acm", "apigateway:default=localstack.services.providers:apigateway", "apigateway:legacy=localstack.services.providers:apigateway_legacy", "apigateway:next_gen=localstack.services.providers:apigateway_next_gen", "config:default=localstack.services.providers:awsconfig", "cloudformation:default=localstack.services.providers:cloudformation", "cloudformation:engine-v2=localstack.services.providers:cloudformation_v2", "cloudwatch:default=localstack.services.providers:cloudwatch", "cloudwatch:v1=localstack.services.providers:cloudwatch_v1", "cloudwatch:v2=localstack.services.providers:cloudwatch_v2", "dynamodb:default=localstack.services.providers:dynamodb", "dynamodb:v2=localstack.services.providers:dynamodb_v2", "dynamodbstreams:default=localstack.services.providers:dynamodbstreams", "dynamodbstreams:v2=localstack.services.providers:dynamodbstreams_v2", "ec2:default=localstack.services.providers:ec2", "es:default=localstack.services.providers:es", "events:default=localstack.services.providers:events", "events:legacy=localstack.services.providers:events_legacy", "events:v1=localstack.services.providers:events_v1", "events:v2=localstack.services.providers:events_v2", "firehose:default=localstack.services.providers:firehose", "iam:default=localstack.services.providers:iam", "kinesis:default=localstack.services.providers:kinesis", "kms:default=localstack.services.providers:kms", "lambda:default=localstack.services.providers:lambda_", "lambda:asf=localstack.services.providers:lambda_asf", "lambda:v2=localstack.services.providers:lambda_v2", "logs:default=localstack.services.providers:logs", "opensearch:default=localstack.services.providers:opensearch", "redshift:default=localstack.services.providers:redshift", "resource-groups:default=localstack.services.providers:resource_groups", "resourcegroupstaggingapi:default=localstack.services.providers:resourcegroupstaggingapi", "route53:default=localstack.services.providers:route53", "route53resolver:default=localstack.services.providers:route53resolver", "s3:default=localstack.services.providers:s3", "s3control:default=localstack.services.providers:s3control", "scheduler:default=localstack.services.providers:scheduler", "secretsmanager:default=localstack.services.providers:secretsmanager", "ses:default=localstack.services.providers:ses", "sns:default=localstack.services.providers:sns", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"]}
@@ -1,41 +0,0 @@
1
- from typing import Optional
2
-
3
- from localstack.aws.api.lambda_ import Arn
4
- from localstack.utils.lambda_debug_mode.lambda_debug_mode_config import LambdaDebugModeConfig
5
- from localstack.utils.lambda_debug_mode.lambda_debug_mode_session import LambdaDebugModeSession
6
-
7
- # Specifies the fault timeout value in seconds to be used by time restricted workflows when
8
- # Debug Mode is enabled. The value is set to one hour to ensure eventual termination of
9
- # long-running processes.
10
- DEFAULT_LAMBDA_DEBUG_MODE_TIMEOUT_SECONDS: int = 3_600
11
-
12
-
13
- def is_lambda_debug_mode() -> bool:
14
- return LambdaDebugModeSession.get().is_lambda_debug_mode()
15
-
16
-
17
- def _lambda_debug_config_for(lambda_arn: Arn) -> Optional[LambdaDebugModeConfig]:
18
- if not is_lambda_debug_mode():
19
- return None
20
- debug_configuration = LambdaDebugModeSession.get().debug_config_for(lambda_arn=lambda_arn)
21
- return debug_configuration
22
-
23
-
24
- def is_lambda_debug_enabled_for(lambda_arn: Arn) -> bool:
25
- """Returns True if the given lambda arn is subject of an active debugging configuration; False otherwise."""
26
- debug_configuration = _lambda_debug_config_for(lambda_arn=lambda_arn)
27
- return debug_configuration is not None
28
-
29
-
30
- def lambda_debug_port_for(lambda_arn: Arn) -> Optional[int]:
31
- debug_configuration = _lambda_debug_config_for(lambda_arn=lambda_arn)
32
- if debug_configuration is None:
33
- return None
34
- return debug_configuration.debug_port
35
-
36
-
37
- def is_lambda_debug_timeout_enabled_for(lambda_arn: Arn) -> bool:
38
- debug_configuration = _lambda_debug_config_for(lambda_arn=lambda_arn)
39
- if debug_configuration is None:
40
- return False
41
- return not debug_configuration.enforce_timeouts