Azure 함수, 신호기 및 정적 HTML을 사용하여 서버 없는 상태 페이지 만들기

본문은 #25DaysOfServerless의 일부분이다.12월 내내 마이크로소프트 클라우드 지지자들은 매일 새로운 도전을 발표한다.icrosoft Azure에서 지원하는 방법Serverless functions에 대해 자세히 알아보십시오.

#25Days OfServerless 도전 8일차


사악한 그린치가 세계의 모든 서버를 훔쳐갔으니, 우리는 많은 국가와 상황을 방문하여 오류를 바로잡아야 한다.
...
오늘 우리는 북극에 와서 전 세계 선물 기부 업무, 산타클로스 작업실을 맡았습니다!
기술이 항상 완벽한 것은 아니다.사고와 정전은 산타클로스에게도 마찬가지다.문제가 발생하면 서비스 중단의 현재 상태를 전 세계 시청자들에게 전달하는 방법이 필요합니다.상태 페이지 솔루션.
산타클로스와 그의 팀은 성공적인 크리스마스 아침 행사에 참여한 모든 사람들에게 서비스가 중단된 상태를 보고하는 방법을 필요로 한다.간략한 버전을 볼 수 있습니다. 그 중에서 많은 서비스의 상태가 방송됩니다.
간단하게 말하자면, 우리는 시스템(루돌프 안내 및 인도)의 현재'상태'를 다음과 같은 정보 업데이트로 설정하여 다른 사람에게 알릴 수 있기를 희망한다.

  • 질문 하나 (서비스 중단/오프라인)

  • 문제 해결(서비스 복구/온라인)

  • 여전히 조사 중(추가 업데이트 대기 중)
  • 업데이트된 로그도 표시됩니다.이렇게 하면 사람들이 발생하는 일을 쉽게 이해할 수 있다.
    status.azure.com

    Image credit:


    솔루션


    우리는 브라우저를 자동으로 새로 고침/다시 불러올 수 있도록 , Azure Function, 전송된 웹 훅 및 static HTML website 을 사용하여 이 문제를 해결할 수 있다.

    신호기 사용 기술


    이 해결 방안의 배후의 뇌는 를 통해 촉발된 것이다.
    이 함수는 인덱스를 수정합니다.html 파일은'웹 서버'에 저장되고 Azure가 저장하는 서버 없는 SMB 파일 공유로 서비스를 제공합니다.
    사용자는 open, update, close 채팅 채널에서 상태 업데이트를 호출할 수 있다.
    사이트 파일 외에 Azure Function (running Node.js) 을 사용하여 각 상태가 업데이트된 기록을 저장할 것이다.
    outgoing webhook (from Microsoft Teams) 클라이언트 새로 고침을 관리하여 HTML의 변경 사항을 최종 사용자 상호 작용 없이 바로 볼 수 있도록 합니다.
    Application Insights는 솔루션의 조작, 행위 및 사용에 대한 관찰성을 제공하여 고가용성과 신뢰할 수 있는 시스템을 구축하는 "최고의 실천"입니다.이것은 우리가 어떠한 상태 페이지 해결 방안에서 기대하는 것이다.
    Azure Table
    SignalR

    Image credit:


    ( )

    선결 조건


    다음 서비스가 있는 계정이 필요합니다.
  • Click here to see it in action
  • Microsoft Azure 배포 지침


    1. Microsoft Teams "Azure에 배포"단추를 포함하여 즉시 업무 배치에 투입할 수 있습니다.무료 Azure 계정 하나만 있으면 돼요.
    파란색 단추는 이 해결 방안에 필요한 모든 자원을 선택한 자원 그룹과 Azure 구역에 배치합니다.선택한 이름은 상태 페이지를 보는 URL과 업데이트를 트리거하는 전송 URL도 결정합니다.배치가 완료되면 2단계를 계속 수행합니다.
    2. Azure 포털에서 스토리지 계정을 열고 statuses라는 테이블을 추가합니다.속성을 설정하거나 기록을 추가할 필요가 없습니다.

    3. 기능 응용 프로그램으로 이동하여 teams-webhook 기능을 엽니다.함수 URL 가져오기를 클릭하고 URL을 복사합니다.
    4. 함수의 URL을 새 탭에서 엽니다.상태 페이지입니다. 업데이트되면 자동으로 변경됩니다.다음 단계에서 사용할 함수 URL 가져오기와 다릅니다.
    Check out my solution on Github
    5. Microsoft 팀을 열고 로봇을 만들 팀의 응용 프로그램 페이지로 이동합니다.전송 웹 훅 만들기를 누르십시오.
  • StatusPage을 로봇 이름(현재는 하드코딩)으로 사용합니다.
  • 함수 URL을 붙여넣고 설명을 입력하고 만들기 버튼을 누릅니다.
  • You will be prompted with a secret code for validating webhook calls from Teams. We currently do not use this. Close the dialog box.



    6. Microsoft 팀에서 로봇을 호출하기 위해 @StatusPage 을 입력하고 open We are experiencing a problem. Standby for more information 을 입력하여 상태 페이지를 업데이트합니다.
    사용 가능한 명령은 다음과 같습니다.
            @StatusPage open [message]
            @StatusPage update [message]
            @StatusPage close [message]
            @StatusPage help`
    
    이 솔루션은 Microsoft Ignite the Tour를 위한 스테이지 프레젠테이션을 기반으로 합니다.
    전체 프레젠테이션에 대한 자세한 내용은 ""에 대한 재구매 계약을 참조하십시오.이 모든 것을 현실로 만들어 주셔서 감사합니다.

    Image credit:


    너는 또 어떤 방법으로 이 문제를 해결할 수 있니?다음 댓글에 해결 방안을 추가합니다!
    이 문제에 대처하기 위해 자신만의 해결 방안을 제출하시겠습니까?
    해결 방안이 생기면OPS20 - Responding To Incidents.
    만약 해결 방안이 심사할 코드나 저장소와 관련이 없다면, 짧은 동영상을 녹음해서 문제 설명의 링크로 제출하십시오.해결 방안이 어떤 도전에 직면하고 있는지 우리에게 반드시 알려 주십시오.
    우리는 네가 무엇을 하는지 보고 매우 기뻤다.당신은 무슨 의견이나 문제가 있습니까?다음 설명 영역에 추가합니다.
    우리가 서버 없는 25일을 축하할 때, 12월 하루 종일 서프라이즈에 관심을 가져 주십시오.우리가 도전과 해결 방안을 제공했기 때문에 dev.to를 계속 주목해 주십시오!Anthony Chu 도전을 맞이할 준비!

    좋은 웹페이지 즐겨찾기