2017-11-26 21:28:28 +00:00
|
|
|
from collections import namedtuple
|
2021-01-17 17:28:49 +02:00
|
|
|
from functools import partial
|
2017-11-26 21:28:28 +00:00
|
|
|
|
2019-10-31 08:44:26 -07:00
|
|
|
ARN = namedtuple("ARN", ["region", "account", "function_name", "version"])
|
2021-01-17 17:28:49 +02:00
|
|
|
LAYER_ARN = namedtuple("LAYER_ARN", ["region", "account", "layer_name", "version"])
|
2017-11-26 21:28:28 +00:00
|
|
|
|
|
|
|
|
2021-01-17 17:28:49 +02:00
|
|
|
def make_arn(resource_type, region, account, name):
|
|
|
|
return "arn:aws:lambda:{0}:{1}:{2}:{3}".format(region, account, resource_type, name)
|
2019-05-22 01:49:56 +09:00
|
|
|
|
|
|
|
|
2021-01-17 17:28:49 +02:00
|
|
|
make_function_arn = partial(make_arn, "function")
|
|
|
|
make_layer_arn = partial(make_arn, "layer")
|
|
|
|
|
|
|
|
|
|
|
|
def make_ver_arn(resource_type, region, account, name, version="1"):
|
|
|
|
arn = make_arn(resource_type, region, account, name)
|
2019-10-31 08:44:26 -07:00
|
|
|
return "{0}:{1}".format(arn, version)
|
2017-11-26 21:28:28 +00:00
|
|
|
|
|
|
|
|
2021-01-17 17:28:49 +02:00
|
|
|
make_function_ver_arn = partial(make_ver_arn, "function")
|
|
|
|
make_layer_ver_arn = partial(make_ver_arn, "layer")
|
|
|
|
|
|
|
|
|
|
|
|
def split_arn(arn_type, arn):
|
|
|
|
arn = arn.replace("arn:aws:lambda:", "")
|
2017-11-26 21:28:28 +00:00
|
|
|
|
2019-10-31 08:44:26 -07:00
|
|
|
region, account, _, name, version = arn.split(":")
|
2017-11-26 21:28:28 +00:00
|
|
|
|
2021-01-17 17:28:49 +02:00
|
|
|
return arn_type(region, account, name, version)
|
|
|
|
|
|
|
|
|
|
|
|
split_function_arn = partial(split_arn, ARN)
|
|
|
|
split_layer_arn = partial(split_arn, LAYER_ARN)
|