Docs Menu
Docs Home
/ /
Atlas App Services
/ /

웹훅 요청 & 응답

중요

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

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

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

기존 서비스는,9월까지 30 계속2025 작동합니다.

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

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

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

수신 웹훅 은 서비스에 따라 요청의 유효성을 검사하고 Atlas App Services가 외부 서비스로 다시 전송하는 응답을 사용자 지정하는 여러 가지 방법을 제공합니다.

웹훅 요청이 신뢰할 수 있는 출처에서 오는지 확인하기 위해 일부 외부 서비스에서는 들어오는 요청에 몇 가지 규정된 방식 중 하나로 비밀 문자열을 통합하도록 요구합니다. HTTP 서비스 와 같은 다른 서비스에서는 선택적으로 요청 유효성 검사를 요구할 수 있습니다.

웹훅용 Request Validation 에는 페이로드 서명 확인쿼리 매개변수로서의 비밀, 이렇게 두 가지 유형이 있습니다.

요청 시 HTTP/1.1 이상이 필요합니다.

참고

보안을 극대화하려면 Python 시크릿 모듈과 같은 보안 패키지 사용하여 secret 문자열을 프로그래밍 방식으로 생성합니다. 시크릿을 게시하거나 버전 제어 시스템에 포함하지 않도록 합니다.

Verify Payload Signature 요청 유효성 검사 옵션을 사용하려면 수신 요청에 요청 본문에서 생성된 16진수 인코딩된 LMAC SHA-256 해시와 X-Hook-Signature 헤더의 secret 문자열이 포함되어야 합니다.

예시

다음 웹훅 요청 본문과 비밀을 고려하세요.

const body = { "message":"MESSAGE" }
const secret = 12345

다음 Realm 함수 은 이 bodysecret 에 대한 해시를 생성합니다.

// Generate an HMAC request signature
exports = function(secret, body) {
// secret = the secret validation string
// body = the webhook request body
return utils.crypto.hmac(EJSON.stringify(body), secret, "sha256", "hex");
}
// Returns: "828ee180512eaf8a6229eda7eea72323f68e9c0f0093b11a578b0544c5777862"

모든 요청에서 해시 값을 X-Hook-Signature HTTP 요청 헤더에 할당해야 합니다.

X-Hook-Signature:sha256=<hex-encoded-hash>

요청이 제대로 서명되었는지 테스트하기 위해 다음 curl 명령을 실행할 수 있습니다.

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Hook-Signature:sha256=828ee180512eaf8a6229eda7eea72323f68e9c0f0093b11a578b0544c5777862" \
-d '{"message":"MESSAGE"}' \
<webhook URL>

Require Secret as Query Param 요청 유효성 검사 옵션을 사용하려면 수신 요청에 URL 끝에 추가된 쿼리 매개변수 로 지정된 secret 문자열이 포함되어야 합니다.

예시

12345secret 값을 사용하도록 구성된 웹훅을 가정해 보겠습니다. 모든 요청은 시크릿을 쿼리 매개변수로 추가한 웹훅 URL로 이루어져야 합니다.

<webhook URL>?secret=12345

이 URL에 대한 요청이 제대로 확인되는지 테스트하기 위해 다음 curl 명령을 실행할 수 있습니다.

curl -H "Content-Type: application/json" \
-d '{ "message": "HELLO" }' \
-X POST '<webhook URL>?secret=12345'

App Services는 웹훅의 HTTP 응답을 나타내는 response 객체를 웹훅 함수의 두 번째 인수로 자동 전달합니다. 다음 표에는 response 객체를 수정하는 데 사용할 수 있는 메서드가 나열되어 있습니다.

메서드
arguments
설명

setStatusCode(code)

code integer

HTTP 응답 상태 코드를 설정합니다.

예시

response.setStatusCode(201);

setBody(body)

body string 또는 BSON.Binary

HTTP 응답 본문을 설정합니다.

body 이 문자열인 경우 반환되기 전에 BSON.Binary 로 인코딩됩니다.

예시

response.setBody(
"{'message': 'Hello, World!'}"
);

setHeader(name, value)

name string
value string

name으로 지정된 HTTP 응답 헤더value 인수에 전달된 값으로 설정합니다. 이렇게 하면 해당 헤더에 이미 할당되었을 수 있는 다른 모든 값이 재정의됩니다.

예시

response.setHeader(
"Content-Type",
"application/json"
);

addHeader(name, value)

name string
value string

name으로 지정된 HTTP 응답 헤더value 인수에 전달된 값으로 설정합니다. setHeader와 달리 이는 헤더에 이미 할당된 다른 값을 재정의하지 않습니다.

예시

response.addHeader(
"Cache-Control",
"max-age=600"
);
response.addHeader(
"Cache-Control",
"min-fresh=60"
)

돌아가기

서비스 작업 호출

이 페이지의 내용