ошибка «файловая система только для чтения», когда я пытаюсь создать файл с помощью bash-скрипта в AWS Lambda-функции (python)

#amazon-web-services #aws-lambda #amazon-efs

#amazon-web-services #aws-lambda #amazon-efs

Вопрос:

У меня есть python (3.8) лямбда-функция, которая подключена к EFS, в mount /mnt/my-mount .

Я хочу запустить скрипт bash с помощью функции, поэтому я создал другой файл script.sh .

Это функция python:

 import json
import os

def lambda_handler(event, context):
    os.system("sh script.sh")
  

и bash-скрипт script.sh :

 #!/bin/bash
touch hello.txt
  

и я получаю следующую ошибку:

cannot touch script.sh: Read-only file system

Примечания:

  • Я могу создать файл с помощью функции python (f.write).
  • Если я запускаю os.system("chmod 777 a.sh") , я снова получаю Read-Only file system .
  • Если я использую rc = subprocess.call("bash a.sh") , я получаю No such file or directory: 'bash a.sh'
  • У EFS есть точка доступа для пользователя 1000:1000 с 777 правами доступа.

Комментарии:

1. Вам нужно указать абсолютный путь, например touch /mnt/my-mount/hello.txt ?

Ответ №1:

Это может быть связано с тем, что у роли Lambda нет надлежащих разрешений на запись. Вы должны прикрепить соответствующую политику или определить свою собственную: введите описание изображения здесь