Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 正在S3上读取Lambda文件-刷新S3缓存_Amazon Web Services_Caching_Amazon S3_Aws Lambda_Boto3 - Fatal编程技术网

Amazon web services 正在S3上读取Lambda文件-刷新S3缓存

Amazon web services 正在S3上读取Lambda文件-刷新S3缓存,amazon-web-services,caching,amazon-s3,aws-lambda,boto3,Amazon Web Services,Caching,Amazon S3,Aws Lambda,Boto3,我对S3上的缓存有问题。基本上,我有一个lambda,它读取S3上的一个文件,该文件用作配置。该文件是一个JSON文件。我正在使用python和boto3来提取所需的信息 我的代码片段: s3 = boto3.resource('s3') bucketname = "configurationbucket" itemname = "conf.json" obj = s3.Object(bucketname, itemname) body = obj.get()['Body'].read() js

我对S3上的缓存有问题。基本上,我有一个lambda,它读取S3上的一个文件,该文件用作配置。该文件是一个JSON文件。我正在使用python和boto3来提取所需的信息

我的代码片段:

s3 = boto3.resource('s3')
bucketname = "configurationbucket"
itemname = "conf.json"
obj = s3.Object(bucketname, itemname)
body = obj.get()['Body'].read()
json_parameters = json.loads(body)  


def my_handler(event, context):
    # using json_paramters data
问题是,当我更改json内容并在S3上再次上传文件时,我的lambda似乎读取了旧值,我想这是由于S3在某处进行缓存

现在我认为有两种方法可以解决这个问题:

  • 强制S3使其缓存内容无效
  • 强制lambda从S3重新加载文件而不使用缓存

我确实更喜欢第一种解决方案,因为我认为它将减少计算时间(重新加载文件是一个昂贵的过程)。那么,如何刷新缓存?我没有在console或AWS指南上找到以简单方式执行此操作的方法

问题是,函数处理程序之外的代码只初始化一次。当lambda温度较高时,不会重新初始化

def my_handler(event, context):
    # read from S3 here
    obj = s3.Object(bucketname, itemname)
    body = obj.get()['Body'].read()
    json_parameters = json.loads(body)
    # use json_paramters data

S3和Lambda都没有任何内置缓存。您是如何更新文件的?很可能是您在Lambda函数中进行缓存。显示的代码片段是在Lambda函数的事件处理程序内部运行还是在其外部运行?您可以扩展您的代码示例吗?@stdunbar by S3控制台所有全局设置都将在暖Lambda启动期间保持。请更新代码或函数配置。是。我在阅读本文时发现了这个“问题”:Aws说这是一个提高加载时间的特性