한참 전에 애저 펑션을 위한 Swagger UI 익스텐션을 소개한 후 많은 피드백을 받았는데, 그 중 하나가 바로 애저 펑션 런타임 상에서만 Open API 문서를 생성하지 말고, 커맨드라인에서도 직접 생성할 수 있었으면 좋겠다는 것이었다. 마침 이를 위한 작은 도구를 하나 만들어서 배포한 관계로, 이를 소개하는 포스트를 작성하기로 한다.
CLI 다운로드 받기
CLI는 깃헙 리포지토리에서 다운로드 받을 수 있다. 항상 cli-<version>
의 형태로 태그를 해 놓기 때문에 최신 버전을 금방 찾을 수 있을 것이다. 익스텐션은 애저 펑션 v1 부터 최신 버전까지 다 지원하므로, 자신이 운영하는 애저 펑션의 런타임 버전과 운영체제에 맞춰 CLI를 다운로드 받으면 된다.
-
애저 펑션 v1
- 윈도우 전용:
azfuncopenapi-v<version>-net461-win-x64.zip
- 윈도우 전용:
-
애저 펑션 v2 또는 그 이상
- 리눅스용:
azfuncopenapi-v<version>-netcoreapp3.1-linux-x64.zip
- 맥용:
azfuncopenapi-v<version>-netcoreapp3.1-osx-x64.zip
- 윈도우용:
azfuncopenapi-v<version>-netcoreapp3.1-win-x64.zip
- 리눅스용:
Open API 문서 생성하기
앞서 다운로드 받은 CLI와 더불어 자신의 애저 펑션 앱에 애저 펑션 Open API 익스텐션을 설정했다면 모든 준비는 된 셈이다. 아래와 같이 명령어를 실행시킨다.
- 윈도우용 CLI:
# PowerShell Console | |
azfuncopenapi ` | |
--project <PROJECT_PATH> ` | |
--configuration Debug ` | |
--target netcoreapp2.1 ` | |
--version v2 ` | |
--format json ` | |
--output output ` | |
--console false |
- 리눅스/맥용 CLI:
# Bash | |
./azfuncopenapi \ | |
--project <PROJECT_PATH> \ | |
--configuration Debug \ | |
--target netcoreapp2.1 \ | |
--version v2 \ | |
--format json \ | |
--output output \ | |
--console false |
위에 보면 여러 옵션들이 있는데, 옵션별 자세한 내용은 아래와 같다.
옵션 | 설명 | 기본값 |
---|---|---|
--project|-p |
프로젝트 경로. 디렉토리 형태의 전체 경로가 될 수도 있고, .csproj 파일을 포함한 전체 경로가 될 수도 있다. |
현재 디렉토리 |
--configuration|-c |
설정값. 일반적으로는 Debug 또는 Release 이지만, 사용자 설정에 따라 다른 무언가가 될 수도 있다. |
Debug |
--target|-t |
타겟 프레임워크. 애저 펑션 v1에는 반드시 net4x 형태가 되어야 한다 (예: net461 ). 애저 펑션 v2에는 netcoreapp2.x 형태 (예: netcoreapp2.1 ), 애저 펑션 v3를 netcoreapp3.x 형태 (예: netcoreapp3.1 )를 따른다. |
netcoreapp2.1 |
--version|-v |
Open API 스펙 버전. 반드시 v2 또는 v3 가 되어야 한다. |
v2 |
--format|-f |
Open API 문서 포맷. 반드시 json 또는 yaml 가 되어야 한다. |
json |
--output|-o |
생성된 Open API를 저장할 경로. 전체 경로를 지정할 수도 있고, 상대 경로를 지정할 수도 있다. 상대 경로일 경우 <PROJECT_ROOT>/bin/<CONFIGURATION>/<TARGET_FRAMEWORK> 을 기준으로 한다. |
output |
--console |
생성된 Open API 문서를 화면에 보여줄 지 아닐지를 결정한다. | false |
이렇게 해서 실제로 이 CLI를 돌려보면 지정한 경로에 swagger.json
또는 swagger.yaml
문서가 생성된 것을 볼 수 있다.
지금까지 애저 펑션 Open API 익스텐션을 위한 CLI 사용법에 대해 알아 보았다. 향후 API Management 또는 파워 플랫폼에서 사용하는 커스텀 커넥터에서 API를 사용할 경우 굉장히 유용하게 쓰일 수 있는 도구가 될 것이다.