Сверху головы я не знаю, как долго действуют сертификаты APN, но если они меньше 4 КБ , вы можете добавить их в качестве переменной среды Lambda и прочитать в временный файл при запуске (в settings.py
).
Если их размер превышает 4 КБ, вы можете сохранить сертификат в S3, а затем загрузить его во временный файл при запуске:
import boto3
from tempfile import NamedTemporaryFile
s3 = boto3.client("s3")
with NamedTemporaryFile(delete=False) as f:
s3.download_fileobj("mybucket", "mykey", f)
APNS_CERTIFICATE = f.name
(Отказ от ответственности: я не проверял этот точный код)
Однако это может дорого обойтись, потому что вы извлекаете файл из S3 каждый раз, когда вызывается Lambda. Функция Zappa keep_warm
может помочь в этом, но я не совсем уверен, как она работает, поэтому возьмите это с крошкой соли.
Возможно, вы также захотите отключить это, если DEBUG
или другой индикатор, который вы разрабатываете локально, не установлен, поэтому вы не пытаетесь получить ваш сертификат APN производства во время разработки.