DO - Functions

Support HackTricks

Basic Information

DigitalOcean Functions, також відомі як "DO Functions," є платформою безсерверних обчислень, яка дозволяє вам виконувати код, не турбуючись про підлягаючу інфраструктуру. З DO Functions ви можете писати та розгортати свій код як "функції", які можуть бути викликані через API, HTTP запити (якщо увімкнено) або cron. Ці функції виконуються в повністю керованому середовищі, тому вам не потрібно турбуватися про масштабування, безпеку або обслуговування.

У DO, щоб створити функцію, спочатку потрібно створити простір імен, який буде групувати функції. Всередині простору імен ви можете створити функцію.

Triggers

Спосіб викликати функцію через REST API (завжди увімкнено, це метод, який використовує cli) - це виклик запиту з токеном аутентифікації на зразок:

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 отримує цей токен (щоб ви могли його відтворити), наступна команда показує повний мережевий слід:

doctl serverless connect --trace

Коли тригер HTTP увімкнено, веб-функцію можна викликати через ці HTTP методи GET, POST, PUT, PATCH, DELETE, HEAD та OPTIONS.

У функціях DO змінні середовища не можуть бути зашифровані (на момент написання цього матеріалу). Я не зміг знайти жодного способу прочитати їх з CLI, але з консолі це просто.

URL функцій виглядають так: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>

Перерахування

# Namespace
doctl serverless namespaces list

# Functions (need to connect to a namespace)
doctl serverless connect
doctl serverless functions list
doctl serverless functions invoke <func-name>
doctl serverless functions get <func-name>

# Logs of executions
doctl serverless activations list
doctl serverless activations get <activation-id> # Get all the info about execution
doctl serverless activations logs <activation-id> # get only the logs of execution
doctl serverless activations result <activation-id> # get only the response result of execution

# I couldn't find any way to get the env variables form the CLI

Не існує метаданих ендпоінту з пісочниці Functions.

Підтримайте HackTricks

Last updated