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