首页 > 解决方案 > 如何根据 AWS Lambda /tmp 文件夹的事件在 JSON 文件中存储字符串变量?

问题描述

我试图确定我在代码中做错了什么。我对Linux文件系统的水平不高。我正在尝试将我的 JSON 文件存储在“/tmp”目录中,以便可以在 Lambda 中对其进行写入,在将其存储在那里之后,我尝试编写代码以根据事件将变量传递给字符串文字。我不确定我做错了什么。

错误表示即使在使用加载函数存储在/tmp 中后,它也不可写。

到目前为止,我试图将“/var/task”的路径切换到/var/tmp。

def lambda_handler(event, context):
s3 = boto3.client('s3')
Bucketname = event['requestParameters']['bucketName']
PolicyEvent = event['requestParameters']['bucketPolicy']['Statement'][0]['Effect'] 
print(PolicyEvent)
JSON_Policy = open("JSON_Policy.JSON",'r')
# Save JSON_Policy to path to this on Linux/Unix based filesystem for Lambda and change current directory to /var/tmp
os.chdir("/var/tmp")
Dir = os.getcwd()
print(Dir)    
save_path = "/var/task"
full_name = os.path.join(save_path,"JSON_Policy.JSON")
with open(full_name,"r") as JSONfile:
    JSONDoc = json.load(JSONfile)
pprint(JSONDoc)
return JSONDoc

这是我以 JSON 格式存储在 Lambda 环境根文件夹中的存储桶策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::%s/*" % Bucketname
        }
    ]
}

标签: pythonjsonamazon-web-servicesaws-lambdaextract

解决方案


推荐阅读