エクスポート (0) 印刷
すべて展開

クラウド サービスの作成

更新日: 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 プレフィックス名であり、サービスにアクセスするために使用されます。名前が使用できるかどうかを確認するには、Check Cloud Service Name Availability を使用します。

Label

必須です。クラウド サービスの Base 64 エンコード形式の識別子を指定します。識別子は半角 100 文字まで設定できます。ラベルは追跡の目的で使用できます。

Description

省略可能。クラウド サービスの説明を指定します。説明は 1024 文字まで指定できます。

Location

AffinityGroup が指定されていない場合は必須です。クラウド サービスが作成される場所を指定します。

Location または AffinityGroup を指定します。両方を指定しないでください。使用可能な場所を確認するには、List Locations を使用します。

AffinityGroup

Location が指定されていない場合は必須です。サブスクリプションに関連付けられている既存のアフィニティ グループの名前を指定します。Location または AffinityGroup を指定します。両方を指定しないでください。使用可能なアフィニティ グループを確認するには、List Affinity Groups を使用します。

Name

省略可能。クラウド サービスの拡張プロパティの名前を指定します。この名前は最大 64 文字まで指定できます。名前には英数字とアンダースコアのみが有効であり、名前の先頭にはアルファベットを使用する必要があります。各拡張プロパティには、定義済みの名前と値の両方が必要です。最大 50 個の拡張プロパティを定義できます。

Name 要素は、バージョン 2012-03-01 以上を使用している場合のみ使用できます。

省略可能。クラウド サービスの拡張プロパティの値を指定します。拡張プロパティの値には最大 255 文字まで使用できます。

Value 要素は、バージョン 2012-03-01 以上を使用している場合のみ使用できます。

応答には HTTP ステータス コードと一連の応答ヘッダーが含まれます。

操作が正常に終了すると、ステータス コード 201 (Created) が返されます。ステータス コードの詳細については、「サービス管理のステータス コードとエラー コード」を参照してください。

この操作の応答には次のヘッダーが含まれます。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。すべての標準ヘッダーは HTTP/1.1 プロトコル仕様に準拠しています。

 

応答ヘッダー 説明

x-ms-request-id

管理サービスに対して行われた要求を一意に識別する値。非同期操作の場合は、このヘッダーの値を指定して Get Operation Status を呼び出して、操作が正常に終了したか、失敗したか、または処理中かを確認できます。詳細については、「非同期サービス管理要求の追跡」を参照してください。

なし。

この操作の認証には、<subscription-id> で指定されたサブスクリプションに関連付けられている管理証明書を使用できます。詳細については、「サービス管理要求の認証」を参照してください。

次のリソースを使用して、新しいクラウド サービスを作成することもできます。

Next step:

クラウド サービスを作成したら、次の手順ではデプロイを作成します。詳細については、以下を参照してください。

次のコンソール アプリケーションの例は、新しいクラウド サービスの作成方法を示しています。次の変数の値は置き換えてください。

  • Thumbprint – サブスクリプションの管理証明書のサムプリントに置き換えます。

  • SubscriptionId – 管理ポータルから取得したサブスクリプション識別子に置き換えます。

  • ServiceName - 新しいクラウド サービス用に使用する名前に置き換えます。

  • Location - クラウド サービスを配置する地理的な場所に置き換えます。



    noteメモ
    List Locations を使用して、適切な場所を取得できます。


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));
    }
  }
}

表示:
© 2014 Microsoft