localstack-core 4.6.1.dev30__py3-none-any.whl → 4.6.1.dev32__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.
- localstack/services/lambda_/event_source_mapping/esm_worker_factory.py +5 -5
- localstack/services/lambda_/invocation/assignment.py +1 -23
- localstack/services/lambda_/invocation/counting_service.py +0 -21
- localstack/services/lambda_/invocation/docker_runtime_executor.py +5 -4
- localstack/services/lambda_/invocation/execution_environment.py +1 -18
- localstack/services/lambda_/invocation/executor_endpoint.py +4 -4
- localstack/services/lambda_/invocation/lambda_models.py +1 -0
- localstack/services/lambda_/invocation/lambda_service.py +3 -0
- localstack/services/lambda_/invocation/version_manager.py +25 -0
- localstack/services/lambda_/lambda_debug_mode/ldm.py +375 -0
- localstack/services/lambda_/lambda_debug_mode/ldm_config_file.py +178 -0
- localstack/services/lambda_/lambda_debug_mode/ldm_types.py +11 -0
- localstack/services/lambda_/lambda_debug_mode/ldm_utils.py +43 -0
- localstack/services/lambda_/provider.py +14 -14
- localstack/utils/aws/client_types.py +1 -0
- localstack/version.py +2 -2
- {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev32.dist-info}/METADATA +1 -1
- {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev32.dist-info}/RECORD +27 -26
- localstack_core-4.6.1.dev32.dist-info/plux.json +1 -0
- localstack/utils/lambda_debug_mode/lambda_debug_mode.py +0 -41
- localstack/utils/lambda_debug_mode/lambda_debug_mode_config.py +0 -230
- localstack/utils/lambda_debug_mode/lambda_debug_mode_session.py +0 -175
- localstack_core-4.6.1.dev30.dist-info/plux.json +0 -1
- /localstack/{utils → services/lambda_}/lambda_debug_mode/__init__.py +0 -0
- {localstack_core-4.6.1.dev30.data → localstack_core-4.6.1.dev32.data}/scripts/localstack +0 -0
- {localstack_core-4.6.1.dev30.data → localstack_core-4.6.1.dev32.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.6.1.dev30.data → localstack_core-4.6.1.dev32.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev32.dist-info}/WHEEL +0 -0
- {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev32.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev32.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.6.1.dev30.dist-info → localstack_core-4.6.1.dev32.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
|
-
|
|
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.
|
|
21
|
-
__version_tuple__ = version_tuple = (4, 6, 1, '
|
|
20
|
+
__version__ = version = '4.6.1.dev32'
|
|
21
|
+
__version_tuple__ = version_tuple = (4, 6, 1, 'dev32')
|
|
@@ -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=
|
|
7
|
+
localstack/version.py,sha256=MP65n7JKWyqGKreKurx7vzjMPvqfnv1hqDuvdcmMqwc,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=
|
|
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=
|
|
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=
|
|
577
|
-
localstack/services/lambda_/invocation/counting_service.py,sha256=
|
|
578
|
-
localstack/services/lambda_/invocation/docker_runtime_executor.py,sha256=
|
|
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=
|
|
581
|
-
localstack/services/lambda_/invocation/executor_endpoint.py,sha256=
|
|
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=
|
|
584
|
-
localstack/services/lambda_/invocation/lambda_service.py,sha256=
|
|
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=
|
|
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
|
|
@@ -1261,7 +1266,7 @@ localstack/utils/aws/arns.py,sha256=mPHxOYR6MyZtTyGzqNX7nySqiGSi6xQaUpDqJWV3DWQ,
|
|
|
1261
1266
|
localstack/utils/aws/aws_responses.py,sha256=FUvUz-cTHNlgsE-1PiZJ780SBFvIHzS8K2tzvRkJWZs,7781
|
|
1262
1267
|
localstack/utils/aws/aws_stack.py,sha256=IDyvPdtk4T9DJSgvmqh2c3w59UJQ9yCF3mHHuf_t-R0,3557
|
|
1263
1268
|
localstack/utils/aws/client.py,sha256=wSAc_uxVfAUtoQokxpghqHEylN0G88SfMaFr5XrtQJA,2926
|
|
1264
|
-
localstack/utils/aws/client_types.py,sha256=
|
|
1269
|
+
localstack/utils/aws/client_types.py,sha256=xaa8_mcsGvP8c3OiZPoAG0oGgiFRGQYhUhe0AsUiWY0,16292
|
|
1265
1270
|
localstack/utils/aws/dead_letter_queue.py,sha256=bQWcj-I0bmLnuI5IdryLGk0reiWWLEWtriv5Wcj4ZJM,5517
|
|
1266
1271
|
localstack/utils/aws/message_forwarding.py,sha256=zwP08aYVCI09INPST0Hq1me0PwbFzlZGnaL3VB7t9mQ,12498
|
|
1267
1272
|
localstack/utils/aws/queries.py,sha256=cod7Py-UGmffijSpI8J8lpxw5xMN-mT55XD98IhCb_s,1302
|
|
@@ -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.
|
|
1290
|
-
localstack_core-4.6.1.
|
|
1291
|
-
localstack_core-4.6.1.
|
|
1292
|
-
localstack_core-4.6.1.
|
|
1293
|
-
localstack_core-4.6.1.
|
|
1294
|
-
localstack_core-4.6.1.
|
|
1295
|
-
localstack_core-4.6.1.
|
|
1296
|
-
localstack_core-4.6.1.
|
|
1297
|
-
localstack_core-4.6.1.
|
|
1298
|
-
localstack_core-4.6.1.
|
|
1290
|
+
localstack_core-4.6.1.dev32.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
|
|
1291
|
+
localstack_core-4.6.1.dev32.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
|
|
1292
|
+
localstack_core-4.6.1.dev32.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
|
|
1293
|
+
localstack_core-4.6.1.dev32.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
|
|
1294
|
+
localstack_core-4.6.1.dev32.dist-info/METADATA,sha256=9GbAsGI1Cjdb4IuvErZR-xVdRz_CYpdu74I0m_4T5Qg,5537
|
|
1295
|
+
localstack_core-4.6.1.dev32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1296
|
+
localstack_core-4.6.1.dev32.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
|
|
1297
|
+
localstack_core-4.6.1.dev32.dist-info/plux.json,sha256=HJUkioVZydrhj7dv_TZrmuO48Ywax5Jb0LU7LqAPxj8,20891
|
|
1298
|
+
localstack_core-4.6.1.dev32.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
|
|
1299
|
+
localstack_core-4.6.1.dev32.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"localstack.cloudformation.resource_providers": ["AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "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::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin"], "localstack.hooks.on_infra_start": ["_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "eager_load_services=localstack.services.plugins:eager_load_services", "_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", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "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", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start"], "localstack.packages": ["dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_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", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package"], "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.hooks.on_infra_shutdown": ["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", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "stop_server=localstack.dns.plugins:stop_server", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "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"]}
|
|
@@ -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
|