Bicep은 Microsoft 버전의 Terraform 이다… 라고 생각하면 될 것 같다. Cloud를 실행하기 위해 필요한 모든 리소스의 설정을 알려줘 그에 맞게 클라우드가 미리 준비하여 시스템을 즉시 사용할 수 있도록 하는 역할을 한다. (=Provisioning)
Azure은 리소스를 관리, 배포 및 수정과 같은 행동을 할 때 보통 ARM(Azure Resource Manager)을 사용하지만 진입장벽이 높아 사용하기 힘들어 Bicep을 통해 관리한다. Bicep을 통해 관리자가 리소스를 관리하면 자동으로 ARM 파일이 만들어진다.
az bicep upgrade
az login (azure 로그인)
bicep 파일을 만들고
az bicep build -f main.bicep
를 입력하면 자동으로 json 형식의 ARM 파일이 만들어져 있는 것을 볼 수 있다.
코드들은 이 곳에 정리해두었다.
https://github.com/hsh108868/azure_function/tree/master/infra
Bicep에서는 파라미터, 배리어블, 리소스, 아웃풋 네가지가 가장 중요하다. 특히, 리소스는 무조건 있어야 한다.
https://docs.microsoft.com/ko-kr/azure/templates/ 를 참고해 원하는 템플릿으로 Bicep 파일을 생성할 수 있다.
Bicep의 파라미터들은 default값을 생성하지 않아도 되지만, 생성할 시에는
az deployment group create -n oca -g rg-oca-krc -f main.bicep -p name=oca
과 같이 꼭! 외부에서 파라미터 값을 넘겨주어야 한다.
서버리스의 경우에는 이와 같이 설정해 줘야 한다. API 버전이 ARM에서 노란 줄로 떴을 경우 무시해도 된다.
모든 작성이 완료되었으면 해당 명령어를 통해 빌드 후 컴파일 해 주자.
az bicep build -f main.bicep
az deployment group create -n oca -g rg-oca-krc -f main.bicep -p name=oca