forked from aws-powertools/powertools-lambda-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayer_stack.py
More file actions
31 lines (24 loc) · 1.17 KB
/
Copy pathlayer_stack.py
File metadata and controls
31 lines (24 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from aws_cdk import CfnOutput, RemovalPolicy, Stack
from aws_cdk.aws_lambda import CfnLayerVersionPermission
from aws_cdk.aws_ssm import StringParameter
from cdk_lambda_powertools_python_layer import LambdaPowertoolsLayer
from constructs import Construct
class LayerStack(Stack):
def __init__(
self, scope: Construct, construct_id: str, powertools_version: str, ssm_paramter_layer_arn: str, **kwargs
) -> None:
super().__init__(scope, construct_id, **kwargs)
layer = LambdaPowertoolsLayer(
self, "Layer", layer_version_name="AWSLambdaPowertoolsPython", version=powertools_version
)
layer_permission = CfnLayerVersionPermission(
self,
"PublicLayerAccess",
action="lambda:GetLayerVersion",
layer_version_arn=layer.layer_version_arn,
principal="*",
)
layer_permission.apply_removal_policy(RemovalPolicy.RETAIN)
layer.apply_removal_policy(RemovalPolicy.RETAIN)
StringParameter(self, "VersionArn", parameter_name=ssm_paramter_layer_arn, string_value=layer.layer_version_arn)
CfnOutput(self, "LatestLayerArn", value=layer.layer_version_arn)