Лямбда зонд функции: Кислородный датчик (лямбда-зонд): устройство и принцип работы

Содержание

функции, неисправности и их устранение, видео

Далеко не всем современным автолюбителям известно, что лямбда-зонд выполняет одну из основных функций в работе ДВС и выхлопной системы. Без него фактически невозможна нормальная работа мотора. Предлагаем вам узнать, что это такое, зачем нужен, где находится и за что отвечает первый или верхний лямбда-зонд, почему он выходит из строя и как его почистить.

Содержание

[ Раскрыть]

[ Скрыть]

Что такое лямбда-зонд?

Какой лучше, для чего нужен верхний лямбда-зонд и где находится? Для начала стоит разобраться в том, что же это такое. Подробнее о назначении и принципе работе будет сказано ниже.

Назначение

Место монтажа лямбда-зондов

Лямбда-зонд представляет собой кислородный датчик — это такое устройство сопротивления, которое находится в выпускном коллекторе. Благодаря информации, которую отправляет лямбда-зонд, блок управления двигателем может поддерживать определенный состав горючей смеси. Кислородный датчик посылает электрический приборам сигнал, если в камеру поступает слишком богатая или бедная топливно-воздушная смесь. В результате информации, которую отправил лямбда-зонд, бортовой компьютер авто корректируется подачу горючей смеси.

По теоретическим данным, которые часто бывают далеки от практических, для сгорания одного килограмма горючей смеси необходимо около пятнадцати килограмм кислорода. Соответственно, если кислородный датчик работает не корректно, то это напрямую повлияет на то, как будет работать мотор в целом. Кроме того, это может отразиться на расходе топлива.

Что такое универсальный лямбда-зонд и для чего он нужен — понятно, но как же он выглядит? Ведь далеко не каждый автолюбитель понимает, что с виду представляет собой это устройство. Тем более, если вы планируете произвести самостоятельную диагностику устройства,то необходимо разобраться в принципе его работы. С этой информацией вы ознакомитесь ниже.

Устройство и принцип работы

Устройство кислородного датчика

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

Универсальный кислородный датчик состоит из следующих компонентов:

  1. Непосредственно сам корпус. Универсальный лямбда-зонд сопротивления имеет металлический корпус, оснащенный нарезной резьбой для правильного монтажа.
  2. Керамический изолятор.
  3. Уплотнительное кольцо.
  4. Керамический наконечник.
  5. Провода, а также манжеты для их правильного уплотнения.
  6. Для того, чтобы обеспечить вентиляцию устройства, применяется специальный корпус, оснащенный дополнительным отверстием.
  7. Контакт, по которому проходит ток.
  8. Дополнительный щиток, именующийся защитным, поскольку оснащен специальным отверстием, необходимым для выпуска выхлопных газов.
  9. Также универсальный датчик оснащается спиралью, установленной в отдельном резервуаре (автор видео — Витя Крякушкин).

Следует отметить, что отличительной особенностью, которой характеризуется первый или второй лямбда-зонд в автомобиле, является то, что для изготовления используются термостойкая основа.

Применение таких материалов необходимо потому, что само устройство всегда работает при высоких температурах. На сегодняшний день в современных автомобилях используются один из четырех типов датчиков, их различие зависит от числа подводящих к устройству проводов — от одно- до четырехпроводного.

Что касается принципа работы, то диагностический датчик концентрации кислорода представляет собой элемент обратной связи. Это устройство позволяет системе правильно рассчитать необходимую дозировку топлива для определенного количества подаваемого воздуха. Оптимальный расчет горючей смеси актуален не только с экологической, но и экономической точки зрения. Поскольку сегодня требования к экологической безопасности при производстве транспортных средств очень велики, то новые машины комплектуются обычно только катализаторами. Также двигатели автомобилей оснащаются двумя датчиками кислорода.

Благодаря использованию катализатора и двух лямбд, экологический вред при функционировании транспортного средства будет минимальный, то есть машина будет наносить минимальный вред окружающей среде.

Однако при появлении неисправности в одном из элементов системы автомобилист может столкнуться с серьезными проблемами, которые ударят по его бюджету, поскольку такая поломка будет дорого стоить.

Причины и симптомы поломок

Вышедший из строя лямбда-зонд

Если универсальный диагностический датчик концентрации кислорода выходит из строя, то причины могут быть следующие:

  1. Произошел разрыв проводки в месте подключения.
  2. Произошло замыкание цепи.
  3. В результате использования некачественного топлива, обогащенного различными октаноповышающими присадками, произошло загрязнение устройства.
  4. Если система зажигания работает некорректно, то датчик может сломаться из-за термических перегрузок.
  5. Регулярная эксплуатация транспортного средства по сельской местности или бездорожью может привести к появлению механических повреждений в работе устройства.
  6. Кроме того, способствовать выходу из строя датчика может неудовлетворительное состояние маслосъемных колец.
  7. Если в цилиндры и впускные трубопроводы попадает охлаждающая жидкость, лямбда-зонд также скоро выйдет из строя.
  8. Постоянно обогащенная горючая смесь также приведет к поломке элемента.

Если содержание монооксида углерода повышается до 3-7% вместо положенных 0.1-0.3%, то это может свидетельствовать о выходе из строя зонда. Чтобы избавиться от проблемы, необходимо будет только менять элемент, поскольку запаса хода может быть не достаточно. Если транспортное средство оснащено двумя зондами, то при поломке второго устройства наладить оптимальную работу мотора будет невозможно (автор видео — Александр Сабегатулин).

Что касается основных симптомов, по которым можно будет узнать о поломке регулятора:

  • во время движения на автомобиле начинают проявляться рывки;
  • вполне ощутимый увеличенный расход бензина;
  • катализатор начинает работать некорректно;
  • обороты двигателя начинают плавать;
  • в выхлопных газах начинает увеличиваться концентрация токсинов.

Как почистить?

Диагностика

Перед тем, как отключить и почистить универсальное устройство, следует правильно произвести диагностику, иначе чистка может быть нецелесообразной. Чтобы наиболее эффективным образом произвести проверку остаточного кислорода, датчик должен быть разогрет минимум до трехсот градусов. В этом случает циркониевый электролит сможет быть проводимым, а благодаря разнице кислорода и атмосферного кислорода на устройстве появляется выходное напряжение. Соответственно, напряжение можно будет проверить только при включенном и прогретом моторе. При несоответствии уровня напряжения следует осуществить замену устройства.

Измерение напряжения производится с помощью осциллографа, так как благодаря этому прибору можно получить наиболее точный результат. После замера напряжения необходимо проверить уровень сопротивления нагревателя устройства, при этом штекер необходимо заранее отключить. Уровень сопротивления должен составлять от 2 до 14 Ом, в этом случае все зависит от производителя.

Перед тем, как поставить диагноз, также следует измерить уровень напряжения, которое подводит к нагревателю лямбда-зонда. Напряжение должно быть не меньше 10.5 вольт, при этом зажигание должно быть включено, а разъем датчика — подключен. В том случае, если напряжение будет более низким, следует также проверить места соединения разъемов, проводов, а также само напряжение АКБ.

Очистка

Определенных технологий по ремонту таких устройств нет, поскольку при выходе из строя регулятор нужно менять на новый. Но перед тем, как поменять универсальный датчик, можно попробовать его почистить. Разумеется, отключение разъемов и чистка будут актуальны только в том случае, если под защитным колпачком лямбда-зонда образовались отложения. Как показывается практика, если отключить разъем и произвести чистку датчика, то в большинстве случаев это помогает избавиться от проблемы (автор видео — Авто новости).

Чистка чувствительного элемента производится с применением ортофосфорной кислоты. Если вы поместите этот элемент в кислоту на 10-20 минут, то это позволит уничтожить все отложения, при этом не воздействуя негативным образом на электроды. Наиболее эффективным вариантом будет отсоединение разъема и чистка элемента после демонтажа защитного колпака, перед этим колпачок нужно снять на токарном станке. Для снятия регулятора можно использовать съемник кислородного датчика, а после очистки его также можно будет промыть.

Когда устройство промыто, его необходимо обработать водой и высушить. В том случае, если прочистка не помогла, то датчик придется менять. При замене важно проследить, чтобы разъемы на регуляторах были идентичные. Если же вы не обращаете внимания на показания, которые предоставляет датчик, ведь устройство может работать некорректно, то можно использовать обманку. Обманка предназначена для монтажа вместо катализатора, благодаря которой можно будет избежать появления ошибок.

Обманка может быть выполнена из бронзы, но размер обманки должен соответствовать размерам катализатора. В обманке необходимо высверлить небольшое отверстие — через него выхлопные газы будут попадать в обманку. В результате концентрация вредных элементов в газах будет снижена, однако при этом блок управления не будет тревожить водителя новыми ошибками, принимая соответствующий сигнал за нормальную работу катализатора.

Видео «Правильная очистка лямбда-зонда»

О том, как правильно произвести прочистку датчика в домашних условиях, узнайте из видео ниже (автор видео — Своими руками).

 Загрузка ...

Лямбда-зонд. Как он работает и из чего состоит?

С каждым годом вводятся все более жесткие ограничения на количество небезопасных выбросов из автомобилей. Основным параметром контроля принято считать значение СО в выхлопе работающего двигателя. Для уменьшения значения этого параметра в выхлопную систему начали устанавливать каталитический нейтрализатор (сокращенно – катализатор). При этом становится необходимым измерять параметры работы двигателя и нейтрализатора. Для измерения применяется лямбда-зонд. На современных моделях их устанавливают в двух местах: один датчик сразу после соединения выхлопных труб в одну и второй – после катализатора.

Устройство и принцип измерений датчика

Лямбда-зонд состоит из корпуса с отверстиями для движения выхлопных газов, отверстия для доступа наружного воздуха и гальванического элемента с керамическим покрытием. С одной стороны элемента всегда находятся только выхлопные газы, с другой – только атмосферный воздух. Датчик используется для измерения наличия кислорода в выхлопе. При определенном соотношении кислорода в выхлопе и наружном воздухе гальванический элемент начинает вырабатывать ток.

Работает лямбда-зонд только при нагреве до 300-400 градусов, поэтому при пуске холодного двигателя и некоторое время после запуска показания датчика не учитываются. В некоторых двигателях могут быть установлены датчики с принудительным подогревом.

Как лямбда-зонд регулирует режим работы двигателя?

Датчик подает сигналы о наличии несгоревшего кислорода в выхлопе. Фактическое значение не измеряется. Технология позволяет лишь судить о наличии или отсутствии некоторого количества несгоревшего кислорода. Название датчика получилось как раз из названия символа «лямбда», обозначающего в уравнении коэффициент переизбытка кислорода в смеси топлива и воздуха. Идеальным принято считать значение 14,7 частей воздуха к части топлива. При этом оно достижимо лишь в моменте, и не может удерживаться постоянно. График работы датчика похож на синусоиду: при уменьшении количества кислорода в выхлопе дается команда на уменьшение впрыска топлива и, наоборот, при слишком бедной смеси (кислород не полностью сгорает) подача топлива увеличивается.

Работа двигателя зависит от огромного количества параметров и показания лямбда-зонда могут быть не основными факторами влияния. И если даже двигатель работает на постоянных оборотах, а автомобиль стоит на месте, ЭБУ непрерывно регулирует количество впрыскиваемого топлива. На современных моделях, в зависимости от показаний лямбда-зонда, меняется, также, момент включения форсунок с подачей топливно-воздушной смеси для более полного ее сгорания в цилиндрах.

Для чего устанавливают 2 датчика?

На первых версиях двигателей с лямбда-зондами он устанавливался в выхлопной трубе и показания сравнивались с датчиками расхода воздуха и зажигания. В современных моделях устанавливается 2 датчика: один сразу после совмещения всех выхлопных труб в одну, второй – после каталитического нейтрализатора, где происходит «дожигание» несгоревшего в цилиндрах кислорода и СО. Это позволяет контролировать работу катализатора и точнее регулировать работу двигателя.

Что делать, если датчик сломался?

Никто не застрахован от поломок. Датчики также могут сломаться. Либо один из них, либо оба сразу. В среднем лямбда-зонды служат от 40 до 80 тысяч километров. Использовать повторно или отремонтировать их не получится, можно только заменить новыми. Экономить на них и покупать аналоги неизвестного производителя тоже не рекомендуется – от точности показаний зависит плавная и надежная работа двигателя. Если вы разбираетесь в устройстве двигателя и расположении его деталей, располагаете схемой установки датчиков и точно уверены в его неисправности, можете заменить его самостоятельно.

Но лучше обратиться в специализированный сервис. Причиной некорректной работы датчика могут стать один или сразу несколько факторов: обрыв проводки, окисление контактов в колодке, трещины в выхлопной трубе от двигателя до места установки датчика, нарушение в герметичности отверстия, куда вкручен лямбда-зонд. В СЦ мастера проверят и сами показания датчика при подключении диагностического комплекса к ЭБУ двигателя. Также проверят показания вновь установленного элемента.

Можно ли ездить на автомобиле с неисправным датчиком? Иногда пара заправок некачественным топливом могут вывести лямбда-зонд из строя. ЭБУ в таком случае переводит двигатель в аварийный режим работы с усредненными настройками. Вероятнее всего при этом повысится расход топлива, увеличится время разгона, уменьшится мощность двигателя. Все рассчитано на то, что владелец машины сможет без проблем добраться до сервиса, однако, затягивать этот процесс не стоит.

Понравилась статья? Сохраните себе!

Кислородные датчики

Часто задаваемые вопросы о кислородных датчиках.

Купить кислородный датчик можно в нашем интернет-магазине

Какие функции выполняет кислородный датчик?
Датчик кислорода определяет содержание кислорода в выхлопных газах и передаёт эту информацию блоку управления двигателем (компьютеру), который, в свою очередь, регулирует состав топливо/воздушной смеси. Кислородные датчики также называют лямбда-датчиком.  Лямбдой называют отношение реального количества воздуха к необходимому количеству воздуха. Если лямбда равна единице то состав топливо/воздушной смеси оптимален и составляет 1/14,7, если лямбда больше единицы – смесь бедная (много кислорода, мало топлива), если меньше единицы – смесь богатая (мало кислорода, много топлива).   Слишком большое количество кислорода в выхлопных газах говорит о бедности смеси (малом содержании топлива), что приводит к снижению мощности двигателя и пропускам в зажигании (двигатель “троит”). Слишком малое количество кислорода, свидетельствует о переобогащенной смеси (большом количестве топлива), что приводит к повышенному расходу топлива и повышению токсичности выхлопных газов.

Почему ломается кислородный датчик?
Воздействие высокой температуры, давления, вибрации и различных химических соединений на кислородный датчик приводят к постепенному выходу его из строя. После его поломки наблюдается повышенный расход топлива, снижение мощности двигателя, повышение токсичности выхлопных газов. Именно поэтому проверка работоспособности и при необходимости замена кислородного датчика является важным элементом технического обслуживании автомобиля.

Где расположен кислородный датчик?
Кислородный датчик определяет количество кислорода в выхлопных газах и располагается в выхлопной трубе. Практически все автомобили с бензиновым двигателем, выпущенные после 1986 года имеют как минимум один кислородный датчик. Большинство современных автомобилей имеют как минимум два кислородных датчика, один из которых расположен, как правило, после катализатора. Сигнал с посткаталитического (нижнего) кислородного датчика позволяет оценивать качество работы катализатора. Точное расположение кислородного датчика на конкретном автомобиле указывается в техническом руководстве к данному автомобилю.

Почему следует заменить неисправный кислородный датчик?
Замена неисправного кислородного датчика на новый датчик позволяет экономить топливо, улучшить динамику автомобиля, уменьшить токсичность выхлопных газов, является профилактикой преждевременного выхода из строя дорогостоящего катализатора.

Когда кислородный датчик нужно заменить?
Существуют рекомендованные интервалы замены кислородных датчиков, однако межсменные интервалы являются не единственными  критериями замены датчиков кислорода. Если имеются признаки повышенного расхода топлива, ухудшение динамики или экологических характеристик работы двигателя необходимо проверит работоспособность кислородного датчика. Следует учитывать, что кислородный датчик изнашивается постепенно, зачастую незаметно для хозяина автомобиля. Кислородные датчики с одним или двумя проводами при эксплуатации автомобиля в Европе или США требуют замены при пробеге в 50000-80000 км. 3- и 4-проводные датчики требуют замены после 100000 км пробега.

Виды кислородных датчиков.
Существует несколько классификаций автомобильных кислородных датчиков:
1. По количеству проводов: 1-,2-,3-,4-,5-,6-контактные датчики.
2. По дизайну сенсорного элемента: “пальчиковые” и пластинчатые
3. По способу крепления в выхлопную трубу: резьбовые и фланцевые.
4. По ширине измерений лямбды: узкополосные (детектируют лямбду при величине >1) и широкополосные (детектируют лямбду от 0,7 до 1.6).

Принцип работы кислородного датчика.
Принцип работы кислородного датчика – электрохимический. Большинство кислородных датчиков изготавливаются на основе оксида циркония ZnO2 (окислитель) и платины (катализатор химической реакции окислении/восстановления). При работе двигателя выделяются раскалённые выхлопные газы, имеющие сложный химический состав. Основными составляющими их являются азот N2, углекислый газ CO2, кислород O2 и вода h3O. Однако в выхлопных газах содержаться и недоокисленные продукты горения топлива - CO  и CH. Именно с недоокисленными продуктами вступает в реакцию окисления/восстановления оксид циркония кислородного датчика. Непременными условиями протекания этих химических реакций является высокая температура (360 градусов Цельсия) и присутствие катализатора (платина). При восстановлении двуокиси циркония ZnO2 в окись циркония ZnO возникает электрический ток, который детектируется на контактах кислородного датчика. Так как окись циркония ZnO, является недоокисленным продуктом, она постоянно стремится окислится в двуокись циркония ZnO2, поэтому при работе двигателя на поверхности кислородного датчика происходит постоянное чередования процессов окисления и восстановления, что детектируется как волнообразное изменение напряжения на контактах кислородного датчика. Напряжение генерируемое кислородным датчиком колеблется на уровне от 100 mV (бедная смесь) до 900 mV (богатая смесь). При оптимальном соотношении топливо/воздушной смеси датчик генерирует напряжение порядка 465 mV.

Количество проводов, которые имеет кислородный датчик, может колебаться от одного до пяти и даже шести. Этот внешний признак отражает особенности внутреннего устройства кислородного датчика.
Одноконтактные датчики – имеют один сигнальный провод, по которому передаются генерируемые датчиком электрические импульсы.
Двухконтактные датчики – имеют один сигнальный провод и один провод “на массу” (дублирует заземление через корпус датчика). Заземляющий провод позволяет более точно оценивать показания сигнального провода блоком управления двигателем.
Трёхконтактные датчики – имеют один сигнальный провод, один провод “на массу” и один провод на нагревательный элемент. Эти датчики характеризуются следующими достоинствами:
1.  Короткое время достижения датчиком рабочей температуры (более 350 градусов) вследствие чего снижается количество вредных выбросов при работе холодного двигателя;
2. увеличивается срок службы датчика, так как у нагреваемых датчиков изменение температуры происходит, более плавно, чем у датчиков без нагревательного элемента;
3. датчики, снабжённые нагревательным элементом, имеют менее строгие требования к месторасположению в выхлопной системе, что упрощает их техобслуживание. 
Мощность нагревательного элемента в кислородном датчике составляет либо 12Вт, либо 18Вт. Следует учитывать, что установка датчика с неправильно подобранной мощностью нагревательного элемента может привести к перегреву датчика и быстрому выходу его из строя.
Четырёхконтактные датчики – обязательно имеют один сигнальный провод,  один питающий на нагревательный элемент и один заземляющий провод. Функция последнего провода может быть различной и зависит от особенностей устройства системы управления конкретным двигателем. Четвёртый провод может быть либо ещё одним заземляющим (в случаях, когда заземление через корпус датчика не предусмотрено), либо питающим проводом для второго нагревательного элемента. Следует учитывать, что при ошибочной установки датчика с заземлением на корпус вместо датчика без заземления на корпус или наоборот может привести к тому, что блок управления двигателем не распознает сигналы, поступающие с кислородного датчика.

версий функции Lambda - AWS Lambda

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

Версия функции включает следующую информацию:

  • Код функции и все связанные зависимости.

  • Среда выполнения лямбда-выражения, которая вызывает функцию.

  • Все настройки функции, включая переменные среды.

  • Уникальное имя ресурса Amazon (ARN) для идентификации конкретной версии функции.

Вы можете изменить код функции и настройки только в неопубликованной версии функция.Когда вы публикуете версия, код и большинство настроек заблокированы для обеспечения единообразия для пользователей этой версии. Дополнительные сведения о настройке параметров функций см. В разделе Настройка функций в консоли.

Для создания новой версии функции

  1. Откройте страницу функций на консоли Lambda.

  2. Выберите имя функции, которую вы хотите опубликовать.

  3. На странице конфигурации функции выберите Действия , Опубликовать новый версия .

  4. (Необязательно) Введите описание версии.

  5. Выберите Опубликовать .

После публикации первой версии функции в консоли Lambda отображается раскрывающийся список. список доступных версии. Панель Designer отображает квалификатор версии в конце функции. имя.

Чтобы просмотреть текущие версии функции, на странице конфигурации функции выберите Квалификаторы , а затем выберите вкладку Версии , чтобы просмотреть список версий. для функции. Если вы не опубликовали новую версию функции, список отображает только $ ПОСЛЕДНЯЯ версия .

Управление версиями с помощью Lambda API

Чтобы опубликовать версию функции, используйте операцию API PublishVersion.

В следующем примере публикуется новая версия функции. Ответ возвращается информация о конфигурации о новой версии, включая номер версии и функцию ARN с суффикс версии.

  $  aws лямбда-версия публикации - имя-функции моя-функция 
{
  "FunctionName": "моя-функция",
  "FunctionArn": "arn: aws: lambda: us-east-2: 123456789012: function: my-function: 1",
  «Версия»: «1»,
  "Роль": "arn: aws: iam :: 123456789012: роль / лямбда-роль",
  "Обработчик": "function. handler",
  «Время выполнения»: «nodejs12.x»,
  ...
}  

Использование версий

Вы можете ссылаться на свою лямбда-функцию, используя либо квалифицированный ARN, либо неквалифицированный ARN.

  • Квалифицированный ARN - функция ARN с суффиксом версии. В Следующий пример относится к версии 42 функции helloworld .

      arn: aws: lambda: aws-region: acct-id: function: helloworld: 42  
  • Unqualified ARN - функция ARN без суффикса версии.

      arn: aws: lambda: aws-region: acct-id: function: helloworld  

Вы можете использовать квалифицированный или неквалифицированный ARN во всех соответствующих операциях API.Тем не мение, вы не можете использовать неквалифицированный ARN для создания псевдонима.

Если вы решите не публиковать версии функции, вы можете вызвать функцию, используя либо квалифицированный, либо неквалифицированный ARN в вашем сопоставлении источников событий. Когда вы вызываете функция, использующая неквалифицированный ARN, Lambda неявно вызывает $ LATEST.

Lambda публикует новую версию функции, только если код никогда не публиковался или если код изменился из последней опубликованной версии. Если изменений нет, версия функции остается в последний опубликованный версия.

Квалифицированный ARN для каждой версии лямбда-функции уникален.После публикации версию, вы не можете изменить ARN или код функции.

Предоставление разрешений

Вы можете использовать политику на основе ресурсов или политику на основе идентификации, чтобы предоставить доступ к вашей функции. Объем разрешения зависит от того, применяете ли вы политику к функции или к одной версия функции.Для большего информацию об именах ресурсов функций в политиках см. в разделе Ресурсы и условия для действий Lambda.

Вы можете упростить управление источниками событий и AWS Identity and Access Management. (IAM) с использованием псевдонимов функций. За дополнительную информацию см. в разделе Псевдонимы лямбда-функций.

Вызов функции AWS Lambda из другой функции Lambda

В этой статье я собираюсь объяснить, как создать функцию AWS Lambda, а затем вызвать эту функцию из другой функции Lambda в том же регионе. Это полезный сценарий, в котором нам может потребоваться выполнить вторую лямбда-функцию на основе результата некоторой предыдущей логики. Другой сценарий может заключаться в многократном выполнении второй лямбда-функции с использованием разных параметров.

Для целей этой статьи мы рассмотрим типичное приложение розничного продавца, в котором мы можем покупать различные продукты на сайте розничного продавца с помощью лямбда-функции.

Рисунок 1 - Схема архитектуры

Если вы рассмотрите приведенную выше схему архитектуры, вы увидите, что у нас есть лямбда-функция AWS - ParentFunction , которая принимает на себя определенную роль от IAM ( Invoke Other Lambda Function ), а затем вызывает другую лямбда-функцию - ChildFunction. с полезной нагрузкой.После завершения выполнения ChildFunction он возвращает ответ, который затем передается в ParentFunction . ParentFunction получает ответ и соответствующим образом обрабатывает задание.

Как и в этом примере, предположим, что ParentFunction будет вызывать ChildFunction с полезными данными ProductName, Quantity и UnitPrice этого продукта. ChildFunction , в свою очередь, обработает эту полезную нагрузку, вычислит общую сумму продаж, сгенерирует идентификатор ссылки транзакции и вернет эту информацию в ParentFunction .

Создание первой функции AWS Lambda - ChildFunction

Давайте сначала продолжим и создадим ChildFunction, которая будет обрабатывать входные данные и возвращать результаты в ParentFunction.

Перейдите на https://console.aws.amazon.com/ и войдите со своими учетными данными. Как только вы окажетесь внутри консоли, начните поиск « Lambda » и щелкните первый результат, который появляется в раскрывающемся списке.

Рисунок 2 - Функция поиска AWS Lambda

Это приведет вас на домашнюю страницу лямбда-функции, где вы можете создать новую лямбда-функцию, нажав кнопку « Create Function ».

Рисунок 3 - Создание лямбда-функции AWS

Пусть имя этой функции будет - «ChildFunction» и выберите Python 3. 8 в качестве среды выполнения.

Рисунок 4 - Название функции

Выберите вариант Создать новую роль с базовыми разрешениями лямбда и нажмите Создать функцию .

Рисунок 5 - Выбор роли

Будет создана новая лямбда-функция, в которой вы сможете написать свой код и протестировать его.

Рисунок 6 - Созданная лямбда-функция AWS

Давайте теперь перейдем к Visual Studio Code и начнем писать наш код для ChildFunction следующим образом. Это очень простое приложение, которое будет выполнять следующие шаги:

  1. Чтение данных из ParentFunction
  2. Создайте идентификатор ссылки на транзакцию
  3. Рассчитайте бизнес-информацию
  4. Вернуть результат в родительскую функцию

Рисунок 7 - Код дочерней функции

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

27

28

29

30

0003

0003

import json

import uuid

def lambda_handler (event, context):

# 1 Прочтите входные параметры

productName = event ['ProductName']

amount = event ['Quantity']

unitPrice = event ['UnitPrice']

# 2 Создание идентификатора транзакции заказа

transactionId = str (uuid. uuid1 ())

# 3 Внедрить Business Logic

сумма = количество * unitPrice

# 4 Форматировать и вернуть результат

return {

'TransactionID': transactionId,

'ProductName': productName ,

«Сумма»: сумма

}

################################## ##########################################

# Нет необходимости включать следующий фрагмент в лямбда-функция

# Используется только для локальной проверки функции

event = {

«ProductName»: «iPhone SE»,

«Quantity»: 2,

«UnitPrice»: 499

}

response = lambda_handler (событие, '')

print (ответ)

################################# ####################################

После того, как код написан и протестирован на локальном компьютере, вы можете скопировать и вставить сценарий в лямбда-функцию, чтобы протестировать его в AWS.

Рисунок 8 - Копирование кода в лямбда-функцию

Чтобы протестировать ChildFunction, вам необходимо создать Test Event, в котором вы можете передать полезную информацию, которую мы будем использовать для вызова из ParentFunction. Для настройки тестовых событий нажмите Test Event, и выберите Configure .

Рисунок 9 - Настройка тестового события

Дайте тестовое событие имя и укажите здесь полезную информацию, чтобы протестировать его.

Рисунок 10 - Настройка тестового события

Нажмите Test , чтобы выполнить ChildFunction с информацией о полезной нагрузке.

Рисунок 11 - Тестирование функции

Если выполнение прошло успешно, вы получите успешный возврат с выполненными ниже расчетами. Как видно на рисунке ниже, функция возвращает следующие элементы.

  1. номер транзакции
  2. наименование товара
  3. Количество

Эта информация также будет видна ParentFunction, когда она вызовет ChildFunction.

Рисунок 12 - Выполнение дочерней функции

Кроме того, скопируйте ARN дочерней функции, которая позже может быть использована для применения политик и ролей.

Рисунок 13 - Копирование ARN

Настройка политики для родительской функции

Чтобы разрешить ParentFunction вызывать ChildFunction, нам необходимо предоставить ParentFunction определенные права для вызова другой лямбда-функции.Это можно сделать, добавив определенные политики к роли, а затем назначив эту роль лямбда-функции.

Перейдите к модулю IAM на портале AWS и выберите Политики . Щелкните Create Policy , чтобы создать новую.

Рисунок 14 - Создание политики

На странице «Создание политики» выберите вкладку JSON и добавьте к ней следующую сводку политики, как показано ниже. Не забудьте обновить URL-адрес ресурса, который вы скопировали на предыдущем шаге.Дайте политике подходящее имя и создайте ее. Я собираюсь назвать эту политику как - « InvokeOtherLambdaPolicy ».

Рисунок 15 - Добавление политики JSON

Перейдите к Roles и нажмите Create role .

Рисунок 16 - Создание роли

Выберите «Лямбда» в качестве варианта использования и нажмите «Далее», чтобы добавить необходимые разрешения.

Рисунок 17 - Выбор варианта использования

Добавьте к этой роли следующие две политики и создайте роль.

  1. AWSLambdaBasicExecutionRole
  2. InvokeOtherLambdaPolicy

Рисунок 18 - Добавление базовой роли выполнения AWS Lambda

Рисунок 19 - Добавление вызова другой лямбда-политики

Нажмите «Далее», продолжайте и создайте роль.Дайте этой роли подходящее имя, например, « InvokeOtherLambdaRole ».

Создание функции AWS Lambda - ParentFunction

Перейдите на страницу Lambda Function и нажмите Create New Lambda function. Я вызываю эту лямбда-функцию - « ParentFunction ». Выберите среду выполнения как Python 3.8 и назначьте роль InvokeOtherLambdaRole, которую мы только что создали на предыдущем шаге.

Рисунок 20 - Создание родительской функции

Давайте теперь снова перейдем к Visual Studio Code, чтобы написать код, а затем скопировать и вставить его обратно в редактор лямбда.Поскольку мы собираемся использовать ресурс AWS в этой функции, нам нужно использовать библиотеку Python Boto3 для использования ресурсов AWS. Эта библиотека может использоваться для взаимодействия с другими ресурсами AWS по мере необходимости.

Рисунок 21 - Код для родительской функции

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

26

import json

import boto3

# Определите клиента для взаимодействия с AWS Lambda

client = boto3. client ('lambda')

def lambda_handler (event, context):

# Определите входные параметры, которые будут переданы

# дочерней функции

inputParams = {

"ProductName": «iPhone SE»,

«Количество»: 2,

«UnitPrice»: 499

}

response = client.invoke (

FunctionName = 'arn: aws: lambda: eu-west-1: 8

245818: функция: ChildFunction ',

InvocationType =' RequestResponse ',

Payload = json.дампы (inputParams)

)

responseFromChild = json.load (response ['Payload'])

print ('\ n')

print (responseFromChild)

Как вы можете видеть в приведенном выше коде, мы создали клиент Boto для взаимодействия с лямбда-функцией. Кроме того, мы создали полезную нагрузку, которая может быть передана в ChildFunction при ее вызове. И как только ChildFunction будет выполнена, она вернет ответ, который будет сохранен в переменной response.

Наконец, мы можем проанализировать информацию о полезной нагрузке из ответа и использовать ее в соответствии с нашими потребностями. В этом случае мы просто напечатаем его на экране. Скопируйте код из VS Code в редактор лямбда.

Рисунок 22 - Родительская функция

Создайте образец тестового события для этой функции, поскольку мы не собираемся передавать здесь какие-либо полезные данные для этой родительской функции. Сохраните событие и нажмите Test .

Рисунок 23 - Настройка тестового события

После выполнения ParentFunction она передаст информацию о полезной нагрузке в ChildFunction, где будет вычислен результат, а затем окончательный ответ будет отправлен обратно из ChildFunction в ParentFunction. Вы можете просмотреть журналы выполнения и подтвердить это следующим образом.

Рисунок 24 - Выполнение родительской функции

Заключение

В этой статье я объяснил, как мы можем вызвать или выполнить функцию AWS Lambda из другой лямбда-функции в том же регионе. Используя функцию AWS Lambda, вы можете легко писать бессерверные приложения, не беспокоясь о работающей за ними инфраструктуре. Часто возникает необходимость в вызове различных функций AWS Lambda из другой лямбды из-за обработки сложной бизнес-логики или чего-то подобного.

Авик - опытный инженер по данным и аналитике, в настоящее время работает в Дублине, Ирландия. Его основные технические интересы включают SQL Server, SSIS / ETL, SSAS, Python, инструменты больших данных, такие как Apache Spark, Kafka, и облачные технологии, такие как AWS / Amazon и Azure.

Он является плодовитым автором, опубликовавшим более 100 статей в различных технических блогах, включая его собственный блог, и частый участник различных технических форумов.

В свободное время увлекается любительской фотографией, в основном уличной фотографией и натюрмортами. Некоторые взгляды на его работы можно найти в Instagram. Вы также можете найти его в LinkedIn

Просмотреть все сообщения Aveek Das

Последние сообщения Aveek Das (посмотреть все)

Как использовать if, else и elif в лямбда-функциях - thispointer. com

В этой статье мы обсудим, как использовать if, else if и else в лямбда-функциях в Python. Также объясню, как использовать условную лямбда-функцию с filter () в python.

Использование if else в лямбда-функции

Использование if else в лямбда-функции немного сложно, синтаксис выглядит следующим образом:

 лямбда <аргументы>: <возвращаемое значение, если условие истинно> if <условие> else <возвращаемое значение, если условие ложно> 

Например, давайте создадим лямбда-функцию, чтобы проверить, находится ли заданное значение от 10 до 20 i.е.
 лямбда x: Истина, если (x> 10 и x <20) иначе Ложь 

Здесь мы используем if else в лямбда-функции, если заданное значение находится в диапазоне от 10 до 20, тогда оно вернет True , иначе оно вернет False . Теперь давайте воспользуемся этой функцией для проверки некоторых значений, например, лямбда-функция
 #, чтобы проверить, находится ли заданное значение от 10 до 20. 
test = lambda x: True if (x> 10 and x <20) else False

# Проверяем, находятся ли заданные числа в диапазоне, используя лямбда-функцию
печать (тест (12))
печать (тест (3))
печать (тест (24))
 

Вывод:
 True
Ложь
Ложь
 

Создание условной лямбда-функции без if else

Использование ключевых слов if и else упрощает понимание, но в лямбда-выражении мы можем избежать использования ключевых слов if и else и при этом добиться тех же результатов.Например, давайте изменим созданную выше лямбда-функцию, удалив ключевые слова if else, а также True False, т.е.

 лямбда x: x> 10 и x <20 

Эта лямбда-функция делает то же самое, что и выше, т.е. проверяет, находится ли заданное число от 10 до 20. Теперь давайте воспользуемся этой функцией, чтобы проверить некоторые значения, например,
 # Лямбда-функция, чтобы проверить, находится ли заданное значение от 10 до 20. 
check = лямбда x: x> 10 и x <20

# Проверяем, находятся ли заданные числа в диапазоне, используя лямбда-функцию
распечатать (проверить (12))
распечатать (проверить (3))
распечатать (проверить (24))
 

Вывод:
 True
Ложь
Ложь
 

Использование функции filter () с условной лямбда-функцией (с if else)

Функция filter () принимает функцию callback () и список элементов.Он выполняет итерацию по всем элементам в списке и вызывает данную функцию callback ()
для каждого элемента. Если callback () возвращает True, он добавляет этот элемент в новый список. В конце он возвращает только новый список отфильтрованных элементов.

Предположим, у нас есть список чисел, например,

 # Список чисел
listofNum = [1,3,33,12,34,56,11,19,21,34,15]
 

Теперь давайте воспользуемся функцией filter () для фильтрации чисел от 10 до 20 только путем передачи ей условной лямбда-функции (с if else) i. е.
 # Фильтровать список чисел, сохраняя только числа от 10 до 20 в списке
listofNum = список (фильтр (лямбда x: x> 10 и x <20, listofNum))
print ('Отфильтрованный список:', listofNum)
 

Выход:
 Отфильтрованный список: [12, 11, 19, 15] 

он использует переданную лямбда-функцию для фильтрации элементов и в конце возвращает список элементов от 10 до 20,

Использование if, elif и else в лямбда-функции

До сих пор мы видели, как использовать if else в лямбда-функции, но могут быть случаи, когда нам нужно проверить несколько условий в лямбда-функции.Например, нам нужно использовать if, else if & else в лямбда-функции. Мы не можем напрямую использовать elseif в лямбда-функции. Но мы можем добиться того же эффекта, используя if else & скобки, т.е.

 лямбда :  if  ( if  else ) 

Посмотрим, как это сделать,

Создайте лямбда-функцию, которая принимает число и возвращает новое число на основе этой логики,

  • Если заданное значение меньше 10, верните его, умножив его на 2
  • иначе, если оно находится в диапазоне от 10 до 20, верните его, умножив его на 3
  • иначе возвращает то же неизмененное значение
 # Лямбда-функция с if, elif & else i. е.
# Если заданное значение меньше 10, умножает его на 2
# иначе, если оно от 10 до 20, умножается на 3
# else возвращает неизмененное значение
преобразователь = лямбда x: x * 2, если x <10 else (x * 3, если x <20, иначе x)
 

Давайте использовать эту лямбда-функцию,
 print ('convert 5 to:', converter (5))
print ('преобразовать 13 в:', преобразователь (13))
print ('преобразовать 23 в:', преобразователь (23))
 

Выход:
 преобразовать 5 в: 10
преобразовать 13 в: 39
преобразовать 23 в: 23
 

Полный пример выглядит следующим образом:
 def main ():
    print ('*** Использование if else в лямбда-функции ***')
    # Лямбда-функция для проверки, находится ли заданное значение от 10 до 20.test = lambda x: True if (x> 10 and x <20) else False

    # Проверяем, находятся ли заданные числа в диапазоне, используя лямбда-функцию
    печать (тест (12))
    печать (тест (3))
    печать (тест (24))

    print ('*** Создание условной лямбда-функции без if else ***')

    # Лямбда-функция для проверки, находится ли заданное значение от 10 до 20. 
    check = лямбда x: x> 10 и x <20

    # Проверяем, находятся ли заданные числа в диапазоне, используя лямбда-функцию
    распечатать (проверить (12))
    распечатать (проверить (3))
    распечатать (проверить (24))

    print ('*** Использование функции filter () с условной лямбда-функцией (с if else) ***')

    # Список номеров
    listofNum = [1,3,33,12,34,56,11,19,21,34,15]
    print ('Исходный список:', listofNum)

    # Фильтровать список чисел, сохраняя только числа от 10 до 20 в списке
    listofNum = список (фильтр (лямбда x: x> 10 и x <20, listofNum))
    print ('Отфильтрованный список:', listofNum)

    print ('*** Использование if, elif & else в лямбда-функции ***')

    # Лямбда-функция с if, elif & else i.е.
    # Если заданное значение меньше 10, умножает его на 2
    # иначе, если оно от 10 до 20, умножается на 3
    # else возвращает неизмененное значение
    преобразователь = лямбда x: x * 2, если x <10 else (x * 3, если x <20, иначе x)

    print ('преобразовать 5 в:', преобразователь (5))
    print ('преобразовать 13 в:', преобразователь (13))
    print ('преобразовать 23 в:', преобразователь (23))

если __name__ == '__main__':
    главный()

 

Вывод:
 *** Использование if else в лямбда-функции ***
Правда
Ложь
Ложь
*** Создание условной лямбда-функции без if else ***
Правда
Ложь
Ложь
*** Использование функции filter () с условной лямбда-функцией (с if else) ***
Исходный список: [1, 3, 33, 12, 34, 56, 11, 19, 21, 34, 15]
Отфильтрованный список: [12, 11, 19, 15]
*** Использование if, elif и else в лямбда-функции ***
преобразовать 5 в: 10
преобразовать 13 в: 39
преобразовать 23 в: 23 
.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *