Azure App Service에 게시Publishing to Azure App Service

Visual Studio는 Python 웹앱을 직접 Azure App Service에 직접 게시할 수 있는 기능을 제공합니다.Visual Studio provides the capability to directly publish a Python web app directly to Azure App Service. Azure App Service에 게시하는 것은 서버에 필요한 파일을 복사하고, 웹 서버에 앱을 시작하는 방법을 지시하는 적절한 web.config 파일을 설정하는 것을 뜻합니다.Publishing to Azure App Service means copying the necessary files to the server and setting up an appropriate web.config file that instructs the web server how to launch your app.

게시 프로세스는 Visual Studio 2017과 Visual Studio 2015가 다릅니다.The publishing process differs between Visual Studio 2017 and Visual Studio 2015. 특히 Visual Studio 2015는 web.config 만들기를 비롯한 단계 중 일부를 자동화합니다. 단, 이 자동화로 인해 장기 유연성 및 제어에 제한이 있습니다.Specifically, Visual Studio 2015 automates some of the steps, including the creation of web.config, but this automation limits long-term flexibility and control. Visual Studio 2017은 더 많은 수동 단계가 필요하지만 Python 환경에서의 보다 정확한 제어를 제공합니다.Visual Studio 2017 requires more manual steps but provides more exact control over your Python environment. 두 옵션 모두 여기에 설명되어 있습니다.Both options are described here.

항목 내용:In this topic:

참고

Visual Studio 2015와 Visual Studio 2017 간 변경 사항에서 배경의 경우, 블로그 게시물을 Visual Studio 2017에서 Azure에 게시를 참조하세요.For background on the changes between Visual Studio 2015 and Visual Studio 2017, see the blog post, Publish to Azure in Visual Studio 2017.

필수 구성 요소Prerequisites

이 연습에서는 Bottle, Flask 또는 Django 프레임워크를 기반으로 하는 웹앱 프로젝트가 필요합니다.For this walkthrough you'll need a web app project based on the Bottle, Flask, or Django frameworks. 프로젝트가 아직 없거나 게시 프로세스를 사용해보려는 경우 다음과 같이 간단한 테스트 프로젝트를 만듭니다.If you don't yet have a project and would like to try the publishing process, create a simple test project as follows:

  1. Visual Studio에서 파일 > 새로 만들기 > 프로젝트를 선택하고, “Bottle”을 검색하여 Bottle 웹 프로젝트를 선택한 다음, 프로젝트에 사용할 이름 및 경로를 지정하고, 확인을 클릭합니다.In Visual Studio, select File > New > Project, search for "Bottle", select the Bottle Web Project, specify and name and a path for the project, click OK. (Bottle 템플릿은 Python 개발 작업에 포함됩니다. 설치를 참조하세요.)(The Bottle template is included with the Python development workload; see Installation.)

  2. 가상 환경에 설치 및 가상 환경에 대한 사용자의 기본 설정된 기준 인터프리터를 선택하여 지침에 따라 외부 패키지를 설치합니다.Follow the prompts to install external packages, selecting Install into a virtual environment and your preferred base interpreter for the virtual environment. 일반적으로 이 선택은 App Service에 설치된 Python의 버전과 일치합니다.You typically match this choice with the version of Python installed on App Service.

  3. F5 키를 누르거나 디버그 > 디버깅 시작을 선택하여 프로젝트를 로컬에서 테스트합니다.Test the project locally by pressing F5 or selecting Debug > Start Debugging.

Azure App Service 만들기Create an Azure App Service

Azure에 게시하려면 대상 App Service가 필요합니다.Publishing to Azure requires a target App Service. 이 목적의 경우 Azure 구독을 사용하여 App Service를 만들거나 임시 사이트를 사용할 수 있습니다.For this purpose you can create an App Service using an Azure subscription, or you can use a temporary site.

아직 구독이 없는 경우 전체 무료 Azure 계정으로 시작하세요. 여기에는 Azure 서비스에 대한 일반적인 크레딧이 포함됩니다.If you don't already have a subscription, start with a free full Azure account, which includes generous credits for Azure services. 또한 1년 동안 매달 $25 크레딧을 제공하는 Visual Studio Dev Essentials에 등록하는 것이 좋습니다.Also consider signing up for Visual Studio Dev Essentials, which gives you $25 credit every month for a full year.

Azure에서 사용자 계정을 확인하기 위해 신용 카드를 요청하나, 카드에 요금이 부과되지는 않습니다.Although Azure asks for a credit card to verify your account, the card will not be charged. 추가 요금이 발생하지 않는 무료 크레딧과 동일한 지출 한도를 설정할 수도 있습니다.You can also set a spending limit equal to your free credits to guarantee that no extra charges occur. 또한 Azure는 다음 섹션에 설명된 대로 간단한 테스트 앱에 이상적인 무료 App Service 계획 계층을 제공합니다.In addition, Azure provides a free App Service plan tier that's ideal for simple test apps as described in the next section.

구독 사용Using a subscription

활성 Azure 구독에서 다음과 같이 빈 웹앱을 사용하는 App Service를 만듭니다.With an active Azure subscription, create an App Service with an empty Web App as follows:

  1. portal.azure.com에 로그인합니다.Sign in at portal.azure.com.
  2. + 새로 만들기를 선택한 다음, 웹 + 모바일, 웹 앱을 차례로 선택합니다.Select +New, then select Web + Mobile followed by Web App.
  3. 웹앱에 대한 이름을 지정하고, 리소스 그룹을 “새로 만들기”로 둔 다음, Windows를 운영 체제로 선택합니다.Specify a name for the web app, leave Resource Group to "Create New", and choose Windows as the operating system.
  4. App Service 계획/위치를 선택하고, 새로 만들기를 선택한 다음, 이름 및 위치를 지정합니다.Select App service plan/location, select Create new, and specify a name and location. 그런 다음 가격 책정 계층을 선택하고, 아래로 스크롤하여 F1 무료 계획을 선택하고, 선택, 확인, 만들기를 차례로 선택합니다.Then select Pricing tier, scroll down to and select the F1 Free plan, press Select, followed by OK and then Create.
  5. (선택 사항) App Service를 만든 후에 게시 프로필 가져오기로 이동하여 선택하고, 파일을 로컬로 저장합니다.(Optional) Once the App Service has been created, navigate to it, select Get publish profile, and save the file locally.

임시 App Service 사용Using a temporary App Service

다음과 같이 Azure 구독이 필요하지 않는 임시 App Service를 만듭니다.Create a temporary App Service without needing an Azure subscription as follows:

  1. 브라우저를 try.azurewebsites.net로 엽니다.Open your browser to try.azurewebsites.net.
  2. 앱 유형에 Web App을 선택하고 다음을 선택합니다.Select Web App for the app type, then select Next.
  3. 빈 사이트, 만들기를 차례로 선택합니다.Select Empty Site, followed by Create.
  4. 선택한 소셜 로그인을 사용하여 로그인하면 잠시 후에 사이트가 표시된 URL에서 준비됩니다.Sign in with a social login of your choice, and after a short time your site is ready at the displayed URL.
  5. 게시 프로필 다운로드를 선택하고 .publishsettings 파일을 저장합니다. 이 파일을 나중에 사용할 수 있습니다.Select Download publishing profile and save the .publishsettings file, which you use later.

Azure App Service에서 Python 구성Configure Python on Azure App Service

(구독에서 또는 무료 사이트에서) 실행 중인 빈 웹앱을 사용하는 App Service가 있으면, Azure App Service에서 Python 관리에 설명된 대로 선택한 Python 버전을 설치합니다.Once you have an App Service with an empty Web App running (either in your subscription or on a free site), install a chosen version of Python as described Managing Python on Azure App Service. Visual Studio 2017에서 게시하려면 해당 항목에 설명된 대로 사이트 확장과 함께 설치된 Python 인터프리터에 대한 정확한 경로를 기록합니다.For publishing from Visual Studio 2017, record the exact path to the Python interpreter installed with the site extension as described in that topic.

또한 원하는 경우 이 지침의 프로세스를 사용하여 bottle 패키지를 설치할 수 있습니다. 해당 패키지는 이 연습 중 다른 단계의 일부로 설치됩니다.If desired, you can also install the bottle package using the process in those instructions, as that package is installed as part of other steps in this walkthrough.

App Service에 게시 - Visual Studio 2017Publish to App Service - Visual Studio 2017

Visual Studio 2017에서 Azure App Service에 게시하려면 프로젝트의 복사본 파일만 서버에 복사합니다.Publishing to Azure App Service from Visual Studio 2017 copies only the files in your project to the server. 따라서 서버 환경을 구성하는 데 필요한 파일을 만들어야 합니다.It's necessary, therefore, to create the necessary files to configure the server environment.

  1. Visual Studio 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가 > 새 항목...*을 선택합니다. 나타나는 대화 상자에서 “Azure web.config(빠른 CGI)” 템플릿을 선택하고 확인을 선택합니다.In Visual Studio **Solution Explorer, right-click the project and select *Add > New Item.... In the dialog that appears, selecting the "Azure web.config (Fast CGI)" template and select OK. 그러면 프로젝트 루트에 web.config 파일이 만들어집니다.This creates a web.config file in your project root.

  2. 경로가 서버의 Python 설치와 일치하도록 web.configPythonHandler 항목을 수정합니다.Modify the PythonHandler entry in web.config so that the path matches the Python installation on the server. 예를 들어 Python 3.6.1 x64의 경우 항목은 다음과 같아야 합니다.For example, for Python 3.6.1 x64 the entry should appear as follows:

    <system.webServer>
      <handlers>
        <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
            scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py"
            resourceType="Unspecified" requireAccess="Script"/>
      </handlers>
    </system.webServer>
    
  3. web.configWSGI_HANDLER 항목을 사용 중인 프레임워크에 적절하게 설정합니다.Set the WSGI_HANDLER entry in web.config as appropriate for the framework you're using:

    • Bottle: 다음과 같이 app.wsgi_app 뒤에 괄호를 추가합니다.Bottle: add parentheses after app.wsgi_app as shown below. 이는 해당 개체가 변수가 아닌 함수이기 때문에 필요합니다(app.py 참조).This is necessary because that object is a function (see app.py) rather than a variable:

      <!-- Bottle apps only -->
      <add key="WSGI_HANDLER" value="app.wsgi_app()"/>
      
    • Flask: <project_name>이 프로젝트의 이름과 일치하는 <project_name>.app으로 WSGI_HANDLER 값을 변경합니다.Flask: Change the WSGI_HANDLER value to <project_name>.app where <project_name> matches the name of your project. runserver.pyfrom <project_name> import app 문을 살펴보면 정확한 식별자를 찾을 수 있습니다.You can find the exact identifer by looking at the from <project_name> import app statement in the runserver.py. 예를 들어 프로젝트 이름이 “FlaskAzurePublishExample”인 경우 항목은 다음과 같이 표시됩니다.For example, if the project is named "FlaskAzurePublishExample", the entry would appear as follows:

      <!-- Flask apps only: change the project name to match your app -->
      <add key="WSGI_HANDLER" value="FlaskAzurePublishExample.app"/>
      
    • Django: Django 앱에 대한 web.config에서 두 가지 사항을 변경해야 합니다.Django: Two changes are needed to web.config for Django apps. 먼저, WSGI_HANDLER 값을 django.core.wsgi.get_wsgi_application()으로 변경합니다(개체가 wsgi.py 파일에 있음).First, change the WSGI_HANDLER value to django.core.wsgi.get_wsgi_application() (the object is in the wsgi.py file):

      <!-- Django apps only -->
      <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()"/>
      

      둘째, DjangoAzurePublishExample을 사용자의 프로젝트 이름으로 대체하여 WSGI_HANDLER에 대한 아래 항목을 추가합니다.Second, add the following entry below the one for WSGI_HANDLER, replacing DjangoAzurePublishExample with the name of your project:

      <add key="DJANGO_SETTINGS_MODULE" value="DjangoAzurePublishExample.settings" />
      
  4. Django 앱만 해당: 프로젝트 이름이 일치하는 폴더에서 settings.py를 열고, 아래와 같이 ‘vspython-test-02.azurewebsites.net’을 사용자의 URL로 대체하여 사이트 URL 도메인을 ALLOWED_HOSTS에 추가합니다.Django apps only: In the folder that matches your project name, open settings.py and add your site URL domain to ALLOWED_HOSTS as shown below, replacing 'vspython-test-02.azurewebsites.net' with your URL, of course:

    # Change the URL to your specific site
    ALLOWED_HOSTS = ['vspython-test-02.azurewebsites.net']
    

    다음 오류에서 배열 결과에 사용자 URL을 추가하지 못했습니다. “DisallowedHost at / Invalid HTTP_HOST header: ‘<site URL>’Failure to add your URL to the array results in the error "DisallowedHost at / Invalid HTTP_HOST header: '<site URL>'. ‘<사이트 URL>’을 ALLOWED_HOSTS에 추가해야 할 수도 있습니다.”You may need to add '<site URL>' to ALLOWED_HOSTS."

  5. 솔루션 탐색기에서 이름이 사용자의 프로젝트와 동일한 폴더를 확장하고, static 폴더를 마우스 오른쪽 단추로 클릭하고, 추가 > 새 항목... 을 선택하고, “Azure 정적 파일 web.config” 템플릿을 선택하고, 확인을 선택합니다.In Solution Explorer, expand the folder named the same as your project, right-click the static folder, select Add > New Item..., select the "Azure static files web.config" template, and select OK. 그러면 해당 폴더에 대해 Python 프로세스를 비활성화하는 static 폴더에 web.config가 만들어집니다.This action creates another web.config in the static folder that disables Python processing for that folder. 이 구성은 Python 응용 프로그램을 사용하지 않고 기본 웹 서버에 정적 파일에 대한 요청을 보냅니다.This configuration sends requests for static files to the default web server rather than using the Python application.

  6. 프로젝트를 저장한 다음, Visual Studio 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.Save your project, then in Visual Studio Solution Explorer, right-click the project and select Publish.

  7. 표시되는 게시 탭에서 게시 대상을 선택합니다.In the Publish tab that appears, select the publishing target:

    a.a. 사용자의 Azure 구독: Microsoft Azure App Service를 선택한 다음, 기존 선택에 이어 게시를 선택합니다.Your own Azure subscription: select Microsoft Azure App Service, then Select Existing followed by Publish. 적절한 구독 및 App Service를 선택할 수 있는 대화 상자가 나타납니다.A dialog appears in which you can select the appropriate subscription and app service. App Service가 나타나지 않으면 임시 App Service에 대해 아래 설명된 대로 다운로드한 게시 프로필을 사용합니다.If the App Service doesn't appear, use the downloaded publishing profile as described below for a temporary APp Service.

    Azure 1단계, Visual Studio 2017, 기존 구독에 게시

    b.b. try.azurewebsites.net에서 임시 App Service를 사용하거나 게시 프로필을 사용해야 하는 경우 > 컨트롤을 선택하여 프로필 가져오기를 찾아, 해당 옵션을 선택한 다음, 게시를 선택합니다.If you're using a temporary App Service on try.azurewebsites.net, or otherwise need to use a publishing profile, select the > control to find Import profile, select that option, then select Publish. 그러면 이전에 다운로드한 .publishsettings 파일의 위치에 대한 메시지가 표시됩니다.This prompts for the location of the .publishsettings file downloaded earlier.

    Azure 1단계, Visual Studio 2017, 임시 App Service에 게시

  8. Visual Studio는 “웹 게시 활동” 창 및 게시 창에 게시 상태를 표시합니다.Visual Studio displays publishing status in a "Web Publish Activity" window and the Publish window. 게시가 완료되면 사이트 URL에 기본 브라우저가 열립니다.Once publishing is complete, the default browser opens on the site URL. 또한 URL은 게시 창에 표시됩니다.The URL is also shown in the Publish window.

  9. 브라우저가 열리면 “내부 서버 오류가 발생하여 페이지를 표시할 수 없습니다.”라는 메시지가 표시될 수 있습니다.When the browser opens, you may see the message, "The page cannot be displayed because an internal server error has occurred." 이 메시지는 서버에서 Python 환경이 완벽하게 구성되지 않았음을 나타내며, 이 경우 다음 단계를 수행합니다.This message indicates that your Python environment on the server is not fully configured, in which case do the following steps:

    a.a. Azure App Service에서 Python 관리를 다시 참조하여 적절한 Python 사이트 확장이 설치되어 있는지 확인합니다.Refer again to Managing Python on Azure App Service, making sure that you have an appropriate Python site extension installed.

    b.b. web.config 파일에서 Python 인터프리터에 대한 경로를 한 번 더 확인합니다.Double-check the path to the Python interpreter in your web.config file. 경로는 사용자가 선택한 사이트 확장의 설치 위치와 정확히 일치해야 합니다.The path must exactly match the install location of your chosen site extension.

    c.c. Kudu 콘솔을 사용하여 사용자 앱의 requirements.txt 파일에 나열되어 있는 모든 패키지를 업그레이드합니다. /home/python361x64와 같이 web.config에서 사용되는 동일한 Python 폴더로 이동하고, Kudu 콘솔 섹션에 설명된 대로 다음 명령을 실행합니다.Use the Kudu console to upgrade any packages listed in your app's requirements.txt file: navigate to the same Python folder that's used in web.config, such as /home/python361x64, and run the following command as described in the Kudu console section:

    python -m pip install --upgrade -r /home/site/wwwroot/requirements.txt
    

    이 명령을 실행할 때 사용 권한 오류가 표시되는 경우 App Service의 기본 Python 설치 중 하나의 폴더가 아닌 사이트 확장 폴더에서 명령을 실행하고 있는지 한 번 더 확인합니다.If you see permission errors when running this command, double-check that you're running the command in your site extension folder and not in the folder of one of App Service's default Python installations. 그러한 기본 환경은 수정할 수 없으므로 패키지 설치에 실패하게 됩니다.Because you can't modify those default environments, attempting to install packages will certainly fail.

    d.d. 자세한 오류 출력의 경우, 더 자세한 오류 출력을 제공하는 다음 줄을 <system.webServer> 노드 내 web.config에 추가합니다.For detailed error output, add the following line to web.config within the <system.webServer> node, which provides more detailed error output:

    <httpErrors errorMode="Detailed"></httpErrors>
    

    e.e. 새 패키지를 설치한 후 App Service를 다시 시작합니다.Try restarting the App Service after installing new packages. App Service는 web.config가 변경될 때마다 자동 다시 시작을 수행하므로 web.config를 변경하는 경우 다시 시작할 필요가 없습니다.A restart is not necessary when changing web.config, as App Service does an automatic restart whenever web.config changes.

    앱의 requirements.txt 파일을 변경하는 경우 다시 Kudu 콘솔을 사용하여 해당 파일에 현재 나열되어 있는 모든 패키지를 설치하도록 합니다.If you make any changes to your app's requirements.txt file, be sure to again use the Kudu console to install any packages that are now listed in that file.

  10. 서버 환경을 완전히 구성한 후 브라우저에서 페이지를 새로 고치면 웹앱이 표시됩니다.Once you've fully configured the server environment, refresh the page in the browser and the web app should appear.

    App Service에 Bottle, Flask 및 Django 앱 게시의 결과

App Service에 게시 - Visual Studio 2015Publishing to App Service - Visual Studio 2015

참고

이 프로세스의 짧은 동영상은 Visual Studio Python 자습서: 웹 사이트 빌드(youtube.com, 3분 10초)에서 찾을 수 있습니다.A short video of this process can be found on Visual Studio Python Tutorial: Building a Website (youtube.com, 3m10s).

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.In Solution Explorer, right-click the project select Publish.

  2. 게시 대화 상자에서 Microsoft Azure App Service를 선택합니다.In the Publish dialog, select Microsoft Azure App Service:

    Azure에 게시 1단계

  3. 대상을 선택합니다.Select a target:

    • Azure 구독이 있는 경우 Microsoft Azure App Service를 게시 대상으로 선택하고 다음 대화 상자에서 기존 App Service를 선택하거나 새로 만들기를 선택하여 새 계정을 만듭니다.If you have an Azure subscription, select Microsoft Azure App Service as the publishing target, then in the following dialog select an existing App Service or select New to create a new one.
    • try.azurewebsites.net에서 임시 사이트를 사용하는 경우 가져오기를 게시 대상으로 선택한 다음 사이트에서 다운로드한 .publishsettings 파일을 찾아보고 확인을 선택합니다.If you're using a temporary site from try.azurewebsites.net, select Import as the publishing target, then browse for the .publishsettings file downloaded from the site and select OK.
  4. App Service 세부 정보는 아래에서 게시 대화 상자의 연결 탭에 표시됩니다.The App Service details appear in the Publish dialog's Connection tab below.

    Azure에 게시 2단계

  5. 추가 설정을 검토하는 데 필요하면 다음 >을 선택합니다.Select Next > as needed to review additional settings. Azure에서 Python 코드를 원격으로 디버그하려는 경우 구성디버그로 설정해야 합니다.If you plan to remotely debug your Python code on Azure, you must set Configuration to Debug

  6. 게시를 선택합니다.Select Publish. 응용 프로그램을 Azure에 배포하면 해당 사이트에서 기본 브라우저가 열립니다.Once your application is deployed to Azure, your default browser opens on that site.

이 프로세스의 일환으로, Visual Studio는 다음 단계도 수행합니다.As part of this process, Visual Studio also does the following steps:

  • 앱의 wsgi_app 함수 및 App Service의 기본 Python 3.4 인터프리터에 대한 적절한 포인터를 포함하는 web.config 파일을 서버에 만듭니다.Create a web.config file on the server that contains appropriate pointers to the app's wsgi_app function and to App Service's default Python 3.4 interpreter.
  • 프로젝트의 static 폴더에서 파일에 대한 프로세스를 해제합니다(이에 대한 규칙은 web.config에 있음).Turn off processing for files in the project's static folder (rules for this are in web.config).
  • 가상 환경을 서버에 게시합니다.Publish the virtual environment to the server.
  • web.debug.config 파일 및 ptvsd 디버깅 도구를 추가하여 원격 디버깅을 활성화합니다.Add a web.debug.config file and the ptvsd debugging tools to enable remote debugging.

앞에서 설명한 대로 이러한 자동 단계는 게시 프로세스를 간소화하는 반면, Python 환경을 제어하기는 더 어려워집니다.As noted earlier, these automatic steps simplify the publishing process but make it more difficult to control the Python environment. 예를 들어 web.config 파일은 서버에서만 생성되지만 사용자의 프로젝트에는 추가되지 않습니다.For example, the web.config file is created only on the server but not added to your project. 또한 서버 구성에 의존하는 것이 아니라 개발 컴퓨터에서 전체 가상 환경을 복사하기 때문에 게시 프로세스에 시간이 더 걸릴 수 있습니다.The publishing process also takes longer because it's copying the whole virtual environment from your development computer rather than relying on the server configuration.

결국 자체 web.config 파일을 유지하거나 requirements.txt를 사용하여 서버에서 패키지를 직접 유지 관리하고자 할 수 있습니다.Eventually you may want to maintain your own web.config file and use requirements.txt to maintain packages on the server directly. 특히 requirements.txt를 사용하면 개발 및 서버 환경이 항상 일치함을 보증합니다.Using requirements.txt, in particular, guarantees that your development and server environments always match.

Azure App Service에서 원격 디버깅Remote debugging on Azure App Service

Visual Studio 2015에서 디버그 구성을 게시할 때 프로세스는 자동으로 web.debug.config 파일을 자동으로 만들고 필요한 디버깅 도구가 포함된 ptvsd 폴더를 추가합니다.When you publish a Debug configuration from Visual Studio 2015, the process automatically creates a web.debug.config file and adds a ptvsd folder containing the necessary debugging tools.

Visual Studio 2017에서는 대신 이러한 구성 요소를 직접 프로젝트에 추가합니다.With Visual Studio 2017, you instead add these components directly to the project. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고, 추가 > 새 항목...을 선택하고, “Azure 원격 디버깅 web.config” 템플릿을 선택합니다.Right-click the project in Solution Explorer, select Add > New Item..., and select the "Azure Remote debugging web.config" template. 디버깅 web.debug.config 파일 및 ptvsd 도구 폴더가 프로젝트에 표시됩니다.A debugging web.debug.config file and the ptvsd tool folder appear in your project.

이러한 파일이 서버에 배포되면(Visual Studio 2015에서는 자동으로, Visual Studio 2017에서는 다음 게시 단계에서) Azure 원격 디버깅에 대한 지침을 수행할 수 있습니다.Once these files are deployed to the server (automatically with Visual Studio 2015; on your next publish with Visual Studio 2017), you can follow the instructions for Azure Remote Debugging.