匯出 (0) 列印
全部展開

建立雲端服務

更新日期: 2014年4月

Create Cloud Service 作業會在 Windows Azure 中建立新的雲端服務。如需有關雲端服務及其運用方式的詳細資訊,請參閱什麼是雲端服務?

您必須先建立訂用帳戶並取得訂用帳戶識別碼,才能執行這項作業。如需有關建立 Windows Azure 訂用帳戶的詳細資訊,請參閱歡迎使用 Windows Azure。您可以從 Windows Azure 管理入口網站的 [設定] 頁面取得訂用帳戶識別碼。建立及上傳管理憑證以授權此作業。如需詳細資訊,請參閱建立及上傳 Windows Azure 的管理憑證

Create Cloud Service 要求的指定方式如下。請以您的訂用帳戶 ID 取代 <subscription-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 個字元。此標籤可讓您用來進行追蹤。

說明

(選擇性) 指定雲端服務的描述。描述的長度最多可達 1024 個字元。

位置

如果沒有指定 AffinityGroup,則為必要項。指定雲端服務建立所在的位置。

您必須指定 LocationAffinityGroup,但不能兩者並存。若要查看可用的位置,您可以使用 列出位置

AffinityGroup

如果沒有指定 Location,則為必要項。指定與訂用帳戶相關聯之現有同質群組的名稱。您必須指定 LocationAffinityGroup,但不能兩者並存。若要查看可用的同質群組,您可以使用 列出同質群組

名稱

(選擇性) 指定雲端服務擴充屬性的名稱。名稱的長度最多可達 64 個字元、只有英數字元和底線可用於名稱,而且名稱必須以字母當做開頭。每個擴充屬性都必須具有已定義的名稱和值。您最多可以定義 50 個擴充屬性。

必須使用 2012-03-01 版或更高版本,才能使用 Name 元素。

(選擇性) 指定雲端服務擴充屬性的值。擴充屬性值的長度最多可達 255 個字元。

必須使用 2012-03-01 版或更高版本,才能使用 Value 元素。

回應包括 HTTP 狀態碼和一組回應標頭。

成功的作業會傳回狀態碼 201 (已建立)。如需狀態碼的資訊,請參閱<服務管理狀態和錯誤碼>。

這項作業的回應包括下列標頭。回應也可能包括其他標準 HTTP 標頭。所有標準標頭都符合 HTTP/1.1 通訊協定規格

 

回應標頭 說明

x-ms-request-id

唯一識別對管理服務發出之要求的值。若為非同步作業,您可以使用標頭的值來呼叫 Get Operation Status,以便判斷作業已完成、失敗,還是仍在進行中。如需詳細資訊,請參閱<追蹤非同步服務管理要求>。

無。

<subscription-id> 指定之訂用帳戶相關聯的任何管理憑證都可用來驗證此作業。如需其他詳細資訊,請參閱<驗證服務管理要求>。

您也可以使用下列資源來建立新的雲端服務:

Next step:

建立了雲端服務之後,下一個步驟就是建立部署。如需詳細資訊,請參閱下列主題:

下列主控台應用程式範例示範如何建立新的雲端服務。請取代下列變數值:

  • Thumbprint – 以您訂用帳戶中之管理憑證的憑證指紋取代

  • SubscriptionId – 以您從管理入口網站取得的訂用帳戶識別碼取代

  • ServiceName – 以新的雲端服務所要使用的名稱取代

  • Location – 以雲端服務所在的地理位置取代



    note附註
    您可以使用列出位置取得適當的位置。


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

Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft