영업: 1-800-867-1380

클라우드 서비스 만들기

업데이트 날짜: 2014년 4월

Create Cloud Service 작업은 Windows Azure에서 새 클라우드 서비스를 만듭니다. 클라우드 서비스 및 클라우드 서비스 사용 방법에 대한 자세한 내용은 클라우드 서비스란?을 참조하십시오.

이 작업을 실행하려면 먼저 구독을 만들고 구독 식별자를 얻어야 합니다. Windows Azure 구독 만들기에 대한 자세한 내용은 Windows Azure 시작을 참조하십시오. 구독 식별자는 Windows Azure 관리 포털의 설정 페이지에서 가져올 수 있습니다. 작업 권한을 부여하기 위한 관리 인증서를 만들고 업로드합니다. 자세한 내용은 Windows Azure에 대한 관리 인증서 만들기 및 업로드를 참조하십시오.

다음과 같이 Create Cloud Service 요청을 지정합니다. <subscription-id>를 구독 ID로 바꾸십시오. 이 작업에는 HTTP 버전 1.1이 사용됩니다.

 

메서드 요청 URI

POST

https://management.core.windows.net/<subscription-id>/services/hostedservices

다음 표에서는 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Content-Type

필수 사항입니다. 이 헤더를 application/xml로 설정합니다.

x-ms-version

필수 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 이 헤더의 값은 2010-10-28 이상으로 설정해야 합니다. 버전 관리 헤더에 대한 자세한 내용은 서비스 관리 버전 관리를 참조하십시오.

요청 본문의 형식은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<CreateHostedService xmlns="http://schemas.microsoft.com/windowsazure">
  <ServiceName>name-of-cloud-service</ServiceName>
  <Label>base64-encoded-label-of-cloud-service</Label>
  <Description>description-of-cloud-service</Description>
  <Location>location-of-cloud-service</Location>
  <AffinityGroup>name-of-affinity-group</AffinityGroup>
  <ExtendedProperties>
    <ExtendedProperty>
      <Name>name-of-property</Name>
      <Value>value-of-property</Value>
    </ExtendedProperty>
  </ExtendedProperties>
</CreateHostedService>
Important중요
요청 본문에서 요소의 순서는 매우 중요합니다. 요소가 필요한 경우 위에 표시된 순서대로 XML에 표시되어야 합니다.

다음 표에서는 요청 본문의 주요 요소에 대해 설명합니다.

 

요소 이름

설명

ServiceName

필수 사항. 클라우드 서비스의 이름을 지정합니다. 이 이름은 Windows Azure 내에서 고유해야 합니다. 이 이름은 DNS 접두사 이름이며 서비스에 액세스하는 데 사용됩니다. 이름의 가용성을 확인하려면 클라우드 서비스 이름 가용성 확인을 참조하십시오.

Label

필수 사항. Base-64로 인코딩된 클라우드 서비스의 식별자를 지정합니다. 식별자는 최대 100자까지 지정할 수 있습니다. 레이블은 추적용으로 사용할 수 있습니다.

Description

선택 사항. 클라우드 서비스의 설명을 지정합니다. 설명은 최대 1024자까지 지정할 수 있습니다.

Location

AffinityGroup이 지정되지 않은 경우 필수 사항입니다. 클라우드 서비스가 생성되는 위치를 지정합니다.

Location 또는 AffinityGroup 중 하나만 지정해야 합니다. 사용 가능한 위치를 확인하려면 위치 나열을 참조하십시오.

AffinityGroup

Location이 지정되지 않은 경우 필수 사항입니다. 구독에 연결된 기존 선호도 그룹의 이름을 지정합니다. Location 또는 AffinityGroup 중 하나만 지정해야 합니다. 사용 가능한 선호도 그룹을 보려면 선호도 그룹 나열을 참조하십시오.

Name

선택 사항. 확장 클라우드 서비스 속성의 이름을 지정합니다. 이름은 최대 64자일 수 있으며, 영숫자와 밑줄만 포함할 수 있으며, 문자로 시작해야 합니다. 각 확장 속성에는 정의된 이름과 값이 모두 있어야 합니다. 확장 속성은 50개까지 정의할 수 있습니다.

Name 요소는 버전 2012-03-01 이후인 경우에만 사용할 수 있습니다.

Value

선택 사항입니다. 확장 클라우드 서비스 속성의 값을 지정합니다. 확장 속성 값은 255자까지 가능합니다.

Value 요소는 버전 2012-03-01 이후인 경우에만 사용할 수 있습니다.

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

작업이 성공하면 상태 코드 201(만들어짐)이 반환됩니다. 상태 코드에 대한 자세한 내용은 서비스 관리 상태 및 오류 코드를 참조하십시오.

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 따릅니다.

 

응답 헤더 설명

x-ms-request-id

관리 서비스에 대해 수행된 요청을 고유하게 식별하는 값입니다. 비동기 작업의 경우 헤더 값과 함께 작업 상태 가져오기를 호출하여 작업이 완료되었는지, 실패했는지, 계속 진행 중인지 여부를 확인할 수 있습니다. 자세한 내용은 비동기 서비스 관리 요청 추적을 참조하십시오.

<subscription-id>로 지정된 구독에 연결된 관리 인증서를 사용하여 이 작업을 인증할 수 있습니다. 자세한 내용은 서비스 관리 요청 인증을 참조하십시오.

새 클라우드 서비스 만들기를 위한 다음과 같은 리소스를 참조할 수도 있습니다.

Next step:

클라우드 서비스를 만든 후 다음 단계는 배포를 만드는 것입니다. 자세한 내용은 다음 항목을 참조하십시오.

다음 콘솔 응용 프로그램 예제에서는 새 클라우드 서비스를 만드는 방법을 보여줍니다. 다음 변수 값을 바꿉니다.

  • Thumbprint – 구독의 관리 인증서 지문으로 바꿉니다.

  • SubscriptionId – 관리 포털에서 가져온 구독 식별자로 바꿉니다.

  • ServiceName – 새 클라우드 서비스에 사용하려는 이름으로 바꿉니다.

  • Location – 클라우드 서비스를 배치하려는 지리적 위치로 바꿉니다.



    note참고
    use 목록 위치를 사용해서 적합한 위치를 얻을 수 있습니다.


using System;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Text;
using System.Security.Cryptography.X509Certificates;
using System.Net;
using System.IO;

namespace CreateCloudService
{
  class Program
  {
    private static XNamespace wa = "http://schemas.microsoft.com/windowsazure";
    private const string Thumbprint = "thumbprint-of-certificate";
    private const string SubscriptionId = "identifier-of-subscription";
    private const string ServiceName = "name-of-cloud-service";
    private const string Location = "location-of-cloud-service";
    private const string Version = "2013-08-01";

    // Gets or sets the certificate that matches the Thumbprint value.
    private static X509Certificate2 Certificate { get; set; }

    static void Main(string[] args)
    {
      Certificate = GetStoreCertificate(Thumbprint);

      // Create the URI for the request
      string uriFormat = "https://management.core.windows.net/{0}/services/hostedservices";
      Uri uri = new Uri(String.Format(uriFormat, SubscriptionId));

      // Base-64 encode the label of the cloud service
      byte[] bytes = System.Text.Encoding.UTF8.GetBytes(ServiceName);
      string base64Label = Convert.ToBase64String(bytes);

      // Create the request body
      XDocument requestBody = new XDocument(
        new XDeclaration("1.0", "UTF-8", "no"),
        new XElement(wa + "CreateHostedService",
          new XElement(wa + "ServiceName", ServiceName),
          new XElement(wa + "Label", base64Label),
          new XElement(wa + "Location", Location)));

      // Submit the request and get the response
      HttpWebResponse response = InvokeRequest(uri, "POST", requestBody);

      HttpStatusCode statusCode = response.StatusCode;
      Console.WriteLine("The status of the operation: {0}", statusCode.ToString());
      Console.Write("Press any key to continue:");
      Console.ReadKey();
    }

    // Set the request headers and submit the request
    private static HttpWebResponse InvokeRequest(
      Uri uri,
      string method,
      XDocument requestBody)
    {
      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
      request.Method = method;
      request.Headers.Add("x-ms-version", Version);
      request.ClientCertificates.Add(Certificate);
      request.ContentType = "application/xml";
           
      HttpWebResponse response;

      try
      {
        byte[] byteArray = null;
        byteArray = Encoding.UTF8.GetBytes(requestBody.ToString());
        Stream stream = request.GetRequestStream();
        stream.Write(byteArray, 0, byteArray.Length);
        stream.Flush();
        stream.Close();

        response = (HttpWebResponse)request.GetResponse();
      }
      catch (WebException ex)
      {
        response = (HttpWebResponse)ex.Response;
      }
      response.Close();
      return response;
    }

    // Gets the certificate matching the thumbprint from the local store.
    // Throws an ArgumentException if a matching certificate is not found.
    private static X509Certificate2 GetStoreCertificate(string thumbprint)
    {
      List<StoreLocation> locations = new List<StoreLocation>
      { 
        StoreLocation.CurrentUser, 
        StoreLocation.LocalMachine
      };

      foreach (var location in locations)
      {
        X509Store store = new X509Store("My", location);
        try
        {
          store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
          X509Certificate2Collection certificates = store.Certificates.Find(
            X509FindType.FindByThumbprint, thumbprint, false);
          if (certificates.Count == 1)
          {
            return certificates[0];
          }
        }
        finally
        {
          store.Close();
        }
      }
      throw new ArgumentException(string.Format(
        "A Certificate with Thumbprint '{0}' could not be located.",
        thumbprint));
    }
  }
}

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft