HTTP requests 통해 REST API 및 외부 서비스와 상호 작용하는 방법을 알아보세요.
요구 사항:
- 부채, 목표 API 포인트 포인트 URL
- 필요한 인증 자격 증명(API 키, 토큰 등)
- API 요청/응답 형식에 대한 이해
데이터를 가져오고 처리합니다.
REST API 엔드포인트에서 데이터를 가져옵니다. 헤더와 URL은 문자열화된 JSON이어야 합니다.
이 흐름이 하는 일은:
- HTTP GET 호출을 수행하여 API 엔드포인트에서 데이터를 가져옵니다.
- 선택기를 사용하여 상태 코드와 응답 데이터를 추출합니다.
- 뉴렐릭에 API 응답 상태를 기록합니다.
name: http_get_example
workflowInputs: apiUrl: type: String defaultValue: 'https://api.example.com/data'
steps: - name: fetchData type: action action: http.get version: 1 inputs: url: ${{ .workflowInputs.apiUrl }} headers: '{"Authorization": "Bearer ${{ :secrets:api_token }}"}' urlParams: '{"filter": "active", "limit": "10"}' selectors: - name: status expression: .statusCode - name: data expression: .responseBody | fromjson
- name: logResponse type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'API returned status: ${{ .steps.fetchData.outputs.status }}' attributes: responseData: ${{ .steps.fetchData.outputs.data }}주요 작업: http.get, newrelic.ingest.sendLogs
외부 시스템으로 데이터를 전송합니다.
웹훅, API 또는 공지 서비스로 데이터를 보냅니다. 헤더는 문자열화된 JSON 형식이어야 하고, 본문은 문자열이어야 합니다.
이 흐름이 하는 일은:
- HTTP POST 호출을 수행하여 API 엔드포인트로 데이터를 전송합니다.
- 선택자를 사용하여 HTTP 상태 및 응답을 추출합니다.
- 뉴렐릭에 대한 웹훅 응답 상태 기록
name: http_post_example
workflowInputs: webhookUrl: type: String alertMessage: type: String
steps: - name: sendNotification type: action action: http.post version: 1 inputs: url: ${{ .workflowInputs.webhookUrl }} headers: '{"Content-Type": "application/json"}' body: '{"event": "alert_triggered", "message": "${{ .workflowInputs.alertMessage }}", "severity": "high"}' selectors: - name: httpStatus expression: .statusCode - name: response expression: .responseBody
- name: logResult type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'Webhook returned status: ${{ .steps.sendNotification.outputs.httpStatus }}'일반적인 사용 사례:
- 트리거 구현, 연속 통합/연속 배포(CI/CD) webhooks를 통해 배포
- 지원 케이스 시스템으로 데이터 보내기(Jira, ServiceNow)
- 맞춤 공지 서비스에 게시
- 타사 API와 통합
주요 작업: http.post, newrelic.ingest.sendLogs