Как запустить лямбда-функцию с помощью SNS? - PullRequest
0 голосов
/ 23 января 2020

Привет,

Я хочу активировать свою лямбда-функцию, когда я загружаю изображение в корзину S3. После успешной загрузки на S3 я хочу активировать функцию Lambda при обратном вызове. Не могли бы вы помочь мне, как этого добиться?

1 Ответ

2 голосов
/ 23 января 2020

Вам необходимо настроить лямбду для запуска из события создания объекта в S3, ссылка здесь - https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html

Вам также потребуется настроить правильные роли разрешений IAM для ваша лямбда-функция и S3, хорошая ссылка для этого здесь https://docs.amazonaws.cn/en_us/lambda/latest/dg/with-s3-example.html

Вот код, который поможет вам начать реализацию -

    import urllib
    import boto3

    s3 = boto3.client('s3')

    def lambda_handler(event, context):
            bucket = event['Records'][0]['s3']['bucket']['name']
            key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8')
            response = s3.get_object(Bucket=bucket, Key=key)

Это получит загруженный файл и сохранит его в ответ. То, что вы хотите сделать здесь, зависит от вас.

...