KrakenD API Gateway - krakend.json 파일의 기본 구조
- 공유 링크 만들기
- 이메일
- 기타 앱
KrakenD의 설정 파일인 `krakend.json`은 KrakenD API Gateway의 동작을 정의하는 중요한 파일입니다.
이 파일의 구조와 주요 요소를 설명해 드릴게요.
### krakend.json 파일의 기본 구조
```json
{
"$schema": "https://www.krakend.io/schema/v2.7/krakend.json",
"version": 3,
"endpoints": [],
"extra_config": {}
}
```
- **$schema**: 선택 사항으로, IDE 통합을 통해 자동 완성 및 문서를 사용할 수 있게 합니다.
- **version**: 필수 항목으로, 설정 파일 형식의 버전을 나타냅니다. 현재 버전은 3입니다.
- **endpoints**: API 게이트웨이가 제공하는 엔드포인트와 관련된 백엔드 및 설정을 정의하는 배열입니다.
- **extra_config**: Lura 프로젝트의 핵심 기능이 아닌 서비스 구성 요소의 설정을 저장합니다².
### 엔드포인트 설정
엔드포인트는 게이트웨이가 사용자에게 제공하는 URL을 정의합니다. 각 엔드포인트는 최소 하나 이상의 백엔드를 선언해야 합니다.
```json
{
"endpoints": [
{
"endpoint": "/v1/foo-bar",
"backend": [
{
"url_pattern": "/foo",
"host": ["https://my.foo-api.com"]
},
{
"url_pattern": "/bar",
"host": ["https://my.bar-api.com"]
}
]
}
]
}
```
위의 예시는 `/v1/foo-bar` 엔드포인트를 선언하며, 두 개의 백엔드 `https://my.foo-api.com/foo`와 `https://my.bar-api.com/bar`의 응답을 병합하여 반환합니다².
### 추가 구성 (extra_config)
KrakenD는 매우 모듈화되어 있으며, Lura 프로젝트의 핵심 기능을 확장하는 여러 구성 요소와 함께 제공됩니다. `extra_config`는 이러한 구성 요소의 설정을 저장합니다.
```json
{
"extra_config": {
"component-1-namespace": {
"some": "config"
},
"component-2-namespace": {}
}
}
```
예를 들어, 확장 로깅 구성 요소는 `telemetry/logging` 네임스페이스를 사용합니다².
이렇게 `krakend.json` 파일을 작성하여 KrakenD API Gateway의 동작을 정의할 수 있습니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요! 😊
²: [Configuration Structure | KrakenD API Gateway](https://www.krakend.io/docs/configuration/structure/)
원본: Copilot과의 대화, 2024. 11. 2.
(1) Configuration Structure | KrakenD API Gateway. https://www.krakend.io/docs/configuration/structure/.
(2) Configuration Guide for KrakenD API Gateway. https://www.krakend.io/docs/configuration/.
(3) krakend-documentation/configuration/flexible-config.md at master - GitHub. https://github.com/krakend/krakend-documentation/blob/master/configuration/flexible-config.md.
(4) KrakenDesigner - KrakenD configuration editor. https://designer.krakend.io/.
(5) undefined. https://www.krakend.io/schema/v2.7/krakend.json.
(6) undefined. https://my.foo-api.com.
(7) undefined. https://my.bar-api.com.
(8) undefined. https://my.foo-api.com/foo.
(9) undefined. https://my.bar-api.com/bar.
(10) undefined. http://www.krakend.io/docs/.
(11) github.com. https://github.com/devopsfaith/krakend-documentation/tree/183b9da7c79bd4f894cf725fc073b0e8f18f16de/v1.3%2Fconfiguration%2Fstructure.md.
- 공유 링크 만들기
- 이메일
- 기타 앱
댓글
댓글 쓰기