AWS - Lambda Функции - Технология Serverless Буду рад паре баксов, можно даже Канадских :) www.paypal.me/...
Пікірлер: 92
@j___ray4 жыл бұрын
Просто урок можно на цитаты: "Это я сам придумал! Круто, правда?" "Сервер как раб"))
@j___ray4 жыл бұрын
@@escapeagreement8941 я и не спорю, смотрю с удовольствием)
@roman87455 жыл бұрын
Для создания Lambda Function в браузере должны быть включены и разрешены Cookies иначе будете получать 'Network error' которая абсолютно ни о чем не говорит. В инете вопросов по этой ошибке куча и все без ответов.
@user-bi3kx5uf6d Жыл бұрын
еще бывает из-за неправильной даты на локальной машине
На Дженкинс дошел до последних уроков (равзёртывание в AWS) - пошел смотреть про AWS. И вот он тот самый момент, когда надо идти и смотреть/учить Питон.... Ё-маЁ!!! Хотя автору лютый респект =)
@ADV-IT3 жыл бұрын
Как бесконечная история учебы :)
@eus43763 жыл бұрын
Знакомый путь, лол. С питоном ознакомился недели 3 назад, и с терраформ перескочил на авс курсы. Связать бы это все в голове - ансибл, дженкинс, авс..но тут только практика и реальные мелкие проекты =)
Дополню. Очень очень часто lambda ф-ия связана со state machine типа Task Step Function, которая в свою очередь триггерится тупо по расписанию. При деплое в YAML файле кроме всего прочего указываем scheduled rules в формате, очень похожем на cron, но с небольшими отличиями
@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 Жыл бұрын
Поидее если есть Environment variable AWS_DEFAULT_REGION, то его и использует boto3.client("s3")
@bieliaievays5 жыл бұрын
Спасибо. Очень полезно.
@sergeydev82733 жыл бұрын
Неистово лайкаю, каждый выпуск :)
@morningvega3 жыл бұрын
Моё уважению автору
@124um4 жыл бұрын
Супер! Спасибо за урок.
@drfrei65016 жыл бұрын
огромный респект как раз сейчас сижу с лямбдой )))) сенк юююююююю
@ADV-IT6 жыл бұрын
Lambda это большое будующее
@below_waterline4 жыл бұрын
Спасибо за курсы )))
@fivaproldge5 жыл бұрын
не перестаю ОХУЕВАТЬ - насколько же AWS крутая штука
@user-hr2ic7iv1j6 жыл бұрын
Спасибо огромное за этот урок! Жду API Gateway. Если можно показать еще работу с событиями и запуском Lambda с помощью них.
@ADV-IT6 жыл бұрын
Урок уже записан, скоро опубликуется, там я покажу как с помощю APIGateway запускать Lambda и еще как это дело защитить от нехороших людей :)
@dmitrytsmyh59713 жыл бұрын
ЗапусТкается, прикольно.)
@Xelamus2 жыл бұрын
звучит круто =)
@maxsukhoparov32594 жыл бұрын
когда запускал лямбду из aws cli и экспортировал html код в txt, а потом открывал в консоли , это зачем?)) если уж html то в Output.html и сохраняй )) а потом просто "iexplore output.html" например)) и не надо в блокноте строки переносить. А за урок спасибо! Всё супер!
@azizsadykov26523 жыл бұрын
Привет из 2021. 1 при создании Бакета не нужно выставлять Регион, CreateBucketConfiguration={'LocationConstraint': AWS_DEFAULT_REGION} S3 does not require region selection. Денис или я что то не так понял из твоего скрипта.
@qweone1234 жыл бұрын
РЕСПЕКТ, быстрее чем читать нудную доку
@kriptossavant87972 жыл бұрын
Ещё aot можете использовать, скомпилированный из любого языка, который поддерживает Ahead of Time компиляцию (например, Dart, Kotlin и т.д.).
@samrybkin9184 Жыл бұрын
Звук клавиатуры старого доброго ASUS просто огонь:) Кстати как клавиатура в MSI удобней чем в Asus?
@ADV-IT Жыл бұрын
Да, кнопки больше так как нету кнопок калькулятора вправа, он нафиг не нужны
@emmakonstantynovska2 жыл бұрын
Здравствуйте! Спасибо за ваши уроки! Вы сказали, что еще сделаете урок по DynamoDB, так он будет? Пока я его не заметила в вашем плейлисте. :)
@ADV-IT2 жыл бұрын
Всё как-нибудь :)
@dmitriimrcat4 жыл бұрын
То есть это SaaS? Очень круто! Спасибо.
@adilhasanov3 жыл бұрын
Добавить хрень!
@user-zi8ep6tk1d6 жыл бұрын
Топ!
@Majkirsche5 жыл бұрын
Спасибо!!! Как всегда шикарный урок. Один вопрос - насколько Lambda дорогая? Можно ли для тренировки наделать всяких функций и сохранить их или они будут втихаря пожирать деньги и лучше не стоит?
@ADV-IT5 жыл бұрын
Очень дешевая, так что не парься
@UAStriker Жыл бұрын
Hello world использовал 21 мб памяти?)) 12:15 минута
@ADV-IT Жыл бұрын
Операционной
@dmitriymovchan65636 жыл бұрын
У меня тоже почему-то не все иконки сохраняются сверху консоли.
@ADV-IT6 жыл бұрын
У всех это, баг на Амазоне
@Em-iy7hb6 жыл бұрын
У меня такая же ситуация. Главное дома при использовании личного ноутбука, в консоли иконки сохранились. А на работе, иконки нет. Так же понял, что бага Амазона.
@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-IT3 жыл бұрын
bucket policy= action getObject. ? А какже PutObject?
@dodokwak3 жыл бұрын
@@ADV-IT спасибо. добавила getObject, putOject ,не помогает... пересистирует. Думала сначала,что может быть долго re-size-cя. увеличила Timeout y lambda. Но дело скорей всего в чём-то другом. А главное, почему image таки загружается со второго раза, если он уперся рогом и в первый раз отказался to render? update: скорее всего моя джанго делает запрос на картинку слишком быстро,когда от-resized картинка ещё не полностью залилась в новую корзинку.
@dimajj14772 жыл бұрын
По ходу и иврит проскальзует בגדול :-)
@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!')
@slavkoslavko52295 жыл бұрын
А в чем отличия boto3.resource('s3') и boto3.client('s3')?
@ADV-IT5 жыл бұрын
Управление одними ресурсами требуют boto3.resource другими boto3.client boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client
@ttsrg3 жыл бұрын
пляха/муха )))))
@qspor5 жыл бұрын
Вопрос такой. Функция выполняется только 1 раз. Тоесть если я создал функцию, для создания bucket, прописал тригер, для создания уникальности имени бакета использую timestamp либо rand(), в итоге после сохранения функции она исполняется ровно 1 раз и больше не выполняется, и не важно стработал тригер или нет или выполнен invoke через CLI или SDK, такое ощущение, что по завершению функции она уходит во фриз и поля для timestamp к примеру не сбрасываются на null, короче стек полон мусора и функция не может создать такой же бакет с таким же именем, для этого нужно удалить старый бакет и тогда функция создаст новый но со старым timestamp, Как бороться с этим фризом ??? Пробовал писать и на Python и на Java SDK используя jar.
@ADV-IT5 жыл бұрын
Lambda это как Docker контейнер, он не сразу умирает после выполнения Lambda. Есть такая фигня как Execution Context docs.aws.amazon.com/lambda/latest/dg/running-lambda-code.html
@qspor5 жыл бұрын
ADV-IT Насколько я понял Execution Context это не что иное как temporary env variables или другими словами пресловутая куча без сборщика мусора, я конечно понимаю что контейнер хранит данный контест для уменьшения времени исполнения(Latency), но опять таки мой метод должен каждый раз исполнять код который явно создаёт random, чтобы можно было создовать к примеру новые бакеты с новыми сепараторами имен и возможно сотни таких в секунду. Возможно ли как вариант передавать аргументы при вызове Lambda функции ? но как их передать если тригер к примеру не передает ?
@ADV-IT5 жыл бұрын
Попробуй передавать параметр названия бакета, а не генерировать его в функции
@qspor5 жыл бұрын
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 < 4: randoms = str(random.randint(1000000000000, 9999999999999)) payload = {'name': randoms} r = requests.post(url, data=json.dumps(payload), headers=headers) counters = counters + 1
@qspor5 жыл бұрын
PS Api у ключ удален в целях безопасности
@almasabdrazak50895 жыл бұрын
так подождите , Hello world 125 мб или я чего-то не понял?
@ADV-IT5 жыл бұрын
На 23:43 виден размер функций
@JohnHarmRussia4 жыл бұрын
@@ADV-IT Дык по этому таймкоду размер кода выводит. А человек спрашивает, видимо, про потребляемую лямбдой память (за которую тоже платить надо, кстати, дополнительно или она уже входит в ценник лямбды?). Тоже, кстати, присоединяюсь к вопросу..
@ADV-IT4 жыл бұрын
@@JohnHarmRussia по умолчанию тебе дается 128Mb на выполнение функции.
@ADV-IT4 жыл бұрын
Ты платишь по моему за execution time
@gyladti6 жыл бұрын
Здравствуйте, какая у Вас специальность?
@ADV-IT6 жыл бұрын
DevOps Engineer
@sonny23ization3 жыл бұрын
а в чем отличие от cloudformation?
@ADV-IT3 жыл бұрын
В том же в чем отличие Холодильника от Телевизора. Тоесть совсем разные вещи.
@wamikgildiev663211 ай бұрын
@@ADV-IT замечательный ответ. А главное исчерпывающий
@alexey70056 жыл бұрын
Как на нем можно заработать .???
@ADV-IT6 жыл бұрын
На нем можно сэкономить кучу денег не запуская серверы.
@alexey70056 жыл бұрын
спасибо , тут дело в том что я не понимая в принципе как и что этим делать , ну вот есть у меня сертификат , и что мне с ним делать ? я не айтишник , тока учусь , если не затруднит .Спасибо
@ADV-IT6 жыл бұрын
Что делать? Искать работу!
@dodokwak3 жыл бұрын
раньше при сохранении изменений в ламбде мы использовали кнопку Save, что понятно-интуитивно. теперь вместо неё - Deploy. В чём разница? Спасибо заранее.
@ADV-IT3 жыл бұрын
В названии как помоему
@sergapon6666 жыл бұрын
а сколько планируется уроков?
@ADV-IT6 жыл бұрын
Дахрена! честно, там столько всего, что капец просто. Но когда я закончу все темы для экзамена Solutions Architect Associate я конечно скажу, ну и продолжу дальше разные другие серсисы показвать как ими пользоваться.
@sergapon6666 жыл бұрын
а почему вы не создадите свою группу в вконтакте?
@ADV-IT6 жыл бұрын
А зачем она нужна, ей заниматься надо, а времени на это у меня не особо, все что я делаю чисто хобби. У меня в VK и facebook личные странички есть, я ими редно пользуюсь, и особо ничего там не выкладываю.
@israel141693 жыл бұрын
Название конечно изумительное "Ламбда" (почти как Ламбада), но выражаясь простым языком это мудрёный Планировщик задач.
@fivaproldge5 жыл бұрын
кстати, почему мИсэдж? Ведь мЭсседж \\ тебе пох, понимаю, просто любопытно, неужели тебя твои англоязычные коллеги не поправляют?
@ADV-IT5 жыл бұрын
Они думают что это просто мой акцент. Никто не поправляет.
@wamikgildiev663211 ай бұрын
Чувак, несомненно, ты много знаешь. Но объясняешь ты откровенно хреново. Слушаю и уши кровоточат. Особенно порадовали такие перлы, как "Сервер стоит и бежит".