# DO - Functions {{#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/` ### 列挙 ```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}}