programing

Visual Studio의 다른 포트에서 Azure Function 앱을 실행하는 방법

jooyons 2023. 5. 10. 20:51
반응형

Visual Studio의 다른 포트에서 Azure Function 앱을 실행하는 방법

로컬 호스트 포트를 로컬로 설정하는 중입니다.setting.json.Microsoft 문서 https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local 참조

파일은 아래와 같습니다.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "AzureWebJobsDashboard": ""   
  },
  "Host": {
    "LocalHttpPort": 7073
  }
}

솔루션을 실행/디버깅해도 VS는 기본 포트(7071)에서 앱을 호스팅합니다.

bin 인 나는 bin 렉를확다했인리토를 했습니다.local.setting.json파일이 위의 설정으로 거기에 도달하고 있습니다.Azure Function CLI 실행(func host startbin 디렉토리에서 포트 번호를 올바르게 읽습니다.

가 VS를 하지 않는 것 ."LocalHttpPort포트. 설정에 필요한 다른 변경 사항이 있습니까? Preview 프리는 Visual Studio 2017 있뷰니다습가 (2)

1 버전 1.2.1을 .Application arguments에서 Project Properties -> Debug저를 위해 일했습니다.

host start --port 7074 --nodeDebugPort 5860

업데이트: 포트를 변경하려는 경우 질문에 지정된 파일을 통해 포트를 설정할 필요가 없습니다.Thuc Nguyen 답변 확인

원답:

명령줄이 설정 파일보다 우선합니다. 문제는 VS가 명령줄의 명시적 포트를 전달한다는 것입니다.

해결 방법은 다음과 같습니다.project -> properties -> Debug 후 다그에 아래에.Application arguments알그를 지배합니다.입력할 수 있습니다.host start --pause-on-error

여기에 이미지 설명 입력

ravinsp에서 편집:

에 대한 업데이트.Net Core 2.0 기능 프로젝트:

전달해야 하는 명령줄 인수가 다릅니다.당신은 앞에 있는 dll로 가는 길을 지나가야 합니다.같이: 과같이다음과같:%AppData%\..\Local\Azure.Functions.V2.Cli\2.0.1-beta.22\Azure.Functions.Cli.dll host start --pause-on-errorVisual Studio에서 이 기능을 실행하고 프로세스 탐색기를 사용하여 닷넷할 명령줄 인수를 확인하면 직접 확인할 수 있습니다.exe 프로세스

편집: 단어

프로젝트 속성 업데이트 -> 다음으로 디버그

host start --port 7073 -- 오류 발생 시 실행

여기에 이미지 설명 입력

이 버전 기준:

Azure Functions Core Tools (3.0.2912 Commit hash: bfcbbe48ed6fdacdf9b309261ecc8093df3b83f2)
Function Runtime Version: 3.0.14287.0

▁have다만 하면 됩니다.start --port 7074 Arguments

에 대한 정답입니다.NET Core 2.0 /.NPM을 통해 Azure Functions Core Tools 2.x Runtime을 설치한 경우 Visual Studio 2017의 NET Standard 2.0 Azure Functions 프로젝트

저는 @ahmelsayed의 답변을 따랐고, 특히 .net core 2.0에 대한 @ravinsp의 의견을 따랐습니다.매우 도움이 되고 저를 올바른 방향으로 이끌었지만, 그들은 중요하고 직관적이지 않은 수정 없이 저를 위해 일하지 않았기 때문에 저는 새로운 답변을 덧붙입니다.

TL;DR;

NPM을 사용하여 Azure Functions Core Tools 2.x Runtime을 설치한 경우 Project/Properties/Debug/Application Arguments를 다음과 같이 설정해야 할 수 있습니다.

C:\Users\<myuserid>\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\func.dll host start --port 8888 --pause-on-error

긴 대답은 다음에 옵니다...

내 설정

이 연습을 수행하는 동안 설정은 완전히 최신 상태(쓰기 시점)이며 다음과 같습니다.

  • Visual Studio 2017 Professional: 15.6.2
  • Azure 함수 및 웹 작업 도구: 15.0.40215.0
  • Windows 10 10.0.16299 빌드 16299
  • Azure Functions 핵심 도구(Microsoft의 Azure Functions 개발 로컬 실행 문서에 따라 설치됨) 보고서(Git Bash):

    me@MYDESKTOP ~ $ func <snip/> Azure Functions Core Tools (2.0.1-beta.24) Function Runtime Version: 2.0.11587.0

fwiw, Azure의 이 Functions App에 대한 Functions App settings 탭은 다음과 같습니다.

Runtime version: 2.0.11587.0 (beta)

내 문제

함수 프로젝트를 실행할 때(응용 프로그램 인수 없음) 콘솔 출력에 다음과 같이 표시됩니다.

[17/03/2018 21:06:38] Starting Host (HostId=MYMACHINE, Version=2.0.11353.0, ProcessId=<snip/>
Listening on http://localhost:7071/

이것 자체는 문제가 되지 않을 수도 있지만, "내 기계에서 작업하고 zure에 게시할 때 실패" 유형 문제가 발생하기 때문에 로컬 실행이 zure와 동일한 기능을 사용하는지 확인하고 싶습니다(예: 위의 설정 참고 사항에 따라 실행/해야 하는 2.0.1157.0).

@ravinsp의 지시에 따라 C 드라이브에서 찾기를 실행하여 Azure를 찾습니다.기능들.CLI.dll - 하나뿐이며 위치는C:\Users\<myuserid>\AppData\Local\Azure.Functions.V2.Cli\2.0.1-beta\Azure.Functions.Cli.dll@ravinsp의 대답과 매우 일치하는 것 같습니다.

따라서 다음과 같은 프로젝트/속성/디버그/응용프로그램 인수를 추가합니다.

C:\Users\<myuserid>\AppData\Local\Azure.Functions.V2.Cli\2.0.1-beta\Azure.Functions.Cli.dll host start --port 8888 --pause-on-error

그러면 포트 8888을 가져오지만 런타임이 이상하게도 여전히 2.0.11353으로 보고되고 있습니다.

[17/03/2018 21:13:02] Starting Host (HostId=MYMACHINE, Version=2.0.11353.0, ProcessId=<snip/>
Listening on http://localhost:8888/

해결책

위와 같이 Git Bash에서 func를 실행하는 것이 2.0.1157.0의 런타임을 보여주는 것을 고려하여, 저는 시도했습니다.which func돌아온/c/Users/<myuserid>/AppData/Roaming/npm/func 저는 그것에 대해 고양이를 했고 간단히 말해서 저는 그것이 궁극적으로 달리고 있다는 것을 알 수 있었습니다.C:\Users\<myuserid>\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\func.exe그리고 그 같은 디렉토리에func.dll.

그래서 저는 다음과 같은 프로젝트/속성/디버그/응용 프로그램 인수를 시도했습니다.

C:\Users\<myuserid>\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\func.dll host start --port 8888 --pause-on-error

그리고 마침내 나는...

[17/03/2018 21:16:29] Starting Host (HostId=MYMACHINE, Version=2.0.11587.0, ProcessId=<snip/>
Listening on http://localhost:8888/

그리고 결정적으로, 애저에 출판할 때 제가 받았던 오류는 지역적으로도 나타나기 시작합니다.

자, 이제 실행 시간이 모두 일치합니다. 제 실제 버그를 수정할 시간입니다. :)

작업 방법

를 선택하고 디버그 설정으로 이동하여 설정합니다.

host start --port 8085 --nodeDebugPort 6890

승인된 답변을 사용했지만 두 함수 앱 모두 5858에 바인딩하려고 했기 때문에 디버거 포트가 바인딩을 시도할 때 오류가 발생했습니다.

프로젝트 설정에서 응용 프로그램 인수에 속성을 하나 더 추가했으며 내 인수는 다음과 같습니다.

host start --pause-on-error --nodeDebugPort 5860

옵션을 단추로 하고 MacOS 용 Visual Studio를 합니다.Run -> Configurations -> Default를 입력합니다.host start --port 7073 --pause-on-error변수 필드에 입력합니다.

및 Function하여 Visual Studio 2022 및 Function v4에서 할 수 .launchSettings.json파일:

{
  "profiles": {
    "<functionapp project name>": {
      "commandName": "Project",
      "commandLineArgs": "--port 7137",
      "launchBrowser": false
    }
  }
}

사용자 업데이트할 수도 .
Properties > Debug > General > Open debug launch profiles UI: 여기에 이미지 설명 입력

이것이 내가 로컬에서 다른 포트를 사용하는 방법입니다.Intellij에서 실행하는 동안 settings.json 파일.다른 IDE도 사용할 수 있습니다. 로컬.settings.json은 모든 곳에서 작동합니다.

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "java"
  },
  "Host": {
    "LocalHttpPort": 7072
  },
  "ConnectionStrings": {}
}

VS 2022 및 "명령줄 인수"에서 다음을 사용합니다.네트워크 6개 작품: 시작 --포트 7074

언급URL : https://stackoverflow.com/questions/44976890/how-to-run-azure-function-app-on-a-different-port-in-visual-studio

반응형