Корпорація Microsoft додала захищений тунель, розміщений у хмарі, до Visual Studio і VS Code, що спрощує тестування API, вебслужб і мобільних серверів. Про це повідомляє InfoWorld.
Однією з цілей Microsoft для останніх випусків Windows було покращити досвід розробників, щоб зробити її кращою платформою для розробки сучасних програм. Ця мета призвела до випуску підсистем Windows для Linux та Android, стійкого сховища Dev Drive на основі файлової системи ReFS, менеджера пакетів WinGet і панелі керування Dev Home.
Ці інструменти допомагають вирішити багато ключових проблем, з якими стикаються розробники, незалежно від того, яку операційну систему вони використовують. Разом вони підтримують кросплатформну розробку, допомагаючи захистити ваш код, керувати набором інструментів і відстежувати ресурси, які використовуються вашими програмами та інструментами.
Ще одна ключова сфера – це надання коду розробки для віддалених користувачів і пристроїв, особливо коли ви тестуєте мобільні та вебзастосунки. Це підводить нас до тунелів розробників Microsoft, які нещодавно стали доступними у Visual Studio 2022 і Visual Studio Code (через розширення Remote – Tunnels). Інтерфейс командного рядка тунелю розробника також доступний для Windows, macOS і Linux.
Тунелі Ingress і Dev
Інструменти Ingress, такі як тунелі для розробників, поєднують зворотні проксі-сервери з API та вебшлюзом, тунелюючи у ваш комп’ютер розробки із зовнішніх мереж, забезпечуючи при цьому лише той трафік, через який ви бажаєте проходити.
Доступ до локальних ресурсів дуже важливий, коли ви створюєте сучасні хмарні програми, працюєте з віддаленими RESTful API і надаєте власні API. Потрібен час, щоб змусити мережевих адміністраторів налаштувати проксі-сервери на вашому брандмауері – час, який заважає спеціальним тестам і демонстраціям.
Натомість ми можемо відобразити доступ до коду налагодження через хмарну службу, використовуючи її для надання загальнодоступної IP-адреси та, у деяких випадках, повного доменного імені. Зазвичай вони працюють через нестандартний порт, що зменшує ризик підключення зловмисника до служби, яка може мати помилки.
Ймовірно, найвідомішим інструментом цього типу є ngrok, який пропонує як безкоштовні, так і платні плани. Однак тунелі для розробників, нещодавно представлені як частина Visual Studio 2022 v17.6, слугують тій же меті.
Найважливішою перевагою тунелів розробників є те, що вони дозволяють вам працювати з реальними кінцевими точками та API, замість того, щоб створювати макети та використовувати синтетичні або зразкові дані.
Замість того, щоб витрачати час на створення та перевірку симуляцій, ви можете зосередитися на написанні коду. Такий підхід зменшує ризик того, що ваша програма буде розроблена навколо помилкового макету, а також полегшує тестування й налагодження коду.
Початок роботи з тунелями розробників
Є три способи налаштувати тунелі розробників: із Visual Studio 2022, із Visual Studio Code зі встановленим розширенням Remote – Tunnel та із власного інтерфейсу командного рядка тунелів розробників.
Налаштувати тунель розробників у Visual Studio 2022 або Visual Studio Code відносно просто. У Visual Studio ви знайдете інструменти керування тунелем розробника в меню «Вигляд» у розділі «Інші вікна». Виберіть «Тунелі розробників», щоб відкрити список доступних тунелів, і натисніть знак «плюс», щоб створити новий екземпляр.
Тунелі розробника пов’язані з обліковим записом, який використовувався для реєстрації Visual Studio. Тому це може бути ідентифікатор Entra (те, що раніше називалося Azure Active Directory) або обліковий запис користувача Microsoft (MSA). Останнє, швидше за все, для особи, яка використовує версію спільноти Visual Studio для особистої розробки або розробки з відкритим кодом.
Почніть із назви свого тунелю. Ви можете створити бібліотеку різних комбінацій імен тунелів, типів та елементів керування доступом, які можна міняти місцями за потреби. Тунелі можуть бути тимчасовими або постійними. При цьому тимчасові тунелі отримують нову URL-адресу кожного разу, коли ви запускаєте Visual Studio.
Приватні тунелі прив’язані до ідентифікатора користувача, який створив тунель, тоді як організаційні тунелі призначені лише для членів тієї ж групи Entra, що й користувач.
Доступ до тунелю контролюється за допомогою токенів. Доступ до них можна отримати, клацнувши правою кнопкою миші тунель у списку тунелів для розробників, який копіює їх у буфер обміну.
Якщо у вас є маркер і вам потрібно отримати доступ до служби, наприклад, якщо ви надсилаєте запит до служби RESTful або кінцевої точки gRPC, ви можете додати тимчасовий HTTP-заголовок X-Tunnel-Authorization до свого виклику, щоб авторизувати клієнта.
Використання тунелів розробників у Visual Studio або VS Code
Щоб запустити тунель із Visual Studio або VS Code, просто виберіть тунель у вікні запуску програми, а потім створіть і запустіть сеанс налагодження. Це відкриє вікно локального браузера, підключеного до кінцевої точки тунелю, розміщеної на сервері Microsoft.
Якщо ви використовуєте автентифікований тунель із вебзастосунком, вам буде запропоновано ввести облікові дані під час доступу до створеної URL-адреси. Ви можете скопіювати URL-адресу тунелю та за потреби поділитися нею із колегами.
Прокрутіть праворуч вікно Visual Studio Dev Tunnels, щоб керувати своїм тунелем, натиснувши на піктограму керування. Це показує поточне підключення для тунелю, докладно вказуючи програму, яка тунелюється, і використовуваний порт.
У цьому поданні натисніть «Перевірити», щоб запустити інспектор мережі, розміщений на Edge, як додатковий інструмент налагодження, щоб допомогти зрозуміти, як ваш код працює із браузером або будь-яким іншим клієнтом.
Використання тунелів CLI для розробників
Ви не обмежені використанням тунелів розробника із Visual Studio, оскільки ними також можна керувати за допомогою CLI. Його можна завантажити із Winget для Windows. Також він доступний для macOS і Linux.
Тунелі розробників на основі CLI можна навіть створювати за допомогою облікових записів GitHub (якщо ви встановлюєте окремі інструменти GitHub), а також ідентифікаторів Entra та MSA, що дозволяє використовувати код входу в GitHub як альтернативу параметра автентифікації на основі браузера за замовчуванням.
Увійшовши в систему на машині, на якій потрібно розмістити тунель, скористайтеся командою devtunnel host, щоб створити новий тунель. Ця команда дозволяє вибрати назву для тунелю, порти, які він пересилатиме, і чи дозволений анонімний доступ.
Після створення тунелю вам буде запропоновано URI тунелю, який можна скопіювати та використати в коді, який ви тестуєте, або стороннім розробником. Також можна відобразити порти, щоб програма, яка шукає API на порту 3000, могла отримати доступ до тунелю через цей порт. Це тому, що базова технологія, яку використовують тунелі розробників, базується на перенаправленні портів SSH, що забезпечує простий у використанні інтерфейс для часто складної функції.
CLI надає інструменти для керування вашими тунелями, включаючи їх перелік, відображення деталей конкретного тунелю і створення постійних тунелів, які можна використовувати як частину клієнтських тестів для мобільних пристроїв.
У CLI є більше опцій, аніж у Visual Studio. Наприклад, за допомогою CLI можна створювати тунелі з фіксованим терміном служби або позначати тунелі описами, які можна використовувати для пошуку конкретних тунелів. Інші команди додають порти та протоколи до тунелю, дозволяючи вказати HTTP або HTTPS.
Зауважте, що використання тунелю обмежено. Підписка Enterprise дає вам 10 тунелів на користувача з обмеженням пропускної здатності 5 ГБ. Інші обмеження контролюють кількість підтримуваних з’єднань і портів на тунель, а також швидкість запитів і передачі.
Це означає, що ви не повинні очікувати, що зможете використовувати тунелі розробників для стрес-тестування програми. Натомість вони призначені для тестування функцій та інтеграції, а також для швидкої перевірки того, як ваш код виглядає на клієнтських пристроях.
Наявність вхідного проксі-сервера, як-от тунелі розробників у (і поза) Visual Studio, має спростити створення ланцюжків інструментів розробки. Досі, якщо ви створювали й тестували, скажімо, програми Teams, вам потрібно було використовувати ngrok або подібний сторонній інструмент, щоб зв’язати вашу систему розробки із клієнтом Teams вашої організації. Тепер же це просто частина вашого наявного інструментарію. Хіба не приємно, коли життя стає простішим?
Раніше ми повідомляли, що Cisco запускає Motific hub для оптимізації розгортання генеративного ШІ.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!