- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Synthetic Monitoring을 사용하면 JavaScript 스크립트에서 변수를 생성하여 사용자 정의 인증을 정의하거나 파라미터를 인코딩할 수 있습니다.
이 가이드에서는 스크립트의 변수를 사용하여 HMAC 서명이 포함된 HTTP 테스트를 만드는 방법을 안내합니다.
참고: 표준 HMAC 인증은 없으며 자체 HMAC 인증은 약간 다를 수 있습니다(예: 다른 헤더 이름 사용).
Synthetic HTTP 테스트를 생성하고 Create a Local Variable을 클릭하여 다음 변수를 추가합니다.
MY_SECRET_KEY
BODY
DATETIME
dd.variable.set('DATETIME', new Date().toISOString())
을 사용하여 스크립트의 변수 내에서 생성하고 내보낼 수 있습니다.HTTP 테스트에 대한 URL과 요청 유형을 정의합니다. 그런 다음 Advanced Options > Request Body를 클릭하여 {{ BODY }}
변수를 요청 본문으로 추가합니다.
HTTP 요청에 대한 HMAC 서명을 생성하려면 *Variable From Script를 클릭합니다.
dd.variable.get("<variable_name>")
를 사용합니다.dd.variable.set("<variable_name>", <value>)
또는 dd.variable.setObfuscated("<variable_name>", <value>)
를 사용합니다.다음과 같은 헬퍼 함수에도 액세스할 수 있습니다.
std
라이브러리는 std.*
로 접근할 수 있습니다. 예를 들어 <std>/encoding/hex.ts
에 정의된 encodeHex
함수를 호출하려면 std.encoding.hex.encodeHex
를 사용합니다.참고*: 이러한 API 중 일부는 보안상의 이유로 비활성화되어 있습니다.
예시:
Variable from Script
const datetime = new Date().toISOString();
// UI에서 DATETIME을 값으로 사용하여 "날짜" HTTP 헤더를 설정합니다.
dd.variable.set("DATETIME", datetime);
const message = "Hello, World!";
// UI에서 BODY를 요청 본문으로 사용
dd.variable.set("BODY", message);
const secretKeyUtf8 = dd.variable.get("MY_SECRET_KEY");
const key = await crypto.subtle.importKey(
"raw",
new TextEncoder().encode(secretKeyUtf8),
{ name: "HMAC", hash: "SHA-256" },
false,
["sign"]
);
const rawSignature = await crypto.subtle.sign(
{ name: "HMAC" },
key,
new TextEncoder().encode(datetime + "." + message)
);
// UI에서 SIGNATURE를 값으로 사용하여 "인증" HTTP 헤더를 설정합니다.
dd.variable.set("SIGNATURE", std.encoding.hex.encodeHex(rawSignature));
// 대안
dd.variable.set("SIGNATURE_BASE64", std.encoding.base64.encode(rawSignature));
내보낸 SIGNATURE
변수를 사용하여 HTTP 요청 헤더를 만듭니다.
Request Options 탭에서 Name
이 Authentication
로, Value
가 {{ SIGNATURE }}
로 설정된 헤더를 추가합니다. 이어서 Name
이 Date
로, Value
이 {{ DATETIME }}
로 설정된 것을 추가합니다. Authorization
와 같은 다른 헤더를 정의할 수 있습니다.
나머지 HTTP 테스트를 구성한 후 Create를 클릭하여 저장합니다.
추가 유용한 문서, 링크 및 기사: