문서 메뉴

문서 홈Atlas App Services

HTTP 서비스 [사용 중단됨]

이 페이지의 내용

  • 개요
  • 구성 매개변수
  • 서비스 조치
  • 수신 Webhooks
  • 구성
  • 요청 페이로드
  • 웹훅 함수 예시

중요

타사 서비스 & 푸시 알림 사용 중단

App Services의 타사 서비스 및 푸시 알림은 함수에서 외부 종속성을 사용하는 HTTP 엔드포인트를 만들기 위해 더 이상 사용되지 않습니다.

웹훅은 동작에 대한 변경 없이 HTTPS 엔드포인트로 이름이 변경되었습니다. 기존 웹훅을 마이그레이션해야 합니다.

기존 서비스는 2024년 11월 1일까지 계속 운영됩니다.

타사 서비스 및 푸시 알림은 이제 더 이상 사용되지 않으므로 App Services UI에서 기본적으로 제거되었습니다. 기존 타사 서비스 또는 푸시 알림을 관리해야 하는 경우 다음을 수행하여 구성을 UI에 다시 추가할 수 있습니다.

  • 왼쪽 탐색의 Manage 섹션에서 App Settings를 클릭합니다.

  • Temporarily Re-Enable 3rd Party Services 옆의 토글 스위치를 활성화한 다음 변경 사항을 저장합니다.

Atlas App Services HTTP Service는 REST API를 제공하는 서비스 등 HTTP를 통해 사용할 수 있는 모든 서비스와 통신할 수 있는 일반 인터페이스입니다. 이는 App Services에 사용자 지정 서비스가 내장되어 있지 않은 서비스를 사용해야 할 때 유용합니다.

HTTP Service를 생성할 때 다음 매개변수에 대한 값을 제공해야 합니다.

매개변수
설명
Service Name
config.name
이 HTTP Service의 이름입니다. 이는 애플리케이션의 다른 모든 서비스 인터페이스와 구별되어야 합니다.

App Services의 HTTP 서비스는 함수 및 SDK에서 호출할 수 있는 다음 조치를 제공합니다. 각 작업은 표준 HTTP 요청 메서드에 매핑됩니다.

HTTP 서비스 작업 사용에 대한 지침은 서비스 작업 호출을 참조하세요.

참고

서비스 작업을 호출하려면 먼저 서비스 규칙 에서 서비스 작업을 활성화해야 합니다.

참고

HTTP Webhooks를 엔드포인트로 변환

HTTP Service 웹훅은 더 이상 사용되지 않으며 사용자 지정 HTTPS endpoints가 사용됩니다. 클릭 한 번으로 기존 웹훅을 엔드포인트로 자동으로 마이그레이션할 수 있습니다. 방법을 알아보려면 웹훅을 HTTPS 엔드포인트로 변환을 참조하세요.

구성 값
설명
Webhook Name
이름

필수입니다. 웹훅의 이름입니다.

참고

HTTP Service 인터페이스에서 수신되는 각 웹훅은 고유한 이름을 가져야 합니다.

Respond With Result
respond_result
필수입니다. true 인 경우 App Services는 웹훅을 호출한 클라이언트에 응답을 보냅니다. 응답 본문은 웹훅 함수의 반환 값이 됩니다.
Run Webhook As
run_as_user_id
run_as_user_id_script_source

선택 사항. 웹훅이 호출될 때 웹훅 함수를 실행하는 App Services 사용자 의 ID입니다.

HTTP Method
options.httpMethod

HTTP 메서드 수신 웹훅 요청이 사용해야 합니다. 모든 메서드를 허용하도록 웹훅을 구성하거나 특정 메서드를 지정할 수 있습니다. 다음 메서드가 지원됩니다:

  • GET

  • POST

  • PUT

  • PATCH

  • DELETE

  • HEAD

  • ANY

Request Validation
options.validationMethod

들어오는 요청에서 사용해야 하는 요청 유효성 검사 방법입니다. 다음과 같은 유효성 검사 유형이 지원됩니다:

Secret
options.secret
Request Validation 이 활성화된 경우 이는 유효성 검사 시크릿입니다.

App Services는 수신 웹훅 함수에 payload 문서를 첫 번째 인수로 자동으로 전달합니다. HTTP 서비스 수신 웹훅에서 payload 객체는 수신 HTTP 요청을 나타내며 다음과 같은 형식을 갖습니다.

{
"query": <query parameters>,
"headers": <request headers>,
"body": <request body (BSON)>
}
필드
설명
query

각 필드가 쿼리 매개변수 에 해당하는 문서 웹훅 URL에 외부 서비스가 포함되어 있는지 확인합니다.

예제

쿼리 매개변수 someParameter=42&anotherParameter=hello 를 사용하여 웹훅 URL로 전송된 요청에는 다음과 같은 query 문서가 있습니다.

"query": {
"someParameter": 42,
"anotherParameter": "hello"
}
headers

각 필드가 HTTP 헤더 에 해당하는 문서 웹훅 URL에 외부 서비스가 포함되어 있는지 확인합니다.

예제

Content-Type: application/json 헤더가 있는 웹훅 URL로 전송된 요청에는 다음과 같은 headers 문서가 있습니다.

"headers": {
"Content-Type": ["application/json"]
}
body

요청 본문에서 인코딩된 BSON.Binary 객체입니다. 바이너리 객체를 문자열로 직렬화한 다음 문자열을 EJSON으로 구문 분석하여 요청 본문에 액세스할 수 있습니다.

const body = EJSON.parse(payload.body.text())

다음 웹훅 함수는 수신 데이터를 MongoDB collection에 삽입하고 응답 bodyinsertedId 을 반환합니다.

exports = function(payload, response) {
const mongodb = context.services.get("mongodb-atlas");
const requestLogs = mongodb.db("test").collection("requestlogs");
requestLogs.insertOne({
body: EJSON.parse(payload.body.text()),
query: payload.query
}).then(result => {
response.setStatusCode(201);
response.setBody(result.insertedId);
})
};
← 서비스 규칙 구성 [사용 중단됨]