Я пытаюсь определить, что я делаю неправильно в своем коде. Я не высокого уровня с файловой системой 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
}
]
}