VENDITE: 1-800-867-1389

Creazione di un servizio cloud

Aggiornamento: giugno 2015

Tramite l'operazione asincrona Create Cloud Service viene creato un nuovo servizio cloud in Microsoft Azure. Per altre informazioni sui servizi cloud e sul relativo utilizzo, vedere Cos'è un servizio cloud?.

Prima di eseguire questa operazione, è necessario creare una sottoscrizione e ottenere il relativo identificatore. Per altre informazioni sulla creazione di una sottoscrizione Azure, vedere la pagina Benvenuti in Microsoft Azure. È possibile ottenere l'identificatore di sottoscrizione nella pagina Impostazioni del portale di gestione. Creare e caricare un certificato di gestione per autorizzare l'operazione. Per altre informazioni, vedere Creare e caricare un certificato di gestione per Microsoft Azure.

La richiesta Create Cloud Service viene specificata come indicato di seguito. Sostituire <subscription-id> con l'ID sottoscrizione.

 

Metodo URI richiesta

POST

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

È necessario verificare che la richiesta effettuata al servizio di gestione sia sicura. Per altri dettagli, vedere Autenticazione di richieste di gestione dei servizi.

Nessuno.

La tabella seguente descrive le intestazioni delle richieste.

 

Intestazione della richiesta Descrizione

Content-Type

Obbligatorio. Impostare questa intestazione su application/xml.

x-ms-version

Obbligatorio. Specifica la versione dell'operazione da usare per questa richiesta. Il valore di questa intestazione deve essere impostato su 2010-10-28 o una versione successiva. Per altre informazioni sulle intestazioni di controllo delle versioni, vedere Controllo delle versioni di gestione del servizio.

Il formato del corpo della richiesta è il seguente:

<?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>
  <ReverseDnsFqdn>reverse-dns-fqdn</ReverseDnsFqdn>
</CreateHostedService>

Nella tabella indicata di seguito vengono descritti gli elementi del corpo della richiesta.

 

Nome elemento

Descrizione

ServiceName

Obbligatorio. Specifica il nome per il servizio cloud. Il nome deve essere univoco in Azure. Questo nome è il nome del prefisso DNS usato per accedere al servizio. Per verificare la disponibilità di un nome, è possibile usare Controllare la disponibilità del nome del servizio cloud.

Label

Obbligatorio. Specifica l'identificatore con codifica Base 64 del servizio cloud. L'identificatore può essere costituito da un massimo di 100 caratteri. L'etichetta può essere usata per motivi di rilevamento.

Descrizione

Facoltativo. Specifica la descrizione del servizio cloud. La descrizione può contenere fino a 1024 caratteri.

Location

Obbligatorio se AffinityGroup non viene specificato. Specifica la posizione in cui viene creato il servizio cloud.

È necessario specificare Location o AffinityGroup, ma non entrambi. Per visualizzare le posizioni disponibili, è possibile usare Elencare le posizioni.

AffinityGroup

Obbligatorio se Location non viene specificato. Specifica il nome di un gruppo di affinità esistente associato alla sottoscrizione. È necessario specificare Location o AffinityGroup, ma non entrambi. Per visualizzare i gruppi di affinità disponibili, è possibile usare Elencare i gruppi di affinità.

Nome

Facoltativo. Specifica il nome di una proprietà estesa del servizio cloud. Il nome può contenere un massimo di 64 caratteri, deve iniziare con una lettera e supporta unicamente i caratteri alfanumerici e i caratteri di sottolineatura. Ogni proprietà estesa deve contenere un nome e un valore definiti. È possibile definire un massimo di 50 proprietà estese.

L'elemento Name è disponibile solo se si usa la versione 2012-03-01 o una versione successiva.

Valore

Facoltativo. Specifica il valore di una proprietà estesa del servizio cloud. Il valore della proprietà estesa può avere una lunghezza massima di 255 caratteri.

L'elemento Value è disponibile solo se si usa la versione 2012-03-01 o una versione successiva.

ReverseDnsFqdn

Facoltativo. Specifica l'indirizzo DNS in cui l'indirizzo IP del servizio viene risolto quando viene sottoposto a query mediante una query DNS inversa.

L'elemento ReverseDnsFqdn è disponibile solo se si usa la versione 2014-06-01 o una versione successiva.

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Un'operazione completata correttamente restituisce il codice di stato 201 (Creato). Per informazioni sui codici di stato, vedere Codici di stato e di errore relativi alla gestione dei servizi.

La risposta per questa operazione include le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

 

Intestazione della risposta Descrizione

x-ms-request-id

Valore che identifica in modo univoco una richiesta effettuata nel servizio di gestione. Per un'operazione asincrona, è possibile chiamare Ottenere lo stato delle operazioni con il valore dell'intestazione per determinare se l'operazione è stata completata, ha avuto esito negativo o è ancora in corso.

Per creare un nuovo servizio cloud, è anche possibile usare le risorse seguenti:

Next step:

Dopo aver creato un servizio cloud, il passaggio successivo consiste nel creare una distribuzione. Per altre informazioni, vedere quanto segue:

Nell'esempio di applicazione console seguente viene illustrato come creare un nuovo servizio cloud. Sostituire i valori di variabili seguenti:

  • Thumbprint: con l'identificazione personale di un certificato di gestione nella sottoscrizione

  • SubscriptionId: con l'identificatore di sottoscrizione ottenuto dal portale di gestione

  • ServiceName: con il nome che si vuole usare per il nuovo servizio cloud

  • Location: con la posizione geografica in cui si desidera posizionare il servizio cloud



    noteNota
    È possibile usare List Locations per ottenere la posizione appropriata.


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

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2015 Microsoft