Azure DevOps에서 Bicep Lang을 사용하여 Azure API 관리 인스턴스 만들기


소개하다.


나는 이두근을 많이 사용할수록 그것을 좋아한다.이것이 바로 ARM 템플릿이 갖춰야 할 기능입니다.IaC 하면 Terraform 을 사용합니다.이것은 우리가 지난 공연에서 사용한 IaC 도구입니다. 나는 그것이 여러 종류의 구름을 지원하는 것을 좋아합니다.
그런데 최근에 직장을 바꿨는데 ARM 템플릿을 더 많이 사용하고 있다는 것을 알게 됐어요.이 점을 감안하여 저는 이두근을 배우고 자신의 개인 프로젝트에서 사용하고 싶었습니다. 그래서 언젠가 ARM 템플릿을 이두근 코드로 전환해야 할 때 저는 준비를 잘 하겠습니다.😂
본문으로 돌아가서, 나는 일련의 API(Azure 함수로 구축된 개인 건강 응용 프로그램을 개발하고 있다)⚡) 나의 데이터와 상호작용하다.이상적인 경우 Azure API 관리에 통합하고 싶습니다.Azure DevOps를 사용하여 이러한 API를 배포하므로 일관성을 유지하기 위해 Azure DevOps를 통해 IaC를 사용하여 APIM을 배포하고 싶습니다.
Bicep 코드를 사용하여 Azure API 관리 인스턴스를 구성한 다음 Azure DevOps를 사용하여 배포하는 방법을 보여 드리겠습니다.
시작하기 전에 주의해야 할 점은 본문을 작성할 때 Azure DevOps에 공식적으로 지원되는 이두근 임무가 없다는 것이다.Terraform과 ARM 템플릿의 경우 DevOps의 작업을 사용하여 인프라를 배치할 수 있습니다.이 문서에서 Bicep 템플릿을 구축하고 배포하기 위해 일부 AZ CLI 작업을 사용했습니다.
따라서 만약에 당신이 장래에 이 글을 읽는다면 DevOps에서 공식적으로 지원하는 이두근 임무를 사용할 수 있습니다. 이 경고를 기억하세요.😊

무엇이 이두근랑입니까?


Bicep은 Azure 리소스를 배치하기 위해 선언적 구문을 사용하는 도메인별 언어입니다.ARM 템플릿을 작성할 때, Google은 자원을 Azure에 배치하기 위해 JSON을 작성합니다.그것의 문법은 좀 복잡해질 수 있지만, 신기한 것에 대해서는 복잡한 표현식을 작성해서 그것을 일하게 해야 한다.
이두근은 이런 복잡성을 현저히 낮출 수 있다.Bicep은 ARM 템플릿에 대한 투명한 추상화입니다. Bicep 템플릿을 배치할 때 CLI가 추가되어 Bicep 파일을 ARM 템플릿 JSON으로 변환할 수 있습니다.
v0부터 시작합니다.3. Bicep은 마이크로소프트의 지원을 받아 ARM 템플릿과 100%의 대등성을 가진다. 이것은 당신이 생산 작업 부하에서 그것을 사용할 수 있음을 의미한다!
이두근에 대한 정보를 더 알고 싶으면 다음과 같은 문서를 보십시오. https://docs.microsoft.com/en-us/azure/azure-resource-manager/bicep/

API 관리란?


API 관리(APIM)를 사용하면 백엔드 서비스에 대해 일관된 API 게이트웨이를 생성할 수 있습니다.APIM을 사용하면 API를 게시하고 외부 및 내부 개발자가 사용할 수 있습니다.
APIM은 다음 섹션으로 구성됩니다.

  • 게이트웨이는 API 호출을 받아 올바른 백엔드로 라우팅, API 키 확인, 할당량 및 속도 제한 강제 사용 등의 엔드포인트

  • Azure 포털을 통해 API 프로그램 관리, API 모드 정의, 제품에 API 패키지화, 정책 설정

  • 개발자 포털은 개발자가 대화형 콘솔을 통해 API를 시험적으로 사용할 수 있도록 API 문서를 제공하고 API를 구독할 수 있는 계정을 만들 수 있도록 하는 주요 웹 사이트입니다.
  • APIM에 대한 자세한 내용을 보려면 문서: https://docs.microsoft.com/en-us/azure/api-management/

    API 관리를 위한 Bicep 코드 작성


    이두근 코드를 작성해 봅시다!💪 이두근 코드를 작성하는 가장 좋은 도구는 Visual Studio 코드입니다.당신은 또한 아주 좋은 확장자를 다운로드할 수 있습니다. 이것은 당신의 이두근 코드를 검증하고 스마트 감지를 제공하는 데 도움을 줄 것입니다. https://github.com/Azure/bicep/blob/main/docs/installing.md#install-the-bicep-vs-code-extension
    이 자습서에서 나는 APIM의 복잡한 부분에 지나치게 관심을 두지 않을 것이다.나는 단지 간단한 설정을 제공해서 시작하고 싶다.
    문서에서 볼 수 있는 속성은 다음과 같습니다.

  • 이름(APIM 서비스의 이름)

  • 유형(제공되는 리소스 유형)

  • ApiVersion(ARM API 버전)

  • 속성(게시자의 전자 메일 및 이름에 대해 구성하려는 APIM의 속성)

  • 위치(APIM 인스턴스 위치 제공)

  • SKU(APIM 인스턴스의 SKU 속성)
  • APIM 템플릿의 전체 참조를 볼 수 있습니다.https://docs.microsoft.com/en-us/azure/templates/microsoft.apimanagement/2019-01-01/service?tabs=bicep
    이러한 특성을 고려하여 다음과 같은 이두근 코드를 작성할 수 있습니다.
    param apimName string
    param apimLocation string
    param publisherName string
    param publisherEmail string
    
    resource myhealthapim 'Microsoft.ApiManagement/service@2019-12-01' = {
      name: apimName
      location: apimLocation
      sku: {
        name: 'Developer'
        capacity: 1
      }
      properties: {
        publisherEmail: publisherEmail
        publisherName: publisherName
      }
    }
    
    보시다시피 APIM 인스턴스의 일부 구성 값에 일부 매개변수를 사용했습니다.이두근 중의 이것들이 무엇인지 토론해 봅시다.

    매개변수 사용


    Bicep에서는 Bicep 템플릿을 배포할 때 매개 변수를 사용하여 템플릿에 정보를 제공할 수 있습니다.이것은 우리로 하여금 우리의 이두근 모형을 중복 사용할 수 있게 한다.
    위 코드에서, 우리는param 키워드를 사용하여 파라미터를 설명했습니다.다음 예는 다음과 같습니다.
    param parameterName string
    
  • 파라미터 - 이두근에 우리가 파라미터를 사용하고 있음을 나타낸다
  • parameterName - 매개 변수
  • 의 이름
  • 문자열 - 매개변수
  • 의 유형
    우리는 파일을 통해 파라미터를 제공할 수 있다.매개변수 파일은 JSON을 사용하여 생성됩니다.만약 우리가 자원을 여러 환경에 배치한다면, 우리는 모든 환경에 매개 변수 파일을 만들고, 환경에 따라 서로 다른 값을 제공할 수 있다.
    이 강좌에 대해 다음과 같은 파일을 만들었습니다.
    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "apimName": {
                "value": "myhealthapiportal"
            },
            "apimLocation": {
                "value": "australiaeast"
            },
            "publisherName": {
                "value": "MyHealth API Portal"
            },
            "publisherEmail": {
                "value": "[email protected]"
            }
        }
    }
    
    만약 당신이 이두근 파라미터를 어떻게 사용하는지 배우고 싶다면 본 학습 과정을 보십시오:https://docs.microsoft.com/en-us/learn/modules/build-reusable-bicep-templates-parameters/2-understand-parameters

    Azure DevOps에 대한 서비스 연결 만들기


    Bicep 템플릿을 배포하려면 자원을 Azure에 배포할 수 있는 권한을 부여받은 DevOps의 서비스 연결이 필요합니다.
    (필요한 경우 다음 문서를 보십시오.)

    https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops &tabs=yaml# 서비스 연결 만들기 게시 파이핑 생성 및 실행


    이제 제 이두근 템플릿과 파라미터 파일이 생겨서 발표관을 만들 수 있습니다.
    나는 이 발에 총을 맞았다.나는 모든 IaC 코드를 작성하고 자원을 Azure에 배치하는 데 사용할 수 있는 좋은 리콜 프로토콜을 가지고 있다.그래서 이 강좌에서 나는 YAML이 아닌 고전적인 발표 파이프라인을 사용할 것이다.
    이 버전에 대해 다음 작업을 사용했습니다.

    우리로 하여금 모든 임무를 완성하게 하다.
    파일 복사 작업에 대해 GitHub 작업에서 구축 에이전트의 기본 작업 디렉터리로 파일을 복사할 뿐입니다.

    대상 디렉토리의 파일을 사용하여 Bicep 명령을 실행합니다.
    첫 번째 Azure CLI 작업을 살펴보겠습니다.

    여기서 다음 az cli 명령을 실행합니다
    az bicep build --file "$env:SYSTEM_DEFAULTWORKINGDIRECTORY/main.bicep"
    
    여기서 우리는 우리의 이두근 파일을 만들고 있다.Bicep 파일에서 작성될 ARM 템플릿을 구축할 수 있습니다. 이 템플릿은 자동 테스트를 실행하거나 팀 내의 다른 사용자와 공유할 수 있는 템플릿 사양에 추가할 수 있습니다.
    명령에서 우리의 구축 파일을 인용하기 위해서, 나는 시스템의 기본 작업 디렉터리를 환경으로 사용합니다.이것은 우리가 이전에 파일을 복사한 폴더입니다.우리는 발표 파이프의 변수를 방문하여 전체 발표 파이프에서 데이터를 전송하고 교환할 수 있습니다:
    이제 마지막 임무로 넘어가 이두근 템플릿을 배치합니다.
    https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=azure-devops&tabs=batch#default-variables
    이 AZ CLI 작업에서 다음 명령을 실행합니다.
    az group create -l australiaeast -n myhealthapiportal-rg
    az deployment group create --template-file "$env:SYSTEM_DEFAULTWORKINGDIRECTORY/main.bicep" --parameters "$env:SYSTEM_DEFAULTWORKINGDIRECTORY/main.parameters.json" --resource-group myhealthapiportal-rg
    
    첫 번째 명령에서, 우리는 Azure에서 myhealthapipipiportal rg라는 자원 그룹을 만들어서, 우리의 APIM 실례를 배치합니다.
    두 번째 명령에서 구독 범위에서main 명령을 사용하여 배치를 만들고 있습니다.bicep 파일은 우리가 배치하고자 하는 템플릿과 주 파일입니다.매개 변수.json 파일은 이 배치에 사용할 매개 변수입니다.이전에 작성한 리소스 그룹을 하드 코딩하여 APIM 리소스를 리소스 그룹에 배치하려고 합니다.
    이 모든 것이 설정되어 있습니다. 발표 파이프라인을 실행할 수 있습니다. APIM 실례를 Azure에 배치해야 합니다.

    Azure에 배포되었는지 확인 중:

    AZ CLI 명령이 우리 파일을 가리키도록 하는 데 시간이 많이 걸렸습니다.
    또 하나 주의해야 할 것은 내가 처음으로 APIM을 성공적으로 배치했지만 배치 임무가 한 시간 넘게 걸렸고 실패했다는 것이다. 비록 내가 Azure 포털에 들어갔을 때 배치에 성공했지만.

    더 알고 싶으세요?


    본문을 읽어 주셔서 감사합니다.본문을 작성할 때 Azure DevOps에는 이두근에 대한 공식적인 임무가 없기 때문에 제가 여기서 하는 일은 그것을 운행하기가 좀 어렵지만 효과가 있습니다.
    Bicep에 대한 자세한 내용은 다음 자료를 참조하십시오.
  • 이두근을 코드로 사용하는 인프라 소개:
  • 당신의 첫 번째 이두근 템플릿 구축: https://docs.microsoft.com/en-us/learn/modules/introduction-to-infrastructure-as-code-using-bicep/
  • 매개 변수https://docs.microsoft.com/en-us/learn/modules/deploy-azure-resources-by-using-bicep-templates/를 사용하여 중용 가능한 이두근 템플릿 구축
  • 사용 조건과 순환 구축 유연한 이두근 템플릿: https://docs.microsoft.com/en-us/learn/modules/build-reusable-bicep-templates-parameters/
  • 이두근을 이용하여 어린이를 배치하고 자원을 보급한다: https://docs.microsoft.com/en-us/learn/modules/build-flexible-bicep-templates-conditions-loops/
  • Bicephttps://docs.microsoft.com/en-us/learn/modules/child-extension-bicep-templates/를 사용하여 리소스를 구독, 관리 그룹 및 임차인에게 배포
  • 즐거운 코딩!👩‍💻👨‍💻

    좋은 웹페이지 즐겨찾기