Update Route from DC
This commit is contained in:
parent
87cf07dd93
commit
e209d932fe
1 changed files with 532 additions and 263 deletions
|
|
@ -521,72 +521,128 @@ curl http://127.0.0.1:9180/apisix/admin/ssls/1 \
|
|||
curl https://bma-hrms-id.bangkok.go.th -vvv
|
||||
```
|
||||
|
||||
### 3rd Party Service (bmahrms-service)
|
||||
### 3rd Party(bmahrms-service)
|
||||
|
||||
โปรแกรมกลุ่มนี้ที่พัฒนาโดย 3rd Party หรือ Frappet ไม่ได้มีฟังก์ชันงานเจาะจงสำหรับ HRMS ถูกใช้โดยโปรแกรมของ HRMS(เช่นฐานข้อมูล,เว็บเซิร์ฟเวอร์ ฯลฯ) จะแยกมาใส่โฟลเดอร์ bmahrms-service
|
||||
การติดตั้งให้นำ compose.yaml และ คอนฟิกมาใส่โฟลเดอร์ bmahrms-service ให้เรียบร้อยก่อนใช้งาน สร้างโฟลเดอร์แต่ละ servie ทำดังนี้
|
||||
โปรแกรมกลุ่มนี้ที่พัฒนาโดย 3rd Party หรือ Frappet ไม่ได้มีฟังก์ชันงานเจาะจงสำหรับ HRMS ถูกใช้โดยโปรแกรมของ HRMS(เช่นฐานข้อมูล,เว็บเซิร์ฟเวอร์ ฯลฯ) การตั้งค่าจะแยกมาใส่โฟลเดอร์ bmahrms-service
|
||||
การติดตั้งให้นำ compose.yaml และ คอนฟิกมาใส่โฟลเดอร์นี้ให้เรียบร้อยก่อนใช้งาน โปรแกรมมีรายการดังนี้ดังนี้
|
||||
|
||||
- **Keycloak (bmahrms-postgres bmahrms-id)** เซิร์ฟเวอร์สำหรับจัดการยูสเซอร์และการ Authentication ในระบบ
|
||||
- **MySQL (bmahrms-mysql)** เป็นฐานข้อมูลของระบบ
|
||||
- **MiniO (bmahrms-s3)** เป็น Object Storage แบบเดียวกับ AWS s3 ใช้สำหรับเก็บไฟล์ มีประสิทธิ์ภาพสูงสามารถรับโหลดหนัก มีความปลอดภัยกว่าเก็บด้วยระบบไฟล์ทั่วไป สามารถขยายเพิ่มได้ในอนาคต ถูกใช้ในหลายระบบที่ต้องการเก็บไฟล์
|
||||
- **Windmill** รันเวิร์กโฟลว์การทำงานอัตโนมัติจากสคริปต์ หลักๆใช้เพื่อรันตัวสำรองข้อมูล
|
||||
- **Portainer (bmahrms-portainer)** ระบบจัดการ container มี UI ใช้งานง่าย สามารถใช้แทนคำสั่ง docker ได้
|
||||
#### รายการโปรแกรม 3rd Party
|
||||
- **RabbitMQ (bmahrms-mq)** ระบบจัดคิวในการสื่อสารใน Microservice มีความน่าเชื่อถือสูง สามารถรับโหลดหนักๆในช่วงเวลาสั้นๆได้ โดยไม่ต้องเพิ่มทรัพยากรโดยไม่จำเป็น เช่นระบบการลงเวลา
|
||||
- **Frappet Report Server (bmahrms-report-server)** ใช้สำหรับสร้างรายงานจากเอกสารต้นแบบ ออกแบบเองได้ในรูปของ ไฟล์ docx และ xlsx เอกสารที่สร้างสามารถส่งออกเป็น docx, xlsx, pdf ได้
|
||||
- **Frappet EDM** ใช้สำหรับจัดการเอกสารที่ปลอดภัยรองรับโหลดจำนวนมากได้ จะมีระบบย่อยเบื้องหลังหลายตัว (bmahrms-edm,bmahrms-elasticsearch,bmahrms-kibana,bmahrms-mq)
|
||||
- **Keycloak (bmahrms-id)**
|
||||
ใช้สำหรับการ login ในระบบ (Identity Server) เพื่อความปลอดภัยการสื่อสารเฉพาะภายใน จะเป็น https จะสร้าง self-signed certificate ขึ้นมาตัวอย่างนี้มีอายุ 10 ปี
|
||||
|
||||
docker/bmahrms-service/service.env
|
||||
การตั้งค่าและรหัสผ่านของคอนเทนเนอร์ผ่านตัวแปรแวดล้อมทำได้สอบแบบ
|
||||
- ทำแต่ละ services.service_name.environments ในไฟล์คอมโพส
|
||||
- แยกออกมาเป็นไฟล์เพื่อใช้ร่วมกันหลาย Service ก็ได้ ในตัวอย่างนี้จะใช้ ไฟล์ service.env
|
||||
```sh
|
||||
cd bmahrms-service/keycloak_config
|
||||
openssl genrsa -out keycloak.key 2048
|
||||
openssl req -new -x509 -sha256 -key keycloak.key -out keycloak.crt -days 3650
|
||||
cp keycloak.key keycloak.pem
|
||||
cat keycloak.crt >> keycloak.pem
|
||||
cd ..
|
||||
```
|
||||
- **Portainer (bmahrms-portainer)**
|
||||
ระบบจัดการ container มี UI ใช้งานง่าย สามารถสั่ง/เปิด/ปิด/แก้ไข การทำงานของคอนเทนเนอร์ได้ แทนการใช้คำสั่ง docker เฉพาะผู้ดูแลระดับสูงถึงจะเข้าใช้งานส่วนนี้
|
||||
- **MySQL (bmahrms-postgres)**
|
||||
เป็นฐานข้อมูลของระบบ ในโฟลเดอร์ init_mysql/\*.sql เป็นที่เก็บ SQL Script สำหรับสร้างฐานข้อมูลตั้งต้น
|
||||
จะถูกเรียกใช้ครั้งแรกตอนเริ่มฐานข้อมูลเป็นข้อมูลตั้งต้นของระบบ
|
||||
เนื่องจากไฟล์มีขนาดใหญ่หลายบรรทัดจะไม่ใส่ในเอกสารนี้
|
||||
- **Frappet Report Server (bmahrms-report-server)**
|
||||
เป็น Microservice ใช้สำหรับการออกรายงาน ไม่จำเป็นต้องมี domain ของตัวเอง ให้เป็น path ในโดเมนที่มีอยู่ได้ ให้นำไฟล์ต้นแบบซึ่งสร้างจาก MS Word และ Excel มาไว้ที่โฟลเดอร์นี้ report-server-template/docx/files.docx, report-server-template/xlsx/files.xlsx
|
||||
- **MiniO (bmahrms-s3)**
|
||||
เป็น Object Storage แบบเดียวกับ AWS s3 มีประสิทธิ์ภาพสูงสามารถรับโหลดได้หนักและ มีความปลอดภัยกว่าเก็บด้วยระบบไฟล์ทั่วไป สามารถขยายเพิ่มได้ในอนาคต ถูกใช้ในหลายระบบที่ต้องการเก็บไฟล์ Route จะมีส่วน API กับ console การทำ route จะให้ console อยู่ใต้ subfoler https://domain/console
|
||||
ในการติดตั้งบน production อาจจะไม่ได้อยู่ใน node เดียวกับ hrms และ apisix ดังนั้นควรอ้างเป็นชื่อโดเมนเต็มแทน
|
||||
- **Windmill** รันเวิร์กโฟลว์การทำงานอัตโนมัติจากสคริปต์ หลักๆใช้เพื่อรันตัวสำรองข้อมูล
|
||||
- **Frappet EDM (Enterprise Document Management)**
|
||||
เป็นระบบจัดการเอกสารภายใน ประกอบไปด้วยโปรแกรมหลายตัว
|
||||
- EDM ตัวโปรแกรมหลัก
|
||||
- Elasticsearch ฐานข้อมูลดัชนีเอกสารเพื่อการค้นหาภาษาไทยแบบซับซ้อน อ้างผ่าน IP/PORT ไม่มี Route สู่ภายนอก
|
||||
- Kibana ใน WebUI การจัดการ Elasticsearch มี Route ใช้เฉพาะนักพัฒนา
|
||||
- RabbitMQ จัดการคิวงาน มี Route ใช้เฉพาะนักพัฒนา
|
||||
- MiniO ใช้เพื่อเก็บไฟล์ต่างๆ มีหน้า console ใช้เฉพาะนักพัฒนา
|
||||
|
||||
นอกเหนือจาก compose.yaml มีไฟล์คอนฟิกสองไฟล์
|
||||
|
||||
```sh
|
||||
nano edm_config/keycloak.json
|
||||
nano elasticsearch_config/config.yaml
|
||||
```
|
||||
|
||||
edm_config/keycloak.json
|
||||
|
||||
```json
|
||||
{
|
||||
"realm": "EDM",
|
||||
"auth-server-url": "https://bma-hrms-id.bangkok.go.th/",
|
||||
"ssl-required": "external",
|
||||
"resource": "EDM-V1",
|
||||
"public-client": true,
|
||||
"confidential-port": 0
|
||||
}
|
||||
```
|
||||
|
||||
elasticsearch_config/config.yaml
|
||||
|
||||
```yaml
|
||||
network.host: 0.0.0.0
|
||||
s3.client.default.endpoint: bma-hrms-s3.bangkok.go.th
|
||||
```
|
||||
|
||||
- **Kibana**
|
||||
เป็น UI สำหรับ Elasticsearch สำหรับนักพัฒนามาตรวจสอบค่า ควรใช้จาก VPN และเน็ตเวิร์กภายในเท่านั้น เพื่อความปลอดภัย จะใช้ API gateway ทำ Basic Authentication และ https สำหรับนักพัฒนาเท่านั้น ใช้ผ่าน VPN หรือเน็ตเวิร์กภายในเท่านั้น
|
||||
|
||||
#### ตัวแปรแวดล้อม 3rd Party service
|
||||
การตั้งค่าและรหัสผ่านของคอนเทนเนอร์ผ่านตัวแปรแวดล้อมทำได้สองแบบ
|
||||
- ทำแต่ละ service ใน compose.yaml
|
||||
- แยกออกมาเป็นไฟล์เพื่อใช้ร่วมกันหลาย Service ก็ได้ ในตัวอย่างนี้จะใช้ ไฟล์ service.env
|
||||
ให้แก้ตัวแปรให้เหมาะสม KEYCLOAK_ADMIN_PASSWORD, KC_DB_PASSWORD, POSTGRES_PASSWORD, MINIO_ROOT_PASSWORD RABBITMQ_DEFAULT_PASS, MYSQL_ROOT_PASSWORD, MYSQL_PASSWORD
|
||||
```
|
||||
# Generic
|
||||
TZ=Asia/Bangkok
|
||||
# Keycloak
|
||||
KEYCLOAK_ADMIN=admin
|
||||
KEYCLOAK_ADMIN_PASSWORD=put_keycloak_admin_password_here
|
||||
|
||||
# Keycloak
|
||||
KC_DB=postgres
|
||||
#KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak
|
||||
KC_DB_URL_HOST=bmahrms-postgres
|
||||
KC_DB_URL_DATABASE=keycloak
|
||||
KC_DB_PASSWORD=put_keycloak_db_password_here
|
||||
KC_DB_USERNAME=keycloak
|
||||
KC_DB_SCHEMA=public
|
||||
**docker/bmahrms-service/service.env**
|
||||
```
|
||||
# Generic
|
||||
TZ=Asia/Bangkok
|
||||
# Keycloak
|
||||
KEYCLOAK_ADMIN=admin
|
||||
KEYCLOAK_ADMIN_PASSWORD=put_keycloak_admin_password_here
|
||||
|
||||
# PostgreSQL (keycloak)
|
||||
POSTGRES_DB=keycloak
|
||||
POSTGRES_USER=keycloak
|
||||
POSTGRES_PASSWORD=put_keycloak_db_password_here
|
||||
# Keycloak
|
||||
KC_DB=postgres
|
||||
#KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak
|
||||
KC_DB_URL_HOST=bmahrms-postgres
|
||||
KC_DB_URL_DATABASE=keycloak
|
||||
KC_DB_PASSWORD=put_keycloak_db_password_here
|
||||
KC_DB_USERNAME=keycloak
|
||||
KC_DB_SCHEMA=public
|
||||
|
||||
# MiniO
|
||||
MINIO_ROOT_USER=admin
|
||||
MINIO_ROOT_PASSWORD=put_minio_admin_password_here
|
||||
MINIO_BROWSER_REDIRECT_URL=https://bmahrms-s3.bangkok.go.th/console/
|
||||
# PostgreSQL (keycloak)
|
||||
POSTGRES_DB=keycloak
|
||||
POSTGRES_USER=keycloak
|
||||
POSTGRES_PASSWORD=put_keycloak_db_password_here
|
||||
|
||||
# RabbitMQ
|
||||
RABBITMQ_DEFAULT_USER=admin
|
||||
RABBITMQ_DEFAULT_PASS=put_rabbitmq_admin_password_here
|
||||
# MiniO
|
||||
MINIO_ROOT_USER=admin
|
||||
MINIO_ROOT_PASSWORD=put_minio_admin_password_here
|
||||
MINIO_BROWSER_REDIRECT_URL=https://bmahrms-s3.bangkok.go.th/console/
|
||||
|
||||
# MySQL
|
||||
MYSQL_ROOT_PASSWORD=put_mysql_admin_password_here
|
||||
MYSQL_DATABASE=bma_ehr
|
||||
MYSQL_USER=frappet
|
||||
MYSQL_PASSWORD=put_mysql_db_password_here
|
||||
# RabbitMQ
|
||||
RABBITMQ_DEFAULT_USER=admin
|
||||
RABBITMQ_DEFAULT_PASS=put_rabbitmq_admin_password_here
|
||||
|
||||
# Elasticsearch & Kibana
|
||||
xpack.security.enabled=false
|
||||
discovery.type=single-node
|
||||
ELASTICSEARCH_HOSTS=http://bmahrms-elasticsearch:9200
|
||||
# MySQL
|
||||
MYSQL_ROOT_PASSWORD=put_mysql_admin_password_here
|
||||
MYSQL_DATABASE=bma_ehr
|
||||
MYSQL_USER=frappet
|
||||
MYSQL_PASSWORD=put_mysql_db_password_here
|
||||
|
||||
# REDIS
|
||||
REDIS_PORT=6379
|
||||
REDIS_DATABASES=16
|
||||
```
|
||||
# Elasticsearch & Kibana
|
||||
xpack.security.enabled=false
|
||||
discovery.type=single-node
|
||||
ELASTICSEARCH_HOSTS=http://bmahrms-elasticsearch:9200
|
||||
|
||||
docker/bmahrms-service/compose.yaml จะใช้ docker volume (keycloak_data, minio_data ฯลฯ) แทน file system (ตัวอย่างก่อนหน้า) เพื่อประสิทธิ์ภาพสูงกว่าในการเก็บขอมูลที่มีการเขียนอ่านบ่อย
|
||||
# REDIS
|
||||
REDIS_PORT=6379
|
||||
REDIS_DATABASES=16
|
||||
```
|
||||
#### compose.yaml ของ 3rd Party service
|
||||
docker/bmahrms-service/compose.yaml จะใช้ docker volume (keycloak_data, minio_data ฯลฯ) แทน file system (ตัวอย่างก่อนหน้า) เพื่อประสิทธิ์ภาพสูงกว่าในการเก็บข้อมูลที่มีการเขียนอ่านบ่อย
|
||||
|
||||
ให้แก้ค่า PUBLIC_KEY MINIO_ACCESS_KEY,MINIO_SECRET_KEY, ipaddress_bma_hrms_id ให้เหมาะสม
|
||||
|
||||
|
|
@ -750,7 +806,136 @@ docker compose up -d bmahrms-postgres
|
|||
docker compose up -d bmahrms-id
|
||||
```
|
||||
|
||||
### BMA HRMS Service
|
||||
#### Route ของ 3rd Service
|
||||
|
||||
```sh
|
||||
# Keycloak Route
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-id",
|
||||
"host": "bma-hrms-id.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"scheme": "https",
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-id:8443": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# Portainer route
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-portainer",
|
||||
"host": "bmahrms-portainer.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-portainer:9000": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# Report Server Route
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-report-server",
|
||||
"hosts": ["bma-hrms.bangkok.go.th","bma-hrms-user.bangkok.go.th"],
|
||||
"uris": ["/api/v1/report-template/*"],
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-report-server:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
|
||||
# MiniO Rote
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-s3",
|
||||
"host": "bma-hrms-s3.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-s3:9000": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# Health test
|
||||
curl -k -I https://bma-hrms-s3.bangkok.go.th/minio/health/live
|
||||
# MiniO Console Route
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-s3-console",
|
||||
"host": "bma-hrms-s3.bangkok.go.th",
|
||||
"uri": "/console/*",
|
||||
"enable_websocket": true,
|
||||
"plugins": {
|
||||
"proxy-rewrite": {
|
||||
"regex_uri": ["^/console/(.*)","/$1"]
|
||||
}
|
||||
},
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-s3:9001": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# EDM Route
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-edm",
|
||||
"host": "bma-hrms-edm.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-edm:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# Kibana Route
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-kibana",
|
||||
"host": "bma-hrms-kibana.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"plugins": {
|
||||
"basic-auth": {}
|
||||
},
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-kibana:5601": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# Kibana Basic Authentication
|
||||
curl http://127.0.0.1:9180/apisix/admin/consumers \
|
||||
-H 'X-API-KEY: put_admin_api_key_here' -X PUT -d '
|
||||
{
|
||||
"username": "admin",
|
||||
"plugins": {
|
||||
"basic-auth": {
|
||||
"username": "admin",
|
||||
"password": "kibana-password-here"
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
|
||||
### BMA HRMS
|
||||
|
||||
ระบบที่พัฒนาเพื่อ HRMS โดยเฉพาะ จะมี 3 ไฟล์
|
||||
|
||||
|
|
@ -791,8 +976,11 @@ docker compose up -d bmahrms-id
|
|||
- bmahrms-development
|
||||
- bmahrms-kpi
|
||||
|
||||
docker/bmahrms/fe.env แก้ตัวแปร VITE_CLIENTSECRET_KEYCLOAK KC_SERVICE_ACCOUNT_SECRET
|
||||
#### ตัวแปรแวดล้อมของ BMA HRMS (Frontend)
|
||||
|
||||
**docker/bmahrms/fe.env**
|
||||
|
||||
แก้ตัวแปร VITE_CLIENTSECRET_KEYCLOAK KC_SERVICE_ACCOUNT_SECRET
|
||||
```
|
||||
# Frontend Global
|
||||
TZ=Asia/Bangkok
|
||||
|
|
@ -816,8 +1004,10 @@ KC_SERVICE_ACCOUNT_CLIENT_ID=bma-ehr-dev
|
|||
KC_SERVICE_ACCOUNT_SECRET=put_service_account_secret_here
|
||||
MANAGEMENT_ROLE=storage_management
|
||||
```
|
||||
#### ตัวแปรแวดล้อมของ BMA HRMS (Backendend)
|
||||
**docker/bmahrms/be.env**
|
||||
|
||||
docker/bmahrms/be.env แก้ค่าของ DB_PASSWORD,AUTH_PUBLIC_KEY, MINIO_KEY, MINIO_SECRET, STORAGE_SECRET,KC_SERVICE_ACCOUNT_SECRET,REDIS_HOST,KEYCLOAK_KEY,AUTH_PUBLIC_KEY, PUBLIC_KEY
|
||||
แก้ค่าของ DB_PASSWORD,AUTH_PUBLIC_KEY, MINIO_KEY, MINIO_SECRET, STORAGE_SECRET,KC_SERVICE_ACCOUNT_SECRET,REDIS_HOST,KEYCLOAK_KEY,AUTH_PUBLIC_KEY, PUBLIC_KEY
|
||||
|
||||
ค่าของ public key ของ keycloak ให้สำเนาจากส่วนนี้
|
||||
|
||||
|
|
@ -873,8 +1063,11 @@ ELASTICSEARCH_PORT=9200
|
|||
ELASTICSEARCH_INDEX=bma-ehr-log-index
|
||||
```
|
||||
|
||||
docker/bmahrms/compose.yaml
|
||||
#### compose.yaml ของ BMA HRMS
|
||||
ใช้สำหรับ Backend และ Frontend
|
||||
**docker/bmahrms/compose.yaml**
|
||||
|
||||
มี Backend และ Frontend
|
||||
```yaml
|
||||
networks:
|
||||
hrms:
|
||||
|
|
@ -1265,24 +1458,17 @@ services:
|
|||
# End Backend Section
|
||||
```
|
||||
|
||||
## Configuration
|
||||
#### Route ของ BMA-HRMS frontend
|
||||
|
||||
การตั้งค่าเฉพาะของแต่ละ service มีสองส่วน
|
||||
- เป็นการตั้งค่าเฉพาะโปรแกรม จะแตกต่างกันไปตามโปรแกรม
|
||||
- ตั้งค่า route สำหรับโดเมนต่างๆ (สำหรับ Frontend) และ Microservice (เป็นการรวมหลาย backend เข้าในโดเมนเดียวกันแต่อยู่คนละ Subfolder)
|
||||
|
||||
### BMA-HRMS frontend
|
||||
โดเมนสำหรับหน้าโปรแกรมจะมีดังนี้
|
||||
bmahrms.bangkok.go.th,bmahrms-user.bangkok.go.th,bmahrms-admin.bangkok.go.th,bmahrms-checkin.bangkok.go.th,bmahrms-recruiting.bangkok.go.th,bmahrms-exam.bangkok.go.th
|
||||
|
||||
จะต้องสร้าง route ให้ตรงกับหน้าที่ใช้งาน
|
||||
bmahrms.bangkok.go.th,bmahrms-user.bangkok.go.th,bmahrms-admin.bangkok.go.th,bmahrms-checkin.bangkok.go.th,bmahrms-recruiting.bangkok.go.th,bmahrms-exam.bangkok.go.th จะต้องสร้าง route ให้ตรงกับหน้าเวปที่ใช้งาน ใช้แค่ methods GET
|
||||
```sh
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms",
|
||||
"methods": ["GET"],
|
||||
"host": "bmahrms.bangkok.go.th",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
|
|
@ -1297,7 +1483,7 @@ curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
|||
{
|
||||
"id": "bmahrms-user",
|
||||
"methods": ["GET"],
|
||||
"host": "bmahrms-user.bangkok.go.th",
|
||||
"host": "bma-hrms-user.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
|
|
@ -1311,7 +1497,7 @@ curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
|||
{
|
||||
"id": "bmahrms-admin",
|
||||
"methods": ["GET"],
|
||||
"host": "bmahrms-admin.bangkok.go.th",
|
||||
"host": "bma-hrms-admin.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
|
|
@ -1325,7 +1511,7 @@ curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
|||
{
|
||||
"id": "bmahrms-checkin",
|
||||
"methods": ["GET"],
|
||||
"host": "bmahrms-checkin.bangkok.go.th",
|
||||
"host": "bma-hrms-checkin.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
|
|
@ -1337,7 +1523,7 @@ curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
|||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-recruiting",
|
||||
"id": "bma-hrms-recruiting",
|
||||
"methods": ["GET"],
|
||||
"host": "bmahrms-recruiting.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
|
|
@ -1348,237 +1534,320 @@ curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
|||
}
|
||||
}
|
||||
}'
|
||||
|
||||
```
|
||||
Faq and Manual เป็น Micro Frontend เป็นพาร์ทย่อยของโดเมนหลัก
|
||||
- Faq: /faq
|
||||
- Manual: /manual
|
||||
|
||||
```sh
|
||||
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-exam",
|
||||
"methods": ["GET"],
|
||||
"host": "bmahrms-exam.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-exam:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
### BMA-HRMS backend
|
||||
|
||||
|
||||
|
||||
### Keycloak (bmahrms-id)
|
||||
|
||||
ใช้สำหรับการ login ในระบบ (Identity Server) เพื่อความปลอดภัยการสื่อสารเฉพาะภายใน จะเป็น https จะสร้าง self-signed certificate ขึ้นมาตัวอย่างนี้มีอายุ 10 ปี
|
||||
|
||||
```sh
|
||||
cd bmahrms-service/keycloak_config
|
||||
openssl genrsa -out keycloak.key 2048
|
||||
openssl req -new -x509 -sha256 -key keycloak.key -out keycloak.crt -days 3650
|
||||
cp keycloak.key keycloak.pem
|
||||
cat keycloak.crt >> keycloak.pem
|
||||
cd ..
|
||||
```
|
||||
|
||||
Keycloak Route
|
||||
|
||||
```sh
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-id",
|
||||
"host": "bma-hrms-id.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"scheme": "https",
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-id:8443": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### Portainer (bmahrms-portainer)
|
||||
|
||||
เป็นโปรแกรมสำหรับบริหารจัดการ container สามารถสั่งเปิดปิดแก้ไขการทำงานของคอนเทนเนอร์ได้ เฉพาะผู้ดูแลระดับสูงถึงจะเข้าใช้งานส่วนนี้
|
||||
|
||||
```sh
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f2" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-portainer",
|
||||
"host": "bmahrms-portainer.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-portainer:9000": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### MySQL (bmahrms-postgres)
|
||||
|
||||
init_mysql/\*.sql เป็นที่เก็บ SQL Script สำหรับสร้างฐานข้อมูลตั้งต้น
|
||||
จะถูกเรียกใช้ครั้งแรกตอนเริ่มฐานข้อมูลเป็นข้อมูลตั้งต้นของระบบ
|
||||
เนื่องจากไฟล์มีขนาดใหญ่หลายบรรทัดจะไม่ใส่ในเอกสารนี้
|
||||
|
||||
### Report Server
|
||||
|
||||
เป็น Microservice ใช้สำหรับการออกรายงาน ไม่จำเป็นต้องมี domain ของตัวเอง ให้เป็น path ในโดเมนที่มีอยู่ได้ ให้นำไฟล์ต้นแบบซึ่งสร้างจาก MS Word และ Excel มาไว้ที่โฟลเดอร์นี้
|
||||
report-server-template/docx/files.docx, report-server-template/xlsx/files.xlsx
|
||||
|
||||
```sh
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-report-server",
|
||||
"hosts": ["bma-hrms.bangkok.go.th","bma-hrms-user.bangkok.go.th"],
|
||||
"uris": ["/api/v1/report-template/*"],
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-report-server:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### MiniO
|
||||
|
||||
Object Storage ใช้เพื่อเก็บไฟล์ของระบบถูกใช้โดย HRMS และ EDM
|
||||
Route จะมีส่วน API กับ console การทำ route จะให้ console อยู่ใต้ subfoler https://domain/console
|
||||
ในการติดตั้งบน production อาจจะไม่ได้อยู่ใน node เดียวกับ hrms และ apisix ดังนั้นควรอ้างเป็นชื่อโดเมนเต็มแทน
|
||||
|
||||
```sh
|
||||
# bma-hrms-s3.bangkok.go.th
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-s3",
|
||||
"host": "bma-hrms-s3.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-s3:9000": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# test
|
||||
curl -k -I https://bma-hrms-s3.bangkok.go.th/minio/health/live
|
||||
# bma-hrms-s3.bangkok.go.th/console
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-s3-console",
|
||||
"host": "bma-hrms-s3.bangkok.go.th",
|
||||
"uri": "/console/*",
|
||||
"enable_websocket": true,
|
||||
"id": "bmahrms-faq",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/faq/*",
|
||||
"plugins": {
|
||||
"proxy-rewrite": {
|
||||
"regex_uri": ["^/console/(.*)","/$1"]
|
||||
"regex_uri": ["^/faq/(.*)","/$1"]
|
||||
}
|
||||
},
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-s3:9001": 1
|
||||
"bmahrms-faq:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
### EDM (Enterprixe Document Management)
|
||||
|
||||
เป็นระบบจัดการเอกสารภายใน ประกอบไปด้วยโปรแกรมหลายตัว
|
||||
|
||||
- EDM ตัวโปรแกรมหลัก
|
||||
- Elasticsearch ฐานข้อมูลดัชนีเอกสารเพื่อการค้นหาภาษาไทยแบบซับซ้อน อ้างผ่าน IP/PORT ไม่มี Route สู่ภายนอก
|
||||
- Kibana ใน WebUI การจัดการ Elasticsearch มี Route ใช้เฉพาะนักพัฒนา
|
||||
- RabbitMQ จัดการคิวงาน มี Route ใช้เฉพาะนักพัฒนา
|
||||
- MiniO ใช้เพื่อเก็บไฟล์ต่างๆ มีหน้า console ใช้เฉพาะนักพัฒนา
|
||||
|
||||
นอกเหนือจาก compose.yaml มีไฟล์คอนฟิกสองไฟล์
|
||||
|
||||
```sh
|
||||
nano edm_config/keycloak.json
|
||||
nano elasticsearch_config/config.yaml
|
||||
```
|
||||
|
||||
edm_config/keycloak.json
|
||||
|
||||
```json
|
||||
{
|
||||
"realm": "EDM",
|
||||
"auth-server-url": "https://bma-hrms-id.bangkok.go.th/",
|
||||
"ssl-required": "external",
|
||||
"resource": "EDM-V1",
|
||||
"public-client": true,
|
||||
"confidential-port": 0
|
||||
}
|
||||
```
|
||||
|
||||
elasticsearch_config/config.yaml
|
||||
|
||||
```yaml
|
||||
network.host: 0.0.0.0
|
||||
s3.client.default.endpoint: bma-hrms-s3.bangkok.go.th
|
||||
```
|
||||
|
||||
EDM Route
|
||||
|
||||
```sh
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f2" -X PUT -d '
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-edm",
|
||||
"host": "bma-hrms-edm.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"id": "bmahrms-manual",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/manual/*",
|
||||
"plugins": {
|
||||
"proxy-rewrite": {
|
||||
"regex_uri": ["^/manual/(.*)","/$1"]
|
||||
}
|
||||
},
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-edm:80": 1
|
||||
"bmahrms-manual:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
#### Route ของ BMA-HRMS backend
|
||||
|
||||
Kibana Route
|
||||
เป็น UI สำหรับ Elasticsearch สำหรับนักพัฒนามาตรวจสอบค่า ควรใช้จาก VPN และเน็ตเวิร์กภายในเท่านั้น เพื่อความปลอดภัย ให้ API gateway จะช่วยทำ Basic Authentication และ https ให้ ควรใช้ภายในเสำหรับนักพัฒนาเท่านั้น
|
||||
Route ของ API จะอยู่ในรูปแบบ domain/api/v1/*
|
||||
|
||||
```sh
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "bmahrms-kibana",
|
||||
"host": "bma-hrms-kibana.bangkok.go.th",
|
||||
"uri": "/*",
|
||||
"plugins": {
|
||||
"basic-auth": {}
|
||||
},
|
||||
"id": "hrms-backend-org",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/org/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-kibana:5601": 1
|
||||
"bmahrms-org:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
# Basic Authentication
|
||||
curl http://127.0.0.1:9180/apisix/admin/consumers \
|
||||
-H 'X-API-KEY: put_admin_api_key_here' -X PUT -d '
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"username": "admin",
|
||||
"plugins": {
|
||||
"basic-auth": {
|
||||
"username": "admin",
|
||||
"password": "kibana-password-here"
|
||||
}
|
||||
"id": "hrms-backend-recruit",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/recruit/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-recruit:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-report",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/report/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-report:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-insignia",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/insignia/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-insignia:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-recruit-exam-cms",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/cms/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-recruit-exam:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-recruit-exam-candidate",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/candidate/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-recruit-exam:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-org-employee",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/organization-employee/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-org-employee:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-placement",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/placement/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-placement:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-retirement",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/retirement/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-retirement:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-report-v2",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v2/report/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-report-v2:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-probation",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/probation/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-probation:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-command",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/order/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-command:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-command-message",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/message/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-command:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-discipline",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/discipline/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-discipline:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-evaluation",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/evaluation/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-evaluation:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-leave",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/leave/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-leave:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-salary",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/salary/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-salary:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-development",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/development/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-development:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-kpi",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/kpi/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-kpi:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
|
||||
curl "http://127.0.0.1:9180/apisix/admin/routes" \
|
||||
-H "X-API-KEY: put_admin_api_key_here" -X PUT -d '
|
||||
{
|
||||
"id": "hrms-backend-metadata",
|
||||
"host": "bma-hrms.bangkok.go.th",
|
||||
"uri": "/api/v1/metadata/*",
|
||||
"upstream": {
|
||||
"type": "roundrobin",
|
||||
"nodes": {
|
||||
"bmahrms-metadata:80": 1
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## บทสรุป
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue