Упражнения с Microsoft Flow

Упражнения с Microsoft Flow

https://t.me/alexseconds

Пользователь, выполнив заранее известный набор действий, не увидел изменений в своем дашборде. Поверхностный разбор проблемы и опрос старожилов показал, что хитрый пайплайн был реализован путем подгрузки из неизвестного и неподконтрольного места CSV файла в документы на Microsoft Sharepoint, дальнейшему перемещению его оттуда в S3, ну а дальше в базу и презентацию в BI-инструменте. Опрос старожилов потребовался потому, что во-первых человека, настраивавшего процесс, уже нет в компании, а во-вторых часть этого пайплайна полностью отказывалась обнаруживаться в git-репозиториях. Исключая совсем невероятные варианты, консилиум пришел к выводу, что отгрузка файла на S3 осуществлялась загадочным Flow, являющимся частью сервиса Microsoft Power Automate.

Microsoft Flow in Power Automate


Тут возникла первая проблема. Этот самый Flow существовал в персональной области уволенного сотрудника. По загадочной причине, Microsoft мгновенно деактивирует Flow, если учетная запись владельца деактивирована.


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


Короче, гадай - не гадай, но надо поднять то, что упало. Flow сам по себе выглядит довольно понятным. Триггер можно легко повесить на появление нового файла в нужном месте. Но что дальше?


Какие-то готовые коннекторы к S3 в наличии имеются, однако, ни один из них не позволяет данные на ту сторону отправлять, работает все только на прием. Нагуглены были разнообразные 3rd party коннекторы, за которые надо платить. Но нам же надо здесь и сейчас.


AWS Transfer

Тут возникает следующая идея. Взять коннектор к SFTP, а в AWS уже есть работающий и готовый к приключениям AWS Transfer, который в этом может помочь. И вот уже создан новый юзер, роль, IAM policy и сгенерирован RSA ключ. Я мчусь обратно в Microsoft Flow, добавляю следующий шаг после триггера на новый файл. И получаю ошибку — Bad Gateway. И больше ничего. Повторно прочитана дока, сгенерированы ключи, создан Flow… Bad Gateway! Что, дорогой мой Microsoft, прикажешь с этим делать?


Завязка этой истории довольно скучна. Каким-то волшебным образом в голову приходит мысль переделать ключ из формата OPENSSH, который начинается со строки "-----BEGIN OPENSSH PRIVATE KEY-----", на тот, который начинается со строки "-----BEGIN RSA PRIVATE KEY-----". И что вы думаете? Эта балалайка начинает работать и отправлять файлы в S3 bucket! Вот как это называется? Сколько еще времени было бы потрачено на поиски способа заставить это работать, если бы не случайная шальная мысль? Ох, Microsoft…


P.S.: кстати, если кому-то пригодится, то конвертировать одно в другое можно следующей командой:

ssh-keygen -p -P "" -N "" -m pem -f openssh_key_file.

Report Page