Azure Functions (Java)에서 배포 슬롯을 사용하여 스왑

3285 단어 AzureAzureFunctions
Functions(Java)는 mvn azure-functions:deploy 명령으로 배포합니다.
프로덕션용 Functions에 갑자기 배포되기 때문에 일단 스테이징용 슬롯에 배포하여 문제가 없는지 확인하고 스왑(릴리스)이라는 방법을 할 수 없는지 검토했습니다.

현재 azure-maven-plugins가 배포 슬롯을 지원하지 않기 때문에 mvn 명령으로 다른 슬롯에 배포할 수 없습니다.
대안으로, zip 파일을 az 명령으로 업로드하는 방법으로 잘 작동했으므로 절차를 남겨 둡니다.

그건 그렇고, Functions의 Java는 GA이었지만 배포 슬롯은 미리보기 기능입니다.

Functions 준비


  • Java와 Eclipse를 사용하여 첫 번째 함수 만들기 근처를 참고로 샘플 앱을 배포합니다.
  • 동작을 확인합니다. https://[Function App Name]/api/HttpTrigger-Java?name=java 로 이동하여 Hello, java 가 표시되면 OK입니다.

  • 배포 슬롯 준비


  • 해당 기능을 선택하고 슬롯의 + 버튼을 선택합니다.
  • 원하는 슬롯 이름을 입력하여 만듭니다.
  • 슬롯이 추가됩니다. 이제 준비 OK입니다.

  • 코드 수정 및 zip 파일 준비


  • 샘플 프로그램을 수정합니다. 이번에는 Hello, Java 라고 표시되는 곳을 Staging, Java 로 표시되도록 변경했습니다.
  • mvn clean package 명령을 실행합니다.
  • target/azure-functions/[Function App Name]/ 폴더로 이동하면 jar 파일이나 json 파일이 있으므로 local.settings.json 이외의 모든 폴더와 파일을 선택하여 zip 파일로 만듭니다.
    여기 좀 더 좋은 방법이 있으면 알려주세요 ...

  • AZ 명령으로 Zip 파일 배포


  • 다음 명령을 실행하여 ZIP 파일을 배포합니다.
  • az webapp deployment source config-zip -g [リソースグループ名] -n [Functionアプリ名] --slot [Slot名] --src [zipファイル名]
    
  • 동작을 확인합니다. 각각 액세스하면 다음과 같은 결과가 됩니다.
  • 프로덕션 환경 https://[Function App Name]/api/HttpTrigger-Java?name=java
  • 출력 결과 Hello, java

  • 스테이징 환경 https://[Function App Name]-stg.azurewebsites.net/api/HttpTrigger-Java?name=java
  • 출력 결과 Staging, java



  • 프로덕션과 스테이징 스왑


  • stg 슬롯에서 스왑을 선택합니다.
  • 소스가 stg이고 대상이 프로덕션용인지 확인하고 스왑 버튼을 누릅니다.

  • 동작 확인합니다. 방금전의 결과와는 반대가 되면 문제없이 스왑 할 수 있습니다.
  • 프로덕션 환경 https://[Function App Name]/api/HttpTrigger-Java?name=java
  • 출력 결과 Staging, java

  • 스테이징 환경 https://[Function App Name]-stg.azurewebsites.net/api/HttpTrigger-Java?name=java
  • 출력 결과 Hello, java



  • 요약



    수동으로하는 것은 귀찮습니다.
    CI에 올리거나 해서 자동화시키지 않으면 엄격할 것 같습니다.
    앞으로 maven 플러그인으로 슬롯에 배포할 수 있을 것으로 기대합니다.

    좋은 웹페이지 즐겨찾기