DO - Functions

HackTricks 지원

기본 정보

DigitalOcean Functions, 또는 "DO Functions"은 기반이 되는 인프라에 대해 걱정할 필요 없이 코드를 실행할 수 있는 서버리스 컴퓨팅 플랫폼입니다. DO Functions을 사용하면 API, HTTP 요청 (활성화된 경우) 또는 cron을 통해 트리거될 수 있는 "함수"로 코드를 작성하고 배포할 수 있습니다. 이러한 함수는 완전히 관리되는 환경에서 실행되므로 스케일링, 보안 또는 유지 관리에 대해 걱정할 필요가 없습니다.

DO에서 함수를 생성하려면 먼저 함수를 그룹화할 네임스페이스를 생성해야 합니다. 네임스페이스 내에서 함수를 생성할 수 있습니다.

트리거

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