Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Crear Servicios en la nube

 

La Create Cloud Service operación asincrónica, crea un nuevo servicio de nube de Microsoft Azure. Para obtener más información acerca de los servicios en la nube y cómo utilizarlas, vea Qué es un servicio de nube?.

Antes de ejecutar esta operación, debe crear una suscripción y obtener el identificador de la suscripción. Para obtener más información acerca de cómo crear una suscripción de Azure, consulte Bienvenido a Microsoft Azure. Puede obtener el identificador de la suscripción en la página Configuración del Portal de administración. Crear y cargar un certificado de administración para autorizar la operación. Para obtener más información, vea crear y cargar un certificado de administración de Microsoft Azure.

El Create Cloud Service solicitud se especifica como sigue. Reemplace <subscription-id> con el identificador de suscripción.

Método

URI de solicitud

POST

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

Debe asegurarse de que la solicitud que se realice al servicio de administración sea segura. Para obtener más información, vea autenticar solicitudes de administración de servicios.

La tabla siguiente describe los encabezados de solicitud.

Encabezado de solicitud

Descripción

Content-Type

Requerido. Establezca este encabezado en aplicación/xml.

x-ms-version

Requerido. Especifica la versión de la operación que se utiliza para esta solicitud. El valor de este encabezado debe establecerse en 2010-10-28 o superior. Para obtener más información acerca de los encabezados de control de versiones, vea versiones de administración de servicios.

El formato del cuerpo de la solicitud es el siguiente:

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

En la tabla siguiente se describen los elementos del cuerpo de la solicitud.

Nombre de elemento

Descripción

ServiceName

Requerido. Especifica el nombre del servicio en la nube. Este nombre debe ser único dentro de Azure. Este nombre es el nombre del prefijo DNS que se utiliza para tener acceso al servicio. Para comprobar la disponibilidad de un nombre, puede usar Comprobar disponibilidad del nombre del servicio de nube.

Etiqueta

Requerido. Especifica el identificador codificado en base 64 del servicio en la nube. El identificador puede tener una longitud máxima de 100 caracteres. La etiqueta se puede usar con fines de seguimiento.

Descripción

Opcional. Especifica la descripción del servicio en la nube. La descripción puede contener un máximo de 1024 caracteres.

Ubicación

Requerido si AffinityGroup no se ha especificado. Especifica la ubicación en la que se crea el servicio en la nube.

Debe especificar Location o AffinityGroup, pero no ambos. Para ver las ubicaciones disponibles, puede utilizar Enumerar ubicaciones.

AffinityGroup

Requerido si Location no se ha especificado. Especifica el nombre de un grupo de afinidad existente que está asociado a la suscripción. Debe especificar Location o AffinityGroup, pero no ambos. Para ver los grupos de afinidad disponibles, puede utilizar Enumerar grupos de afinidad.

Name

Opcional. Especifica el nombre de una propiedad de servicio en la nube extendida. El nombre puede tener una longitud máxima de 64 caracteres, solo son válidos los caracteres alfanuméricos y caracteres de subrayado, y debe comenzar por una letra. Cada propiedad extendida debe tener tanto un nombre como un valor definidos. Puede definir 50 propiedades extendidas, como máximo.

El Name elemento sólo está disponible con la versión 2012-03-01 o posterior.

Valor

Opcional. Especifica el valor de una propiedad de servicio en la nube extendida. El valor de la propiedad extendida puede tener una longitud máxima de 255 caracteres.

El Value elemento sólo está disponible con la versión 2012-03-01 o posterior.

ReverseDnsFqdn

Opcional. Especifica la dirección DNS en la que se resuelve la dirección IP del servicio en la nube cuando se envía una consulta mediante una consulta de DNS inversa.

El ReverseDnsFqdn elemento sólo está disponible con la versión 2014-06-01 o posterior.

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

Una operación correcta devuelve el código de estado 201 (Creado). Para obtener información acerca de los códigos de estado, vea estado de administración del servicio y los códigos de Error.

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Encabezado de respuesta

Descripción

x-ms-request-id

Valor que identifica de forma exclusiva una solicitud realizada ante el servicio de administración. Para una operación asincrónica, puede llamar a Obtener el estado de la operación con el valor del encabezado para determinar si la operación se ha completado, ha generado un error o aún está en curso.

También puede usar los recursos siguientes para crear un nuevo servicio en la nube:

Next step:

Después de crear un servicio en la nube, el paso siguiente consiste en crear una implementación. Para obtener más información, vea lo siguiente:

En el ejemplo de aplicación de consola siguiente se muestra cómo crear un nuevo servicio en la nube. Reemplace los valores variables siguientes:

  • Huella digital con la huella digital del certificado de administración en su suscripción

  • SubscriptionId con el identificador de suscripción que ha obtenido en el Portal de administración

  • ServiceName con el nombre que desea utilizar para el nuevo servicio de nube

  • Ubicación con la ubicación geográfica donde desea buscar el servicio de nube

    System_CAPS_noteNota

    Puede usar ubicaciones de la lista para obtener la ubicación adecuada.


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: