Azure 리소스 그룹 관리 API 레퍼런스
프로젝트(CSN)와 Azure 리소스 그룹(RG)의 매핑을 조회·등록/수정·삭제하는 API 상세 명세입니다. 화면 기능 Azure 리소스 그룹 관리가 사용하는 것과 동일한 API입니다.
📋 개요
CSN↔Azure RG 매핑 API는 giipApi 엔드포인트를 통해 text 명령으로 디스패치됩니다. 인증은 AK(byAK) 로 이루어지며, 서버가 @ak → dbo.lwGetUSNbyat(@ak) 로 사용자를 확인한 뒤 대상 CSN 소속(tCorpUserRel/tCorpUser)을 검증합니다. 소속이 아니면 403을 반환합니다.
- 엔드포인트:
POST https://giipfaw.azurewebsites.net/api/giipApi - Content-Type:
application/x-www-form-urlencoded - 주요 폼 필드:
text(명령과 파라미터 이름 나열),jsondata(파라미터 값 JSON), 인증 키 - 바인딩 규약:
text의 파라미터 나열 순서 = SP 파라미터 순서(positional), 값은jsondata의 키로 매칭됩니다.
🔍 주요 명령
1. 매핑 목록 조회 — AzureRgList → pApiAzureRgListbyAK
현재 사용자가 접근 가능한 CSN의 RG 매핑 목록을 조회합니다.
- text:
AzureRgList csn - jsondata:
{ "csn": <CSN> }(생략 시 유저 소속 전체 CSN) - 반환:
carSn, cSn, carResourceGroup, carSubscriptionId, carSubscriptionName, carLSsn, carNote, carStatus, carRegdt(행 목록), 권한 없으면Proc_MSG='403|...'
2. 매핑 등록/수정 — AzureRgPut → pApiAzureRgPutbyAK
새 매핑을 등록하거나 기존 매핑을 수정합니다(upsert).
- text:
AzureRgPut csn carResourceGroup carSubscriptionId carSubscriptionName carLSsn carNote carSn - jsondata:
{ "csn":<CSN>, "carResourceGroup":"rg-...", "carSubscriptionId":"...", "carSubscriptionName":"...", "carLSsn":<lssn|null>, "carNote":"...", "carSn":<수정 시 지정> } - 규칙:
carSn지정 시 update, 미지정 시(cSn, carResourceGroup)유니크 기준 upsert - 반환:
Proc_MSG200|OK/400|.../403|.../404|Not found
3. 매핑 삭제 — AzureRgDel → pApiAzureRgDelbyAK
carSn 으로 매핑 한 건을 삭제합니다.
- text:
AzureRgDel carSn - jsondata:
{ "carSn": <carSn> } - 반환:
Proc_MSG200|OK/403|.../404|Not found
🛠️ 활용 예시 (cURL)
# 1) CSN 47 의 RG 매핑 목록 조회
curl -X POST "https://giipfaw.azurewebsites.net/api/giipApi" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'text=AzureRgList csn' \
--data-urlencode 'jsondata={"csn":47}' \
--data-urlencode 'ak=YOUR_AK'
# 2) RG 매핑 등록(신규)
curl -X POST "https://giipfaw.azurewebsites.net/api/giipApi" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode 'text=AzureRgPut csn carResourceGroup carSubscriptionId carSubscriptionName carLSsn carNote carSn' \
--data-urlencode 'jsondata={"csn":47,"carResourceGroup":"rg-example-prod","carSubscriptionName":"prod-sub","carNote":"운영 RG"}' \
--data-urlencode 'ak=YOUR_AK'
💡 유의 사항
- run.ps1 무수정 원칙: 위 API는 SP 3종(
pApiAzureRgListbyAK/pApiAzureRgPutbyAK/pApiAzureRgDelbyAK)만으로 동작합니다. 성역인run.ps1은 수정하지 않습니다. - 같은 CSN 안에서 RG 이름은 유니크(
UNIQUE(cSn, carResourceGroup))합니다. 같은 이름으로carSn없이AzureRgPut하면 기존 행이 갱신됩니다. carLSsn은 비용 소스 힌트로, Azure 비용 연동 확장에 사용됩니다(현 버전은 매핑 기반 필터/소계까지 제공).
문제 해결
| 증상 | 원인 | 해결 |
|---|---|---|
| `Proc_MSG='403 | ...'` 반환 | 호출 사용자가 대상 CSN 소속이 아님 |
AzureRgPut 이 400을 반환 | 필수값(csn/carResourceGroup) 누락 | csn과 carResourceGroup을 반드시 포함합니다 |
| 의도치 않게 기존 매핑이 갱신됨 | carSn 없이 같은 (csn, RG)로 재등록 | 신규 등록은 새 RG 이름으로, 수정은 carSn을 명시합니다 |
jsondata 파싱 오류 | JSON 따옴표 이스케이프 오류 | jsondata 값을 유효한 JSON으로 이스케이프하여 전송합니다 |
RstVal/Proc_MSG가 200이 아님 | 파라미터/권한 문제 | API 결과 코드 가이드를 참조해 원인 코드를 확인합니다 |
버전: 1.0
최종 업데이트: 2026-07-24
소스 파일: giipv3/public/help/api-azure-rg.ko.md
관련 문서: