python自定义函数lambda_在Lambd上调用自定义Lambda层函数

我正在尝试实现一个自定义的AWS Lambda层,以便在我的函数中使用它。

它应该是一个简单的层,它从ssm获取一些参数并初始化puresec的function_shield以保护我的服务。

代码看起来不像这样:import os

import boto3

import function_shield as shield

STAGE = os.environ['stage']

REGION = os.environ['region']

PARAMETERS_PREFIX = os.environ['parametersPrefix']

class ParameterNotFoundException(Exception):

pass

session = boto3.session.Session(region_name=REGION)

ssm = session.client('ssm')

# function_shield config

parameter_path = f"/{PARAMETERS_PREFIX}/{STAGE}/functionShieldToken"

try:

shield_token = ssm.get_parameter(

Name=parameter_path,

WithDecryption=True,

)['Parameter']['Value']

except Exception:

raise ParameterNotFoundException(f'Parameter {parameter_path} not found.')

policy = {

"outbound_connectivity": "block",

"read_write_tmp": "block",

"create_child_process": "block",

"read_handler": "block"

}

def configure(p):

"""

update function_shield policy

:param p: policy dict

:return: null

"""

policy.update(p)

shield.configure({"policy": policy, "disable_analytics": True, "token": shield_token})

configure(policy)

我希望能够将此层链接到我的函数,以便在运行时保护它。

我使用的是serverless框架,看起来我的层部署得很好,就像我的示例函数一样。此外,AWS控制台还向我显示,该层在我的函数中是链接的。在

我将图层命名为“shield”,并尝试在测试函数中按其名称导入:

^{pr2}$

理想情况下,我应该在CloudWatch上得到并出错,告诉我function_shield阻止了{}的运行,但是我收到一个错误,告诉我在我的运行时没有声明“shield”。在

我错过了什么?

除了numpy、scipy、二进制文件等,我找不到任何用于层的自定义代码示例

我很抱歉我的愚蠢…

谢谢你的好意!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值