AWS - Lambda Функции - Технология Serverless

AWS - Lambda Функции - Технология Serverless
Буду рад паре баксов, можно даже Канадских :) www.paypal.me/DenisAstahov

Пікірлер: 92

  • @j___ray
    @j___ray4 жыл бұрын

    Просто урок можно на цитаты: "Это я сам придумал! Круто, правда?" "Сервер как раб"))

  • @j___ray

    @j___ray

    4 жыл бұрын

    @@escapeagreement8941 я и не спорю, смотрю с удовольствием)

  • @4optimistic
    @4optimistic5 жыл бұрын

    import boto3, os def lambda_handler(event, context): myS3 = boto3.client('s3') try: results = myS3.list_buckets() print(results) output = "" for bucket in results['Buckets']: output = output + bucket['Name'] + "" return ("S3 Bucket List:" + output) except: return ("

  • @TheDfghdhg
    @TheDfghdhg6 жыл бұрын

    Крутой курс!

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    Спасибо!

  • @124um
    @124um4 жыл бұрын

    Супер! Спасибо за урок.

  • @below_waterline
    @below_waterline4 жыл бұрын

    Спасибо за курсы )))

  • @bieliaievays
    @bieliaievays5 жыл бұрын

    Спасибо. Очень полезно.

  • @roman8745
    @roman87455 жыл бұрын

    Для создания Lambda Function в браузере должны быть включены и разрешены Cookies иначе будете получать 'Network error' которая абсолютно ни о чем не говорит. В инете вопросов по этой ошибке куча и все без ответов.

  • @user-bi3kx5uf6d

    @user-bi3kx5uf6d

    Жыл бұрын

    еще бывает из-за неправильной даты на локальной машине

  • @sergeydev8273
    @sergeydev82733 жыл бұрын

    Неистово лайкаю, каждый выпуск :)

  • @MrSanlord77
    @MrSanlord774 жыл бұрын

    Дополню. Очень очень часто lambda ф-ия связана со state machine типа Task Step Function, которая в свою очередь триггерится тупо по расписанию. При деплое в YAML файле кроме всего прочего указываем scheduled rules в формате, очень похожем на cron, но с небольшими отличиями

  • @4optimistic
    @4optimistic5 жыл бұрын

    import boto3, os, time AWS_DEFAULT_REGION = "eu-west-1" #Region where Lambda running os.environ['AWS_DEFAULT_REGION'] = AWS_DEFAULT_REGION bucketname = "lambda.create.me.on-" + str(time.time()) def lambda_handler(event, context): myS3 = boto3.resource('s3') try: results = myS3.create_bucket( Bucket= bucketname, CreateBucketConfiguration = {'LocationConstraint':AWS_DEFAULT_REGION} ) return ("S3 Bucket Created Successfully:" + str(results)) except: return ("Error!")

  • @franc237

    @franc237

    4 жыл бұрын

    import boto3, os def lambda_handler(event, context): myS3 = boto3.client('s3') try: results = myS3.list_buckets() print(results) output = "" for bucket in results['Buckets']: output = output + bucket['Name'] + "" return ("S3 Bucket List:" + output) except: return ("Error!" )

  • @morningvega
    @morningvega3 жыл бұрын

    Моё уважению автору

  • @Xelamus
    @Xelamus2 жыл бұрын

    звучит круто =)

  • @smokzpolski
    @smokzpolski3 жыл бұрын

    На Дженкинс дошел до последних уроков (равзёртывание в AWS) - пошел смотреть про AWS. И вот он тот самый момент, когда надо идти и смотреть/учить Питон.... Ё-маЁ!!! Хотя автору лютый респект =)

  • @ADV-IT

    @ADV-IT

    3 жыл бұрын

    Как бесконечная история учебы :)

  • @eus4376

    @eus4376

    3 жыл бұрын

    Знакомый путь, лол. С питоном ознакомился недели 3 назад, и с терраформ перескочил на авс курсы. Связать бы это все в голове - ансибл, дженкинс, авс..но тут только практика и реальные мелкие проекты =)

  • @user-hr2ic7iv1j
    @user-hr2ic7iv1j6 жыл бұрын

    Спасибо огромное за этот урок! Жду API Gateway. Если можно показать еще работу с событиями и запуском Lambda с помощью них.

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    Урок уже записан, скоро опубликуется, там я покажу как с помощю APIGateway запускать Lambda и еще как это дело защитить от нехороших людей :)

  • @drfrei6501
    @drfrei65015 жыл бұрын

    огромный респект как раз сейчас сижу с лямбдой )))) сенк юююююююю

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    Lambda это большое будующее

  • @azizsadykov2652
    @azizsadykov26523 жыл бұрын

    Привет из 2021. 1 при создании Бакета не нужно выставлять Регион, CreateBucketConfiguration={'LocationConstraint': AWS_DEFAULT_REGION} S3 does not require region selection. Денис или я что то не так понял из твоего скрипта.

  • @user-zi8ep6tk1d
    @user-zi8ep6tk1d6 жыл бұрын

    Топ!

  • @dmitrytsmyh5971
    @dmitrytsmyh59713 жыл бұрын

    ЗапусТкается, прикольно.)

  • @maksimkovtun9517
    @maksimkovtun9517 Жыл бұрын

    Версия кода создания бакета из 2023 года (обратите внимание куда переехал region): import boto3, os, time AWS_DEFAULT_REGION = "us-east-1" os.environ['AWS_DEFAULT_REGION'] = AWS_DEFAULT_REGION bucket_name = "b.lambded." + str(time.time()) def lambda_handler(event, context): s3_client = boto3.client("s3", region_name=AWS_DEFAULT_REGION) print(bucket_name) try: result = s3_client.create_bucket(Bucket=bucket_name) print(f"S3 Bucket Created with name {bucket_name}, {result=}") except Exception as ex: print(f"Error creating {str(ex)}") Кстати, есть ли смысл теперь в установке региона с помощью os.environ?

  • @ADV-IT

    @ADV-IT

    Жыл бұрын

    Поидее если есть Environment variable AWS_DEFAULT_REGION, то его и использует boto3.client("s3")

  • @kriptossavant8797
    @kriptossavant87972 жыл бұрын

    Ещё aot можете использовать, скомпилированный из любого языка, который поддерживает Ahead of Time компиляцию (например, Dart, Kotlin и т.д.).

  • @fivaproldge
    @fivaproldge5 жыл бұрын

    не перестаю ОХУЕВАТЬ - насколько же AWS крутая штука

  • @emmakonstantynovska
    @emmakonstantynovska2 жыл бұрын

    Здравствуйте! Спасибо за ваши уроки! Вы сказали, что еще сделаете урок по DynamoDB, так он будет? Пока я его не заметила в вашем плейлисте. :)

  • @ADV-IT

    @ADV-IT

    2 жыл бұрын

    Всё как-нибудь :)

  • @gyladti
    @gyladti6 жыл бұрын

    Здравствуйте, какая у Вас специальность?

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    DevOps Engineer

  • @slavkoslavko5229
    @slavkoslavko52295 жыл бұрын

    А в чем отличия boto3.resource('s3') и boto3.client('s3')?

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    Управление одними ресурсами требуют boto3.resource другими boto3.client boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client

  • @Majkirsche
    @Majkirsche5 жыл бұрын

    Спасибо!!! Как всегда шикарный урок. Один вопрос - насколько Lambda дорогая? Можно ли для тренировки наделать всяких функций и сохранить их или они будут втихаря пожирать деньги и лучше не стоит?

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    Очень дешевая, так что не парься

  • @dmitriimrcat
    @dmitriimrcat4 жыл бұрын

    То есть это SaaS? Очень круто! Спасибо.

  • @maxsukhoparov3259
    @maxsukhoparov32594 жыл бұрын

    когда запускал лямбду из aws cli и экспортировал html код в txt, а потом открывал в консоли , это зачем?)) если уж html то в Output.html и сохраняй )) а потом просто "iexplore output.html" например)) и не надо в блокноте строки переносить. А за урок спасибо! Всё супер!

  • @dodokwak
    @dodokwak3 жыл бұрын

    Кто-то пытался реализовать lambda для re-sizing images? Не могу понять, почему получаю ошибку 403 Forbidden. Сценарий: у меня 2 bucket: 1-ая для загрузки картинок юзера, 2-ая для сохранения уже от-resized images. Лямбда функция срабатывает на создание нового объекта в 1-ой bucket, обрезает картинку и скидывает её во вторую. У обоих bucket : 1. public access 2. cross-origin resource sharing(CORS) c allow * 3. permissions : bucket policy= action getObject. Картинка благополучно обрезается, перекидывается во вторую корзинку и по url я могу её скачать\помотреть. однако в этот момент(первый reload page) у меня в browser image не видно, а в dev tools = 403 Forbidden. Однако картинка появляется и ошибка изчезает при 2-ой перезагрузки страницы. backend(django). Спасибо.

  • @ADV-IT

    @ADV-IT

    3 жыл бұрын

    bucket policy= action getObject. ? А какже PutObject?

  • @dodokwak

    @dodokwak

    3 жыл бұрын

    @@ADV-IT спасибо. добавила getObject, putOject ,не помогает... пересистирует. Думала сначала,что может быть долго re-size-cя. увеличила Timeout y lambda. Но дело скорей всего в чём-то другом. А главное, почему image таки загружается со второго раза, если он уперся рогом и в первый раз отказался to render? update: скорее всего моя джанго делает запрос на картинку слишком быстро,когда от-resized картинка ещё не полностью залилась в новую корзинку.

  • @samrybkin9184
    @samrybkin9184 Жыл бұрын

    Звук клавиатуры старого доброго ASUS просто огонь:) Кстати как клавиатура в MSI удобней чем в Asus?

  • @ADV-IT

    @ADV-IT

    Жыл бұрын

    Да, кнопки больше так как нету кнопок калькулятора вправа, он нафиг не нужны

  • @sergapon666
    @sergapon6666 жыл бұрын

    а сколько планируется уроков?

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    Дахрена! честно, там столько всего, что капец просто. Но когда я закончу все темы для экзамена Solutions Architect Associate я конечно скажу, ну и продолжу дальше разные другие серсисы показвать как ими пользоваться.

  • @qspor
    @qspor5 жыл бұрын

    Вопрос такой. Функция выполняется только 1 раз. Тоесть если я создал функцию, для создания bucket, прописал тригер, для создания уникальности имени бакета использую timestamp либо rand(), в итоге после сохранения функции она исполняется ровно 1 раз и больше не выполняется, и не важно стработал тригер или нет или выполнен invoke через CLI или SDK, такое ощущение, что по завершению функции она уходит во фриз и поля для timestamp к примеру не сбрасываются на null, короче стек полон мусора и функция не может создать такой же бакет с таким же именем, для этого нужно удалить старый бакет и тогда функция создаст новый но со старым timestamp, Как бороться с этим фризом ??? Пробовал писать и на Python и на Java SDK используя jar.

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    Lambda это как Docker контейнер, он не сразу умирает после выполнения Lambda. Есть такая фигня как Execution Context docs.aws.amazon.com/lambda/latest/dg/running-lambda-code.html

  • @qspor

    @qspor

    5 жыл бұрын

    ADV-IT Насколько я понял Execution Context это не что иное как temporary env variables или другими словами пресловутая куча без сборщика мусора, я конечно понимаю что контейнер хранит данный контест для уменьшения времени исполнения(Latency), но опять таки мой метод должен каждый раз исполнять код который явно создаёт random, чтобы можно было создовать к примеру новые бакеты с новыми сепараторами имен и возможно сотни таких в секунду. Возможно ли как вариант передавать аргументы при вызове Lambda функции ? но как их передать если тригер к примеру не передает ?

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    Попробуй передавать параметр названия бакета, а не генерировать его в функции

  • @qspor

    @qspor

    5 жыл бұрын

    ADV-IT Вот через API Gateway вроде получилось. import requests, json, random url = 'vy2rsd0twb.execute-api.us-east-1.amazonaws.com/DEV1' headers = {'x-api-key': 'rXUe5suLnt6is6Wrm6EAK12AWsdztlqZ76OXM40f'} counters = 1 while counters randoms = str(random.randint(1000000000000, 9999999999999)) payload = {'name': randoms} r = requests.post(url, data=json.dumps(payload), headers=headers) counters = counters + 1

  • @qspor

    @qspor

    5 жыл бұрын

    PS Api у ключ удален в целях безопасности

  • @dmitriymovchan6563
    @dmitriymovchan65636 жыл бұрын

    У меня тоже почему-то не все иконки сохраняются сверху консоли.

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    У всех это, баг на Амазоне

  • @Em-iy7hb

    @Em-iy7hb

    6 жыл бұрын

    У меня такая же ситуация. Главное дома при использовании личного ноутбука, в консоли иконки сохранились. А на работе, иконки нет. Так же понял, что бага Амазона.

  • @qweone123
    @qweone1234 жыл бұрын

    РЕСПЕКТ, быстрее чем читать нудную доку

  • @dodokwak
    @dodokwak3 жыл бұрын

    раньше при сохранении изменений в ламбде мы использовали кнопку Save, что понятно-интуитивно. теперь вместо неё - Deploy. В чём разница? Спасибо заранее.

  • @ADV-IT

    @ADV-IT

    3 жыл бұрын

    В названии как помоему

  • @almasabdrazak5089
    @almasabdrazak50895 жыл бұрын

    так подождите , Hello world 125 мб или я чего-то не понял?

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    На 23:43 виден размер функций

  • @JohnHarmRussia

    @JohnHarmRussia

    4 жыл бұрын

    @@ADV-IT Дык по этому таймкоду размер кода выводит. А человек спрашивает, видимо, про потребляемую лямбдой память (за которую тоже платить надо, кстати, дополнительно или она уже входит в ценник лямбды?). Тоже, кстати, присоединяюсь к вопросу..

  • @ADV-IT

    @ADV-IT

    4 жыл бұрын

    @@JohnHarmRussia по умолчанию тебе дается 128Mb на выполнение функции.

  • @ADV-IT

    @ADV-IT

    4 жыл бұрын

    Ты платишь по моему за execution time

  • @adilhasanov
    @adilhasanov3 жыл бұрын

    Добавить хрень!

  • @sonny23ization
    @sonny23ization3 жыл бұрын

    а в чем отличие от cloudformation?

  • @ADV-IT

    @ADV-IT

    3 жыл бұрын

    В том же в чем отличие Холодильника от Телевизора. Тоесть совсем разные вещи.

  • @wamikgildiev6632

    @wamikgildiev6632

    10 ай бұрын

    @@ADV-IT замечательный ответ. А главное исчерпывающий

  • @sergapon666
    @sergapon6666 жыл бұрын

    а почему вы не создадите свою группу в вконтакте?

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    А зачем она нужна, ей заниматься надо, а времени на это у меня не особо, все что я делаю чисто хобби. У меня в VK и facebook личные странички есть, я ими редно пользуюсь, и особо ничего там не выкладываю.

  • @dimajj1477
    @dimajj14772 жыл бұрын

    По ходу и иврит проскальзует בגדול :-)

  • @UAStriker
    @UAStriker Жыл бұрын

    Hello world использовал 21 мб памяти?)) 12:15 минута

  • @ADV-IT

    @ADV-IT

    Жыл бұрын

    Операционной

  • @ttsrg
    @ttsrg3 жыл бұрын

    пляха/муха )))))

  • @alexey7005
    @alexey70056 жыл бұрын

    Как на нем можно заработать .???

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    На нем можно сэкономить кучу денег не запуская серверы.

  • @alexey7005

    @alexey7005

    6 жыл бұрын

    спасибо , тут дело в том что я не понимая в принципе как и что этим делать , ну вот есть у меня сертификат , и что мне с ним делать ? я не айтишник , тока учусь , если не затруднит .Спасибо

  • @ADV-IT

    @ADV-IT

    6 жыл бұрын

    Что делать? Искать работу!

  • @vadim-aleksandrovich
    @vadim-aleksandrovich2 жыл бұрын

    В таком виде работает import boto3, os, time AWS_DEFAULT_REGION = "eu-central-1" os.environ['AWS_DEFAULT_REGION'] = AWS_DEFAULT_REGION bucketname = "lambda.create.me.on-" + str(time.time()) def lambda_handler(event, context): s3 = boto3.resource('s3') try: results = s3.Bucket(bucketname) results.create(CreateBucketConfiguration={ 'LocationConstraint': AWS_DEFAULT_REGION}) print('Bucket Created Successfully' + str(results) + '') except: print('Bucket Error!')

  • @israel14169
    @israel141693 жыл бұрын

    Название конечно изумительное "Ламбда" (почти как Ламбада), но выражаясь простым языком это мудрёный Планировщик задач.

  • @fivaproldge
    @fivaproldge5 жыл бұрын

    кстати, почему мИсэдж? Ведь мЭсседж \\ тебе пох, понимаю, просто любопытно, неужели тебя твои англоязычные коллеги не поправляют?

  • @ADV-IT

    @ADV-IT

    5 жыл бұрын

    Они думают что это просто мой акцент. Никто не поправляет.

  • @wamikgildiev6632
    @wamikgildiev663210 ай бұрын

    Чувак, несомненно, ты много знаешь. Но объясняешь ты откровенно хреново. Слушаю и уши кровоточат. Особенно порадовали такие перлы, как "Сервер стоит и бежит".