Azure Storage Emulator 5.8.0.0에서 Azure Durable Functions를 실행할 수 없는 문제를 해결하는 방법

Azure Durable Functions 응용 프로그램을 로컬로 개발할 때 Azure Storage Emulator를 사용하는 것이 좋습니다.
  • Durable Functions 확장 및 샘플 설치 - Azure | Microsoft Docs
  • Azure 스토리지 에뮬레이터를 사용한 개발 및 테스트 | Microsoft Docs

  • 오류가 발생했습니다.



    그러나 2018/11/18 현재 최신 Azure Storage Emulator 5.8.0.0에서는 Azure Durable Functions를 실행할 때 (디버그 포함) 다음과 같은 오류가 발생합니다.
    Azure Functions Core Tools (2.2.32 Commit hash: c5476ae629a0a438d6850e58eae1f5203c896cd6)
    Function Runtime Version: 2.0.12165.0
    [2018/11/17 6:32:07] Building host: startup suppressed:False, configuration suppressed: False
    [2018/11/17 6:32:07] Reading host configuration file 'D:\src\yuta\func\durable-functions-anti-pattarns\durable-functions-anti-pattarns\bin\Debug\netcoreapp2.1\host.json'
    [2018/11/17 6:32:07] Host configuration file read:
    [2018/11/17 6:32:07] {
    [2018/11/17 6:32:07]   "version": "2.0"
    [2018/11/17 6:32:07] }
    [2018/11/17 6:32:34] A host error has occurred
    [2018/11/17 6:32:34] Microsoft.WindowsAzure.Storage: Server encountered an internal error. Please try again after some time.
    

    본래라면 함수가 읽혀 실행 엔드포인트가 준비되는 것입니다만, 「Microsoft.WindowsAzure.Storage: Server encountered an internal error. Please try again after some time.」가 되어 멈춰 버립니다.



    원인



    이 문제와 관련하여 이미 Issue가 상승했습니다.

    Unable to run Durable Functions with Azure Storage Emulator v5.8 · Issue #474 · Azure/azure-functions-durable-extension

    I think this might possibly be a problem with extensions that use web hooks.

    Issue에는 이와 같이 기재되어 있어 Webhook, 즉 HTTP 트리거의 함수로 일어날 것이라고 하는 것.
    사실 내 환경에서도 HTTP 트리거 함수를 실행할 때 오류가 발생했습니다.

    대책



    Issue는 Open 상태이기 때문에 근본 해결에는 이르지 않았다고 생각합니다만, 잠정적인 대책이 제시되고 있습니다.local.settings.json 라는 로컬 개발시의 설정 파일에 "AzureWebJobsSecretStorageType": "files" 를 추가하는 것 같습니다.

    초기 상태의 local.settings.json에 추가한 상태는 아래와 같습니다.
    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "AzureWebJobsSecretStorageType": "files"
      }
    }
    

    좋은 웹페이지 즐겨찾기