# DO - Функції {{#include ../../../banners/hacktricks-training.md}} ## Основна інформація DigitalOcean Functions, також відомі як "DO Functions", є платформою безсерверних обчислень, яка дозволяє вам **виконувати код, не турбуючись про підлягаючу інфраструктуру**. З DO Functions ви можете писати та розгортати свій код як "функції", які можуть бути **активовані** через **API**, **HTTP запити** (якщо увімкнено) або **cron**. Ці функції виконуються в повністю керованому середовищі, тому вам **не потрібно турбуватися** про масштабування, безпеку або обслуговування. У DO, щоб створити функцію, спочатку потрібно **створити простір імен**, який буде **групувати функції**.\ Всередині простору імен ви можете потім створити функцію. ### Тригери Спосіб **активації функції через REST API** (завжди увімкнено, це метод, який використовує cli) полягає в активації запиту з **токеном автентифікації** на зразок: ```bash curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \ -H "Content-Type: application/json" \ -H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg=" ``` Щоб побачити, як інструмент **`doctl`** cli отримує цей токен (щоб ви могли його відтворити), **наступна команда показує повний мережевий слід:** ```bash doctl serverless connect --trace ``` **Коли HTTP тригер увімкнено**, веб-функцію можна викликати через ці **HTTP методи GET, POST, PUT, PATCH, DELETE, HEAD та OPTIONS**. > [!CAUTION] > У DO функціях **змінні середовища не можуть бути зашифровані** (на момент написання цього тексту).\ > Я не зміг знайти жодного способу прочитати їх з CLI, але з консолі це просто. **URL функцій** виглядають так: `https://.doserverless.co/api/v1/web//default/` ### Enumeration ```bash # Namespace doctl serverless namespaces list # Functions (need to connect to a namespace) doctl serverless connect doctl serverless functions list doctl serverless functions invoke doctl serverless functions get # Logs of executions doctl serverless activations list doctl serverless activations get # Get all the info about execution doctl serverless activations logs # get only the logs of execution doctl serverless activations result # get only the response result of execution # I couldn't find any way to get the env variables form the CLI ``` > [!CAUTION] > **Немає метаданих** з кінцевої точки в пісочниці Functions. {{#include ../../../banners/hacktricks-training.md}}