AWS Lambda Python Jinja2模板从S3加载json



我想从S3 bucket中获取一个json结构的Jinja2模板(一个带有j2变量的json(,并使用键值进行渲染。我看到了两个需要帮助的路障:

  1. 模板模块有PackageLoader和类似的程序,但我找不到S3 bucket中的加载程序。如果没有,那么将S3对象下载到我的AWS lambda内存上是一个不错的选择吗
env = Environment(loader=FileSystemLoader (OR PackageLoader('app','templates'))
template_source = env.loader.get_source(env, 'sample.json')
  1. 如何使用Template((加载json风格的jinja文件?当我尝试下面的代码时,它错误地指出">需要用双引号括起来的属性名称">
response = s3.get_object(Bucket=bucket, Key="sample.json")
data = response['Body'].read()
template = Template(data) #errors here

感谢您在这里的投入,谢谢。

问题是S3 read((返回字节,因此必须解码到utf8才能使jinja2工作:

response['Body'].read().decode('utf-8')

最新更新