Criar serviço de nuvem

 

O Create Cloud Service operação assíncrona cria um novo serviço de nuvem no Microsoft Azure. Para obter mais informações sobre os serviços de nuvem e como usá-los, consulte o que é um serviço de nuvem?.

Antes de executar essa operação, você deverá criar uma assinatura e obter o identificador da assinatura. Para obter mais informações sobre como criar uma assinatura do Azure, consulte Bem-vindo ao Microsoft Azure. É possível obter o identificador de assinatura na página de Configurações do Portal de Gerenciamento Criar e carregar um certificado de gerenciamento para autorizar a operação. Para obter mais informações, consulte criar e carregar um certificado de gerenciamento do Microsoft Azure.

O Create Cloud Service solicitação for especificada como a seguir. Substitua <subscription-id> pela sua ID de assinatura.

Método

URI de solicitação

POST

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

Verifique se a solicitação feita ao serviço de gerenciamento é segura. Para obter mais detalhes, consulte solicitações de gerenciamento de serviço de autenticação.

A tabela a seguir descreve os cabeçalhos da solicitação.

Cabeçalho de solicitação

Descrição

Content-Type

Obrigatório. Defina este cabeçalho como aplicativo/xml.

x-ms-version

Obrigatório. Especifica a versão da operação a ser usada para esta solicitação. O valor deste cabeçalho deve ser definido como 2010-10-28 ou superior. Para obter mais informações sobre cabeçalhos de controle de versão, consulte o controle de versão do serviço de gerenciamento.

Formato do corpo da solicitação:

<?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>

A tabela a seguir descreve os elementos do corpo da solicitação.

Nome do elemento

Descrição

ServiceName

Obrigatório. Especifica o nome para o serviço de nuvem. Esse nome deve ser exclusivo no Azure. Esse nome é o nome do prefixo DNS que é usado para acessar o serviço. Para verificar a disponibilidade de um nome, você pode usar Verificar disponibilidade de nome de serviço de nuvem.

Rótulo

Obrigatório. Especifica o identificador codificado em base 64 do serviço de nuvem. O identificador pode ter até 100 caracteres. O rótulo pode ser usado para suas finalidades de acompanhamento.

Descrição

Opcional. Especifica a descrição do serviço de nuvem. A descrição pode ter até 1024 caracteres.

Local

Necessário se AffinityGroup não for especificado. Especifica o local em que o serviço de nuvem é criado.

Você deve especificar Location ou AffinityGroup, mas não ambos. Para ver os locais disponíveis, você pode usar Listar locais.

AffinityGroup

Necessário se Location não for especificado. Especifica o nome de um grupo de afinidade existente associado a essa assinatura. Você deve especificar Location ou AffinityGroup, mas não ambos. Para ver os grupos de afinidade disponíveis, você pode usar Listar grupos de afinidade.

Nome

Opcional. Especifica o nome de uma propriedade estendida do serviço de nuvem. O nome pode ter até 64 caracteres, somente os caracteres alfanuméricos e sublinhados são válidos no nome, e ele deve começar com uma letra. Cada propriedade estendida deve ter um nome e um valor definido. Você pode definir um máximo de 50 propriedades estendidas.

O Name elemento só está disponível com a versão 2012-03-01 ou superior.

Valor

Opcional. Especifica o valor de uma propriedade estendida do serviço de nuvem. O valor da propriedade estendida pode ter até 255 caracteres.

O Value elemento só está disponível com a versão 2012-03-01 ou superior.

ReverseDnsFqdn

Opcional. Especifica o endereço de DNS para o qual o endereço IP do serviço em nuvem resolve quando consultado usando uma consulta de DNS reversa.

O ReverseDnsFqdn elemento só está disponível com a versão 2014-06-01 ou superior.

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Uma operação bem-sucedida retorna o código de status 201 (Criado). Para obter informações sobre códigos de status, consulte Status do gerenciamento de serviço e códigos de erro.

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem a especificação de protocolo HTTP/1.1.

Cabeçalho de resposta

Descrição

x-ms-request-id

Um valor que identifica exclusivamente uma solicitação feita no serviço de gerenciamento. Para uma operação assíncrona, você pode chamar Obter status da operação com o valor do cabeçalho para determinar se a operação for concluída, falhou ou ainda está em andamento.

Você também pode usar os seguintes recursos para criar um novo serviço de nuvem:

Next step:

Depois de criar um serviço de nuvem, a próxima etapa será criar uma implantação. Para obter mais informações, consulte o seguinte:

O exemplo de aplicativo de console a seguir mostra como criar um novo serviço de nuvem. Substitua os seguintes valores de variáveis:

  • Impressão digital – com a impressão digital de um certificado de gerenciamento na sua assinatura

  • SubscriptionId – com o identificador de assinatura que você obteve no Portal de gerenciamento

  • ServiceName – com o nome que você deseja usar para o novo serviço de nuvem

  • Local – com a localização geográfica onde você deseja localizar o serviço de nuvem

    System_CAPS_noteObservação

    Você pode usar Listar locais para obter o local apropriado.


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