diff --git a/content-service-deployment.yaml b/content-service-deployment.yaml new file mode 100644 index 0000000..5223cbf --- /dev/null +++ b/content-service-deployment.yaml @@ -0,0 +1,64 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: content-service + namespace: kt-event-marketing + labels: + app: content-service +spec: + replicas: 1 + selector: + matchLabels: + app: content-service + template: + metadata: + labels: + app: content-service + spec: + containers: + - name: content-service + image: acrdigitalgarage01.azurecr.io/kt-event-marketing/content-service:latest + imagePullPolicy: Always + ports: + - containerPort: 8084 + name: http + protocol: TCP + envFrom: + - configMapRef: + name: cm-common + - configMapRef: + name: cm-content-service + - secretRef: + name: secret-common + - secretRef: + name: secret-content-service + resources: + requests: + cpu: 256m + memory: 512Mi + limits: + cpu: 1024m + memory: 1024Mi + startupProbe: + httpGet: + path: /actuator/health + port: 8084 + initialDelaySeconds: 30 + periodSeconds: 10 + failureThreshold: 30 + livenessProbe: + httpGet: + path: /actuator/health/liveness + port: 8084 + initialDelaySeconds: 30 + periodSeconds: 10 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /actuator/health/readiness + port: 8084 + initialDelaySeconds: 10 + periodSeconds: 5 + failureThreshold: 3 + imagePullSecrets: + - name: kt-event-marketing diff --git a/content-service/src/main/java/com/kt/event/content/infra/web/controller/ContentController.java b/content-service/src/main/java/com/kt/event/content/infra/web/controller/ContentController.java index 7fd2997..cca9f30 100644 --- a/content-service/src/main/java/com/kt/event/content/infra/web/controller/ContentController.java +++ b/content-service/src/main/java/com/kt/event/content/infra/web/controller/ContentController.java @@ -124,7 +124,7 @@ public class ContentController { * @param imageId 이미지 ID * @return 200 OK - 이미지 상세 정보 */ - @GetMapping("/images/{imageId}") + @GetMapping("/images/{imageId:[0-9]+}") public ResponseEntity getImageById(@PathVariable Long imageId) { log.info("이미지 상세 조회: imageId={}", imageId); @@ -140,7 +140,7 @@ public class ContentController { * @param imageId 이미지 ID * @return 204 NO CONTENT */ - @DeleteMapping("/images/{imageId}") + @DeleteMapping("/images/{imageId:[0-9]+}") public ResponseEntity deleteImage(@PathVariable Long imageId) { log.info("이미지 삭제 요청: imageId={}", imageId); @@ -157,7 +157,7 @@ public class ContentController { * @param requestBody 재생성 요청 정보 (선택) * @return 202 ACCEPTED - Job ID 반환 */ - @PostMapping("/images/{imageId}/regenerate") + @PostMapping("/images/{imageId:[0-9]+}/regenerate") public ResponseEntity regenerateImage( @PathVariable Long imageId, @RequestBody(required = false) ContentCommand.RegenerateImage requestBody) {