2016-10-25 7 views
0

Azure Management 라이브러리를 사용하여 Azure 웹 앱/Api 앱을 확장 할 수 있습니까? 기본적으로 스로틀 링을 처리하기 위해 웹 애플리케이션을 위아래로 확장하는 것을 구현하려고합니다. 따라서 C# 코드를 통해 웹 응용 프로그램과 API 응용 프로그램을 확장해야합니다. apprpriate 라이브러리/ReST API에 대한 모든 포인터?Azure 웹 사이트 배율

아래에 언급 된 답변을 통해 APP 서비스 계획을 확장하는 방법을 이해하지만, 내 APP 서비스의 webHostingPlanName을 찾을 수 없습니다. 나는 아래의 코드로 시도하고 호스팅 계획은 항상 null로 나옵니다.

 var regionName = "myregion"; 

     var credentials = GetCredentials(); 

     var websiteManagementClient = CloudContext.Clients.CreateWebSiteManagementClient(credentials); 

     var webSpaces = websiteManagementClient.WebSpaces.List(); 
     var webSpace = webSpaces.FirstOrDefault(x => x.GeoRegion == regionName); 
     if (webSpace == null) 
     { 
      throw new Exception(string.Format("No webspace for region {0} found", regionName)); 
     } 

     var webHostingPlans = websiteManagementClient.WebHostingPlans.List(webSpace.Name); 
     var webHostingPlan = webHostingPlans.FirstOrDefault();// this is null always, I know an APP service exists in this region 
+0

가능한 복제 [위아래 WebAPI와 나머지 API의 푸른 클라우드 서비스를 확장 할 수있는 방법] (http : // stackoverflow.com/questions/19197445/how-to-scale-azure-cloud-service-up-and-down-from-rest-api-with-webapi) –

답변

1

예, 우리는 확장 할 Microsoft.WindowsAzure.Management.Websites 라이브러리를 사용하여 웹 애플리케이션의 다운 할 수 있습니다. 방법을 사용하여 WebSiteManagementClient.WebHostingPlans.UpdateAsync(webspaceName, webHostingPlanName, webHostingPlanUpdateParameters)을 구현하십시오.

나는 이것을하기 위해 데모를했다. 다음은 내 세부 단계입니다.

1. link에서 얻을 수있는 Microsoft.WindowsAzure.Management.WebSites를 설치하십시오.

2. 웹 사이트 관리 클라이언트 개체을 만듭니다.

cert를 사용하여 websitemagement 클라이언트를 만들었습니다.

  • VS를 설치 한 후 VS 폴더 아래에있는 makecert.exe로 인증서를 만듭니다.

enter image description here

  • 업로드
    makecert -sky exchange -r -n "CN=[CertificateName]" -pe -a sha1 -len 2048 -ss My "[CertificateName].cer 
    
  • . 푸른 포털에 인증서 파일은 4.Construct에게 WebsiteManagementClient 객체

      public static X509Certificate2 GetCert(string thumbprint) 
        { 
    
         X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
         certStore.Open(OpenFlags.ReadOnly); 
        X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); 
         if (certCollection.Count <= 0) return null; 
         X509Certificate2 cert = certCollection[0]; 
         return cert; 
        } 
    

    var cert = GetCert(string thumbprint) var subscriptionId ="Your subscriptionId" var webSiteManagementClient = new WebSiteManagementClient(new CertificateCloudCredentials(subscriptionId, cert));

    에게 WebHostingPlanUpdateParameters를 생성하는 코드를 사용하여 지문

enter image description here 3.를 얻을

코드

client.WebHostingPlans.UpdateAsync(webspaceName, webHostingPlanName, webHostingPlanUpdateParameters); 

주와 753,583,210

5.Update WebHostingPlans : 당신은 푸른에서 프로젝트를 실행하려고합니다. 문서 Using Certificates in Azure Websites Applications을 참조하십시오. 인증서의 지문에 설정된 값 이름 WEBSITE_LOAD_CERTIFICATES 설정 응용 프로그램을 추가하면 웹 애플리케이션에 액세스 할 수 있도록합니다

+0

스케일 아웃이 가능합니까? 또는 위아래로만 확장 할 수 있습니까? – Purbasha

+0

@ Purbasha 스케일 아웃과 스케일 업 모두에 사용할 수 있습니다. SKU 및 WorkerSize는 크기 조정에 사용됩니다. NumberOfWorkers는 크기 조정에 사용됩니다. 그러나 SKU에는 가치 프리미엄이 없습니다. 프리미엄 가격 등급으로 App 서비스 계획을 확장하려는 경우 미리보기에서 [새 도서관] (https://www.nuget.org/packages/Microsoft.Azure.Management.WebSites)을 사용해보십시오. –

+0

내 APP 서비스의 webHostingPlanName을 찾을 수 없습니다. 나는 아래의 코드로 시도해 보았고, 호스팅 계획은 언제나 null이되었다. – Purbasha