Exportar (0) Imprimir
Expandir Tudo

Criar implantação de máquina virtual

Atualizado: outubro de 2014

A operação Create Virtual Machine Deployment cria uma implantação e, depois, cria uma Máquina Virtual na implantação com base na configuração especificada.

A solicitação Create Virtual Machine Deployment pode ser especificada da seguinte maneira. Substitua <subscription-id> pela ID de assinatura e <cloudservice-name> pelo nome do serviço em nuvem.

 

Método URI de solicitação

POST

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

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

Nenhuma.

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

 

Cabeçalho de solicitação Descrição

x-ms-version

Obrigatória. Especifica a versão da operação a ser usada para esta solicitação. Este cabeçalho deve ser definido como 01/03/2012 ou posterior. Para obter mais informações sobre cabeçalhos de controle de versão, consulte Controle de versão de gerenciamento de serviço.

Formato do corpo da solicitação:


<Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Name>name-of-deployment</Name>
  <DeploymentSlot>deployment-environment</DeploymentSlot>
  <Label>identifier-of-deployment</Label>      
  <RoleList>
    <Role>
      <RoleName>name-of-the-virtual-machine</RoleName>
      <RoleType>PersistentVMRole</RoleType>
      <ConfigurationSets>
        <ConfigurationSet i:type="WindowsProvisioningConfigurationSet">
          <ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>
          <ComputerName>name-of-computer</ComputerName>
          <AdminPassword>administrator-password</AdminPassword>
          <EnableAutomaticUpdates>enable-updates</EnableAutomaticUpdates>  
          <TimeZone>time-zone</TimeZone>
          <DomainJoin>
            <Credentials>
              <Domain>domain-to-join</Domain>
              <Username>user-name-in-the-domain</Username>
              <Password>password-for-the-user-name</Password>
            </Credentials>
            <JoinDomain>domain-to-join</JoinDomain>
            <MachineObjectOU>distinguished-name-of-the-ou</MachineObjectOU>
          </DomainJoin>
          <StoredCertificateSettings>
            <CertificateSetting>
              <StoreLocation>LocalMachine</StoreLocation>
              <StoreName>name-of-store-on-the-machine</StoreName>
              <Thumbprint>certificate-thumbprint</Thumbprint>
            </CertificateSetting>
          </StoredCertificateSettings>
          <WinRM>
            <Listeners>
              <Listener>
                <Protocol>listener-protocol</Protocol>
              </Listener>
              <Listener>
                <CertificateThumbprint>certificate-thumbprint</CertificateThumbprint>
                <Protocol>listener-protocol</Protocol>
              </Listener>
            </Listeners>
          </WinRM>
          <AdminUsername>name-of-administrator-account</AdminUsername>
          <CustomData>base-64-encoded-data</CustomData>
          <AdditionalUnattendContent>
            <Passes>
              <UnattendPass>
                <PassName>name-of-pass</PassName>
                <Components>
                  <UnattendComponent>
                    <ComponentName>name-of-component</ComponentName>
                    <ComponentSettings>
                      <ComponentSetting>
                        <SettingName>name-of-setting</SettingName>
                        <Content>base-64-encoded-XML-content</Content>
                      </ComponentSetting>
                    </ComponentSettings>
                  </UnattendComponent>
                </Components>
              </UnattendPass>
            </Passes>
          </AdditionalUnattendContent>
        </ConfigurationSet>
        <ConfigurationSet i:type="LinuxProvisioningConfigurationSet">
          <ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType>
          <HostName>host-name-for-the-virtual-machine</HostName>
          <UserName>new-user-name</UserName> 
          <UserPassword>password-for-the-new-user</UserPassword> 
          <DisableSshPasswordAuthentication>password-authentication</DisableSshPasswordAuthentication>           
          <SSH>
            <PublicKeys>
              <PublicKey>
                <FingerPrint>certificate-fingerprint</FingerPrint>
                <Path>SSH-public-key-storage-location</Path>     
              </PublicKey>
            </PublicKeys>
            <KeyPairs>
              <KeyPair>
                <FingerPrint>certificate-fingerprint</FinguerPrint>
                <Path>SSH-public-key-storage-location</Path>
              </KeyPair>
            </KeyPairs>
          </SSH>
          <CustomData>base-64-encoded-data</CustomData>
        </ConfigurationSet>        
        <ConfigurationSet> 
          <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
          <InputEndpoints>
            <InputEndpoint>
              <LoadBalancedEndpointSetName>name-of-load-balanced-set</LoadBalancedEndpointSetName>
              <LocalPort>local-port-number</LocalPort>
              <Name>name-of-endpoint</Name>
              <Port>external-port-number</Port>
              <LoadBalancerProbe>
                <Path>path-of-probe</Path>
                <Port>port-assigned-to-probe</Port>
                <Protocol>probe-protocol</Protocol>
                <IntervalInSeconds>interval-of-probe</IntervalInSeconds>
                <TimeoutInSeconds>timeout-for-probe</TimeoutInSeconds>
              </LoadBalancerProbe>          
              <Protocol>endpoint-protocol</Protocol>                 
              <EnableDirectServerReturn>enable-direct-server-return</EnableDirectServerReturn>       
              <EndpointACL>
                <Rules>
                  <Rule>
                    <Order>priority-of-the-rule</Order>
                    <Action>permit-rule</Action>
                    <RemoteSubnet>subnet-of-the-rule</RemoteSubnet>
                    <Description>description-of-the-rule</Description>
                  </Rule>
                </Rules>
              </EndpointACL>
              <LoadBalancerName>name-of-internal-loadbalancer</LoadBalancerName>
              <IdleTimeoutInMinutes>timeout-for-tcp-idle-connection</IdleTimeoutInMinutes>
            </InputEndpoint>
          </InputEndpoints>
          <SubnetNames>
            <SubnetName>name-of-subnet</SubnetName>
          </SubnetNames> 
          <StaticVirtualNetworkIPAddress>ip-address</StaticVirtualNetworkIPAddress>
          <PublicIPs>
            <PublicIP>
              <Name>name-of-public-ip</Name>
              <IdleTimeoutInMinutes>timeout-for-tcp-idle-connection</IdleTimeoutInMinutes>
            </PublicIP>
          </PublicIPs>
        </ConfigurationSet>
      </ConfigurationSets>
      <ResourceExtensionReferences>
        <ResourceExtensionReference>
          <ReferenceName>name-of-reference</ReferenceName>
          <Publisher>name-of-publisher</Publisher>
          <Name>name-of-extension</Name>
          <Version>version-of-extension</Version>
          <ResourceExtensionParameterValues>
            <ResourceExtensionParameterValue>
              <Key>name-of-parameter-key</Key>
              <Value>parameter-value</Value>
              <Type>type-of-parameter</Type>
            </ResourceExtensionParameterValue>
          </ResourceExtensionParameterValues>
          <State>state-of-resource</State>
          <Certificates>
            <Certificate>
  <Thumbprint>certificate-thumbprint</Thumbprint>
  <ThumbprintAlgorithm>certificate-algorithm</ThumbprintAlgorithm>
            </Certificate>
          </Certificates>
        </ResourceExtensionReference>
      </ResourceExtensionReferences>
      <VMImageName>name-of-vm-image</VMImageName>
      <MediaLocation>path-to-vhd</MediaLocation>
      <AvailabilitySetName>name-of-availability-set</AvailabilitySetName>
      <DataVirtualHardDisks>
        <DataVirtualHardDisk>
          <HostCaching>caching-mode</HostCaching> 
          <DiskLabel>label-of-data-disk</DiskLabel>            
          <DiskName>name-of-disk</DiskName>
          <Lun>logical-unit-number</Lun>
          <LogicalDiskSizeInGB>size-in-gb-of-data-disk</LogicalDiskSizeInGB>            
          <MediaLink>path-to-vhd</MediaLink>
        </DataVirtualHardDisk>
      </DataVirtualHardDisks>
      <OSVirtualHardDisk>
        <HostCaching>caching-mode</HostCaching>    
        <DiskLabel>label-of-operating-system-disk</DiskLabel>
        <DiskName>name-of-disk</DiskName>                    
        <MediaLink>path-to-vhd</MediaLink>
        <SourceImageName>name-of-source-image</SourceImageName>
        <OS>operating-system-of-image</OS>
        <RemoteSourceImageLink>path-to-source-image</RemoteSourceImageLink>
      </OSVirtualHardDisk>      
      <RoleSize>size-of-virtual-machine</RoleSize>
      <ProvisionGuestAgent>install-an-agent</ProvisionGuestAgent>
    </Role>
  </RoleList>
  <VirtualNetworkName>name-of-virtual-network</VirtualNetworkName>
  <Dns>
    <DnsServers>
      <DnsServer>
        <Name>dns-name</Name>
        <Address>dns-ip-address</Address>
      </DnsServer>
    </DnsServers>
  </Dns>
  <ReservedIPName>name-of-reserved-ip</ReservedIPName>
  <LoadBalancers>
    <LoadBalancer>
      <Name>name-of-internal-load-balancer</Name>
      <FrontendIpConfiguration>
        <Type>type-of-ip-address</Type>
        <SubnetName>name-of-subnet</SubnetName>
        <StaticVirtualNetworkIPAddress>static-ip-address</StaticVirtualNetworkIPAddress>
      </FrontendIpConfiguration>
    </LoadBalancer>
  </LoadBalancers>
</Deployment>

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

 

Nome do elemento Descrição

Nome

Obrigatória. Especifica um nome para a implantação. O nome da implantação deve ser exclusivo entre outras implantações para o serviço de nuvem.

DeploymentSlot

Obrigatória. Especifica o ambiente no qual a Máquina Virtual deve ser implantada. O único valor permitido é Production.

Rótulo

Obrigatória. Especifica um identificador para a implantação. O rótulo pode ter até 100 caracteres. O rótulo pode ser usado para fins de acompanhamento.

RoleList

Obrigatória. Contém informações sobre as Máquinas Virtuais a serem implantadas.

VirtualNetworkName

Opcional. Especifica o nome de uma rede virtual existente à qual a implantação pertencerá.

As redes virtuais são criadas chamando a operação Configurar rede.

Dns

Opcional. Contém uma lista de servidores DNS a serem associados à Máquina Virtual.

ReservedIPName

Opcional. Especifica o nome de um endereço IP reservado que deve ser atribuído à implantação. Você deve executar Create Reserved IP Address antes de atribuir o endereço para a implantação usando este elemento.

O elemento ReservedIPName só estará disponível com a versão 01/05/2014 ou superior.

LoadBalancers

Opcional. Contém uma lista de balanceadores de carga internos que podem ser atribuídos a pontos de extremidade de entrada.

O elemento LoadBalancers só estará disponível com a versão 01/05/2014 ou superior.

Contém informações sobre as Máquinas Virtuais a serem implantadas.

 

Nome do elemento Descrição

Função

Obrigatória. Contém os conjuntos de configuração que são usados para criar Máquinas Virtuais.

Contém os conjuntos de configuração que são usados para criar Máquinas Virtuais.

 

Nome do elemento Descrição

RoleName

Obrigatória. Especifica o nome para a Máquina Virtual.

RoleType

Obrigatória. Especifica o tipo de função a ser usado. Para Máquinas Virtuais, ele deve ser PersistentVMRole.

ConfigurationSets

Opcional. Contém uma coleção de conjuntos de configuração que definem as configurações do sistema e do aplicativo.

ResourceExtensionReferences

Opcional. Contém uma coleção de extensões de recurso que serão instaladas na Máquina Virtual. Este elemento será usado se ProvisionGuestAgent for definido como true.

O elemento ResourceExtensionReferences só estará disponível com a versão 01/11/2013 ou superior.

VMImageName

Opcional. Especifica o nome da imagem de VM que será usada para criar a máquina virtual. Se esse elemento for usado, o elemento ConfigurationSets não será usado. Para obter mais informações, consulte Capturar imagem de VM.

O elemento VMImageName só estará disponível com a versão 01/02/2014 ou superior.

MediaLocation

Obrigatório se a máquina virtual estiver sendo criada a partir de uma imagem da VM publicada. Especifica a localização do arquivo VHD que é criado quando VMImageName especifica uma imagem da VM publicada.

O elemento MediaLocation só estará disponível com a versão 01/05/2014 ou superior.

AvailabilitySetName

Opcional. Especifica o nome de uma coleção de Máquinas Virtuais. As Máquinas Virtuais especificadas no mesmo conjunto de disponibilidade são alocadas a nós diferentes para maximizar a disponibilidade. Para obter mais informações sobre conjuntos de disponibilidade, consulte Gerenciar a disponibilidade de máquinas virtuais.

DataVirtualHardDisks

Opcional. Contém os parâmetros que são usados para adicionar um disco de dados a uma Máquina Virtual. Se você for criar uma máquina virtual usando uma imagem de VM, esse elemento não será usado. Para obter mais informações sobre discos de dados, consulte Gerenciar Discos e Imagens.

OSVirtualHardDisk

Opcional. Contém os parâmetros que são usados para criar o disco do sistema operacional para uma Máquina Virtual. Se você for criar uma máquina virtual usando uma imagem de VM, esse elemento não será usado.

RoleSize

Opcional. Especifica o tamanho da Máquina Virtual. O tamanho padrão é Pequeno. Para obter mais informações sobre tamanhos de Máquinas Virtuais, consulte Tamanhos de máquinas virtuais e serviço de nuvem para o Azure.

ProvisionGuestAgent

Opcional. Indica se o VM Agent está instalado na máquina virtual. Para executar uma extensão de recurso em uma Máquina Virtual, esse serviço deverá ser instalado.

Os possíveis valores são:

  • true

  • false

Contém uma coleção de conjuntos de configuração que especificam parâmetros de configuração do sistema e do aplicativo.

 

Nome do elemento Descrição

ConfigurationSet

Obrigatória. Especifica os elementos de configuração da Máquina Virtual. O atributo de tipo é necessário para impedir que a senha do administrador seja gravada no arquivo do histórico de operação.

ConfigurationSetType

Obrigatória. Para criar uma Máquina Virtual, especifique um dos seguintes conjuntos de configuração:

  • WindowsProvisioningConfiguration

  • LinuxProvisioningConfiguration

Opcional. Outra opção é especificar um conjunto NetworkConfiguration que contenha os metadados necessários para criar a configuração de rede virtual para uma Máquina Virtual.

ComputerName

Opcional em WindowsProvisioningConfiguration. Especifica o nome do computador para a Máquina Virtual. Se você não especificar um nome de computador, um será atribuído que é uma combinação de nome da implantação, nome da função e número de identificação. Os nomes dos computadores devem ter de 1 a 15 caracteres.

AdminPassword

Opcional em WindowsProvisioningConfiguration. Especifica a senha a ser usada para uma conta de administrador na máquina virtual que está sendo criada. Se você for criar uma máquina virtual usando uma imagem, deverá especificar um nome de uma conta de administrador a ser criada na máquina usando o elemento AdminUsername. É necessário usar o elemento AdminPassword para especificar a senha da conta de administrador que será criada. Se você for criar uma máquina virtual usando um disco especializado existente, esse elemento não será usado, pois a conta já deverá existir no disco.

EnableAutomaticUpdates

Opcional em WindowsProvisioningConfiguration. Especifica se as atualizações automáticas estão habilitadas para a Máquina Virtual.

Os possíveis valores são:

  • true

  • false

O valor padrão é true.

Fuso horário

Opcional em WindowsProvisioningConfiguration. Especifica o fuso horário para a Máquina Virtual.

Para obter uma lista completa de entradas de fuso horário com suporte, você pode:

  • Consulte os valores listados na entrada de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.

  • Você pode usar a ferramenta de linha de comando tzutil para listar a hora válida.

DomainJoin

Opcional em WindowsProvisioningConfiguration. Contém propriedades que definem um domínio em que a Máquina Virtual ingressará.

StoredCertificateSettings

Opcional em WindowsProvisioningConfiguration. Contém uma lista de certificados de serviço com os quais será provisionada a nova Máquina Virtual.

WinRM

Opcional em WindowsProvisioningConfiguration. Contém parâmetros de configuração para o serviço de Gerenciamento Remoto do Windows na Máquina Virtual. Isso habilita o Windows PowerShell remoto.

O elemento WinRM só estará disponível com a versão 01/03/2013 ou superior.

AdminUsername

Opcional em WindowsProvisioningConfiguration. Especifica o nome da conta de administrador criada para acessar a máquina virtual. Se você for criar uma máquina virtual usando uma imagem, deverá especificar um nome de uma conta de administrador a ser criada usando esse elemento. É necessário usar o elemento AdminPassword para especificar a senha da conta de administrador que será criada. Se você for criar uma máquina virtual usando um disco especializado existente, esse elemento não será usado, pois a conta já deverá existir no disco.

CustomData

Opcional em WindowsProvisioningConfiguration. Especifica uma cadeia de caracteres codificada na base 64 de dados personalizados. A cadeia de caracteres codificada na base 64 é decodificada para uma matriz binária que é salva como um arquivo na Máquina Virtual. A matriz binária pode ter no máximo 65535 bytes. O arquivo será salvo em %SYSTEMDRIVE%\AzureData\CustomData.bin. Se o arquivo já existir, ele será substituído. A segurança no diretório é definida para System:Full Control and Administrators:Full Control.

O elemento CustomData só estará disponível com a versão 01/10/2013 ou superior.

AdditionalUnattendContent

Opcional. Especifica a informação com formatação XML codificada em base 64 adicional que pode ser incluída no arquivo Unattend.xml, que é usado pelo programa de instalação do Windows. Para obter mais informações, consulte Visão geral dos arquivos de resposta.

O elemento AdditionalUnattendContent só estará disponível com a versão 01/04/2014 ou superior.

HostName

Necessário em LinuxProvisioningConfiguration. Especifica o nome de host para a Máquina Virtual. Nomes de host devem ter de 1 a 64 caracteres.

UserName

Necessário em LinuxProvisioningConfiguration. Especifica o nome de uma conta de usuário a ser criada no grupo sudoer da Máquina Virtual. Os nomes de conta de usuário devem ter de 1 a 32 caracteres.

UserPassword

Necessário em LinuxProvisioningConfiguration. Especifica a senha para a conta de usuário. As senhas devem ter de 6 a 72 caracteres.

DisableSshPasswordAuthentication

Opcional em LinuxProvisioningConfiguration. Especifica se a autenticação de senha SSH está desabilitada. Por padrão, esse valor está definido como true.

Os possíveis valores são:

  • true

  • false

O valor padrão é true.

SSH

Opcional em LinuxProvisioningConfiguration. Especifica as chaves públicas e os pares de chave de SSH para usar com a Máquina Virtual.

CustomData

Opcional em LinuxProvisioningConfiguration. Especifica uma cadeia de caracteres codificada na base 64 de dados personalizados. A cadeia de caracteres codificada na base 64 está localizada no arquivo ovf-env.xml no ISO da máquina virtual. O arquivo é copiado para /var/lib/waagent/ovf-env.xml pelo agente do Linux do Azure. O agente do Linux do Azure também coloca os dados codificados na base 64 em /var/lib/waagent/CustomData durante o provisionamento. A matriz binária pode ter no máximo 65535 bytes.

O elemento CustomData só estará disponível com a versão 01/10/2013 ou superior.

InputEndpoints

Opcional em NetworkConfiguration. Contém uma coleção de pontos de extremidade externos para a Máquina Virtual.

SubnetNames

Necessário se StaticVirtualNetworkIPAddress for especificado; do contrário, será opcional em NetworkConfiguration. Contém uma lista de sub-redes às quais a Máquina Virtual pertencerá.

StaticVirtualNetworkIPAddress

Opcional. Especifica o endereço IP interno da Máquina Virtual em uma Rede Virtual. Se você especificar esse elemento, também deverá especificar o elemento SubnetNames com apenas uma sub-rede definida. O endereço IP especificado nesse elemento deve pertencer à sub-rede definida em SubnetNames e não deve ser um dos quatro primeiros endereços IP ou o último endereço IP da sub-rede. Não há suporte para a implantação de funções Web ou funções de trabalho em uma sub-rede que tenha Máquinas Virtuais com StaticVirtualNetworkIPAddress definido.

O elemento StaticVirtualNetworkIPAddress só estará disponível com a versão 01/11/2013 ou superior.

PublicIPs

Opcional. Contém um endereço IP público que pode ser usado em conjunto com o padrão de endereço IP virtual para a Máquina Virtual.

O elemento PublicIPs só estará disponível com a versão 01/05/2014 ou superior.

Contém propriedades que definem um domínio em que a Máquina Virtual ingressará.

 

Nome do elemento Descrição

Credenciais

Opcional. Especifica as credenciais a serem usadas para unir a Máquina Virtual ao domínio.

JoinDomain

Opcional. Especifica o domínio a ser unido.

MachineObjectOU

Opcional. Especifica o nome distinto LDAP X 500 da unidade organizacional (OU) em que a conta do computador é criada. Essa conta está no Active Directory em um controlador de domínio no domínio em que o computador está ingressando.

Exemplo:

OU=MyOu,OU=MyParentOu,DC=example.com,DC=MyCompany,DC=com

Especifica as credenciais a serem usadas para unir a Máquina Virtual ao domínio.

 

Nome do elemento Descrição

Domínio

Opcional. Especifica o nome do domínio usado para autenticar uma conta. O valor é um domínio DNS totalmente qualificado.

Se o nome dos domínios não for especificado, Username deverá especificar o formato de UPN (nome principal do usuário) (usuário@domínio-DNS-totalmente-qualificado) ou o formato domínio-DNS-totalmente-qualificado\nomedeusuário.

Exemplo:

example.com

Nome de usuário

Obrigatória. Especifica um nome de usuário no domínio que pode ser usado para ingressar no domínio.

Senha

Obrigatória. Especifica a senha a ser usada para ingressar no domínio.

Contém uma lista de certificados de serviço com os quais será provisionada a nova Máquina Virtual. As configurações de certificado armazenadas referenciam certificados que já existem no serviço de nuvem. Antes de configurar os certificados armazenados para a máquina virtual, você deve chamar a operação Adicionar certificado de serviço ou adicionar o certificado usando o Portal de Gerenciamento.

 

Nome do elemento Descrição

CertificateSetting

Obrigatória. Especifica os parâmetros do certificado.

StoreLocation

Obrigatória. Especifica o local do repositório de certificados na Máquina Virtual.

O único valor com suporte é LocalMachine.

StoreName

Obrigatória. Especifica o nome do repositório de certificados do qual o certificado é recuperado.

Por exemplo, “Minha”.

Impressão digital

Obrigatória. Especifica a impressão digital do certificado. A impressão digital deve especificar um certificado de serviço existente.

Contém parâmetros de configuração para o serviço de Gerenciamento Remoto do Windows na Máquina Virtual.

 

Nome do elemento Descrição

Ouvintes

Obrigatória. Contém uma coleção de informações para habilitação do Windows PowerShell remoto.

Ouvinte

Obrigatória. Especifica as informações de protocolo e de certificado para o ouvinte.

Protocolo

Especifica o protocolo de ouvinte.

Os possíveis valores são:

  • Http

  • Https

O valor diferencia maiúsculas de minúsculas.

CertificateThumbprint

Opcional. Especifica a impressão digital do certificado para a conexão segura. Se esse valor não for especificado, um certificado autoassinado será gerado e usado para a Máquina Virtual.

Especifica a informação com formatação XML codificada em base 64 adicional que pode ser incluída no arquivo Unattend.xml, que é usado pelo programa de instalação do Windows.

 

Nome do elemento Descrição

PassName

Obrigatória. Especifica o nome da passagem ao qual se aplica o conteúdo. O único valor permitido é oobeSystem.

ComponentName

Obrigatória. Especifica o nome do componente para configurar com o conteúdo adicionado. O único valor permitido é Microsoft-Windows-Shell-Setup.

SettingName

Obrigatória. Especifica o nome da configuração ao qual se aplica o conteúdo.

Os possíveis valores são:

  • FirstLogonCommands

  • AutoLogon

Content

Obrigatória. Especifica o conteúdo formatado XML codificado do valor codificado na base 64 que é adicionado ao arquivo unattend.xml para o caminho e componente especificados. O XML deve ser menor que 4 KB e deve incluir o elemento raiz para a configuração ou o recurso que está sendo inserido.

Especifica as chaves públicas e os pares de chave de SSH para usar com a Máquina Virtual.

 

Nome do elemento Descrição

PublicKeys

Opcional. Especifica a coleção de chaves públicas SSH.

PublicKey

Obrigatória. Especifica a chave pública.

FingerPrint

Obrigatória. Especifica a impressão digital SHA1 de um certificado X509 associado ao serviço de nuvem e inclui a chave pública SSH.

Caminho

Obrigatória. Especifica o caminho completo de um arquivo, na Máquina Virtual, onde a chave pública SSH é armazenada. Se o arquivo já existir, a chave especificada será anexada ao arquivo.

Exemplo:

/home/user/.ssh/authorized_keys

KeyPairs

Obrigatória. Especifica uma coleção de pares de chaves SSH.

KeyPair

Obrigatória. Especifica um par de chaves SSH a ser instalado na Máquina Virtual.

FingerPrint

Obrigatória. Especifica a impressão digital SHA1 de um certificado X509 que é associado ao serviço de nuvem e inclui o par de chaves SSH.

Caminho

Obrigatória. Especifica o caminho completo de um arquivo, na máquina virtual, que armazena a chave privada SSH. O arquivo será substituído quando várias chaves forem gravadas nele. A chave pública SSH é armazenada no mesmo diretório e tem o mesmo nome do arquivo de chave privada com sufixo .pub.

Exemplo:

/home/user/.ssh/id_rsa

Contém uma coleção de pontos de extremidade externos para a Máquina Virtual.

 

Nome do elemento Descrição

InputEndpoint

Obrigatória. Especifica as propriedades que definem um ponto de extremidade externo para a Máquina Virtual.

LoadBalancedEndpointSetName

Opcional. Especifica um nome para um conjunto de pontos de extremidade de carga balanceada. A especificação desse elemento para um ponto de extremidade irá adicioná-lo ao conjunto.

Não defina esta propriedade se estiver adicionando o ponto de extremidade para conexão à Máquina Virtual usando a Área de Trabalho Remota.

noteObservação
O nome do ponto de extremidade deve ser exclusivo no escopo da Máquina Virtual.

LocalPort

Obrigatória. Especifica a porta interna em que a Máquina Virtual está escutando.

Nome

Obrigatória. Especifica o nome do ponto de extremidade externo.

Porta

Obrigatória. Especifica a porta externa a ser usada para o ponto de extremidade.

LoadBalancerProbe

Opcional. Contém propriedades que definem as configurações do ponto de extremidade que o balanceador de carga usa para monitorar a disponibilidade da Máquina Virtual antes de encaminhar o tráfego a ele.

Protocolo

Obrigatória. Especifica o protocolo de transporte para o ponto de extremidade.

Os possíveis valores são:

  • TCP

  • UDP

EnableDirectServerReturn

Opcional. Especifica se o ponto de extremidade usa o Retorno Direto de Servidor. Não há suporte para o elemento EnableDirectServerReturn nos pontos de extremidade do RDP, do SSH ou do WinRM e quando as portas pública e local de um ponto de extremidade são diferentes. É recomendável que esse elemento seja usado apenas ao configurar Máquinas Virtuais para SQL Server e Grupos de Disponibilidade AlwaysOn. Para obter mais informações, consulte Alta disponibilidade e recuperação de desastres para o SQL Server em máquinas virtuais do Azure.

Os possíveis valores são:

  • true

  • false

O valor padrão é false.

EndpointACL

Opcional. Contém uma coleção de regras que controlam o tráfego de rede para um ponto de extremidade.

O elemento EndpointACL só está disponível na versão 2013-06-01 ou posterior.

LoadBalancerName

Opcional. Especifica o nome do balanceador de carga interno que está associado a este ponto de extremidade. O nome do balanceador de carga interna é especificado em LoadBalancers.

O elemento LoadBalancerName só estará disponível com a versão 01/05/2014 ou superior.

IdleTimeoutInMinutes

Opcional. Especifica o tempo limite para a conexão TCP ociosa. O valor pode ser definido entre 4 e 30 minutos. O valor padrão é 4 minutos. Este elemento é utilizado apenas quando o protocolo é definido como TCP.

O elemento IdleTimeoutInMinutes só estará disponível com a versão 01/06/2014 ou superior.

Contém propriedades que definem as configurações do ponto de extremidade que o balanceador de carga usa para monitorar a disponibilidade da Máquina Virtual antes de encaminhar o tráfego a ele.

 

Nome do elemento Descrição

Caminho

Opcional. Especifica o caminho relativo a ser inspecionado para determinar o status de disponibilidade da Máquina Virtual. Se Protocolo estiver definido como TCP, esse valor deverá ser NULL.

Exemplo:

path

A sonda usará https://example.com/path para executar a investigação.

Porta

Opcional. Especifica a porta a ser usada para inspecionar o status de disponibilidade da Máquina Virtual.

Protocolo

Opcional. Especifica o protocolo a ser usado para inspecionar o status de disponibilidade da Máquina Virtual.

Os possíveis valores são:

  • HTTP

  • TCP

IntervalInSeconds

Opcional. Especifica o intervalo da sonda do balanceador de carga, em segundos. O valor mínimo é 5 segundos. O padrão é 15 segundos.

TimeoutInSeconds

Opcional. Especifica o tempo limite da sonda do balanceador de carga, em segundos. O valor mínimo é 11 segundos. O padrão é 31 segundos.

Contém uma coleção de regras que controlam o tráfego de rede para o ponto de extremidade.

 

Nome do elemento Descrição

Regras

Obrigatória. Especifica uma coleção de regras de controle de acesso. São permitidas no máximo 50 regras.

Regra

Obrigatória. Especifica a definição de uma regra de controle de acesso.

Pedido

Obrigatória. Especifica a prioridade da regra. O valor pode ser entre 0 e 65535. O número do pedido deve ser exclusivo para cada regra na coleção Quanto menor for o número do pedido, maior será a prioridade da regra.

Ação

Obrigatória. Especifica se o tráfego que coincide com a regra deve ser permitido ou negado.

Os possíveis valores são:

  • permit

  • deny

RemoteSubnet

Obrigatória. Especifica a sub-rede da regra. A sub-rede deve estar na notação CIDR (Roteamento entre Domínios sem Classificação) de IPV4 e deve ser uma sub-rede válida.

Por exemplo, 10.0.0.0/24

Descrição

Opcional. Especifica uma descrição da regra. A descrição pode ter no máximo 256 caracteres.

Contém um endereço IP público que pode ser usado em conjunto com o padrão de endereço IP virtual para a máquina virtual.

 

Nome do elemento Descrição

PublicIP

Obrigatória. Especifica um endereço IP público adicional que pode ser usado para se comunicar com a máquina virtual.

Nome

Obrigatória. Especifica o nome do endereço IP público.

IdleTimeoutInMinutes

Opcional. Especifica o tempo limite para a conexão TCP ociosa. O valor pode ser definido entre 4 e 30 minutos. O valor padrão é 4 minutos. Este elemento é utilizado apenas quando o protocolo é definido como TCP.

O elemento IdleTimeoutInMinutes só estará disponível com a versão 01/06/2014 ou superior.

Contém uma lista de sub-redes às quais a Máquina Virtual pertencerá.

 

Nome do elemento Descrição

SubnetName

Obrigatória. Especifica o nome de uma sub-rede à qual a Máquina Virtual pertence.

Contém os parâmetros que são usados para adicionar um disco de dados a uma Máquina Virtual.

 

Nome do elemento Descrição

DataVirtualHardDisk

Obrigatória. Especifica as propriedades que são usadas para criar um disco de dados.

HostCaching

Opcional. Especifica o modo de cache do disco de dados.

Os possíveis valores são:

  • None

  • ReadOnly

  • ReadWrite

O valor padrão é None.

DiskLabel

Opcional. Se o disco que está sendo adicionado já estiver registrado na assinatura, esse elemento será ignorado. Se um novo disco estiver sendo criado, este elemento será usado para fornecer uma descrição do disco. O valor desse elemento é obtido somente programaticamente e não aparece no Portal de Gerenciamento.

DiskName

Opcional. Se o disco que está sendo adicionado já estiver registrado na assinatura, este elemento será usado para identificar o disco a ser adicionado. Se um novo disco e o VHD associado estiverem sendo criados pelo Azure, este elemento não será usado, e o Azure atribuirá um nome exclusivo que é uma combinação do nome da implantação, do nome da função e do número de identificação.

O nome do disco deve conter apenas caracteres alfanuméricos, sublinhados, pontos ou traços. O nome deve conter no máximo 256 caracteres. O nome não deve terminar com um ponto ou traço.

Você pode usar Listar discos para localizar discos disponíveis.

Lun

Opcional. Especifica o Número de Unidade Lógica (LUN) para o disco de dados. Se o disco for o primeiro disco adicionado, esse elemento será opcional e o valor padrão 0 será usado. Se mais de um disco for adicionado, esse elemento será obrigatório.

Você pode usar Obter função para localizar os números LUN que já estão em uso.

Os valores válidos de LUN são 0 a 15.

LogicalDiskSizeInGB

Opcional. Especifica o tamanho, em GB, de um disco vazio a ser anexado à Máquina Virtual. Se o disco que está sendo adicionado já estiver registrado na assinatura, esse elemento será ignorado. Se o disco e o VHD estiverem sendo criados pelo Azure quando o elemento for adicionado, esse elemento definirá o tamanho do novo disco.

O número de discos que podem ser adicionados a uma Máquina Virtual é limitado pelo tamanho da máquina. Para obter mais informações, consulte Tamanhos de máquinas virtuais e serviço de nuvem para o Azure.

Este elemento é usado com o elemento MediaLink.

MediaLink

Opcional. Se o disco que está sendo adicionado já estiver registrado na assinatura, ou se o VHD para o disco já existir no armazenamento de blob, esse elemento será ignorado. Se um arquivo VHD não existir no armazenamento de blob, esse elemento definirá a localização do novo VHD que é criado quando o novo disco é adicionado.

Exemplo:

http://example.blob.core.windows.net/disks/mydatadisk.vhd

SourceMediaLink

Opcional. Se o disco que está sendo adicionado já estiver registrado na assinatura, ou se o VHD para o disco não existir no armazenamento de blob, esse elemento será ignorado. Se o arquivo VHD existir no armazenamento de blob, esse elemento definirá o caminho para o VHD e um disco será registrado a partir dele e será anexado à máquina virtual.

Contém os parâmetros que são usados para criar o disco do sistema operacional para uma Máquina Virtual.

 

Nome do elemento Descrição

HostCaching

Opcional. Especifica o modo de cache do disco do sistema operacional. Essa configuração afeta a consistência e o desempenho do disco.

Os possíveis valores são:

  • ReadOnly

  • ReadWrite

O valor padrão é ReadWrite.

noteObservação
A alteração desse valor leva à reinicialização da Máquina Virtual.

DiskLabel

Opcional. Especifica a descrição do disco.

DiskName

Obrigatório se um disco existente for usado para criar uma máquina virtual. Especifica o nome de um disco novo ou existente. Para um novo disco, se esse elemento não for especificado, será atribuído um nome exclusivo, que é uma combinação do nome da implantação, do nome da função e do número de identificação. Se o elemento RemoteSourceImageLink é usado, este elemento deve especificar um novo nome de disco.

O nome do disco deve conter apenas caracteres alfanuméricos, sublinhados, pontos ou traços. O nome deve conter no máximo 256 caracteres. O nome não deve terminar com um ponto ou traço.

MediaLink

Obrigatório se a máquina virtual estiver sendo criada a partir de uma imagem de plataforma. Especifica a localização do arquivo VHD que é criado quando SourceImageName especifica uma imagem de plataforma. Este elemento não será usado se a máquina virtual estiver sendo criada usando um disco existente.

Exemplo:

http://contoso.blob.core.windows.net/disks/mydisk.vhd

SourceImageName

Opcional. Especifica o nome da imagem a ser usado para criar a Máquina Virtual. É possível especificar uma imagem de usuário ou uma imagem de plataforma. Uma imagem é sempre associada a um VHD, que é um arquivo .vhd armazenado como um blob de páginas em uma conta de armazenamento no Azure. Se você especificar uma imagem de plataforma, um VHD associado será criado e você deverá usar o elemento MediaLink para especificar a localização no armazenamento onde o VHD estará localizado.

SO

Necessário se RemoteSourceImageLink for usado. Especifica o tipo de sistema operacional instalado na imagem.

Os possíveis valores são:

  • Windows

  • Linux

RemoteSourceImageLink

Opcional. Especifica um URI acessível publicamente ou um URI de SAS para o local onde uma imagem do SO é armazenada que é usada para criar a Máquina Virtual. Esse local pode ser um local diferente do usuário ou repositórios de imagens na plataforma do Azure. Uma imagem é sempre associada a um VHD, que é um arquivo .vhd armazenado como um blob de páginas em uma conta de armazenamento no Azure. Se você especificar o caminho para uma imagem com esse elemento, um VHD associado será criado e você deverá usar o elemento MediaLink para especificar a localização no armazenamento onde o VHD estará localizado. Se esse elemento for usado, o SourceImageName não será usado.

O elemento RemoteSourceImageLink só estará disponível com a versão 01/05/2014 ou superior.

Contém uma coleção de extensões de recurso que serão instaladas na Máquina Virtual. Uma extensão de recurso é um componente de software instalado na Máquina Virtual. O VM Agent deve ser instalado na máquina virtual para instalar as extensões de recursos. Para obter mais informações, consulte Gerenciar extensões.

 

Nome do elemento Descrição

ResourceExtensionReference

Obrigatória. Especifica as propriedades de uma extensão de recurso que deve ser instalada na Máquina Virtual.

ReferenceName

Obrigatória. Especifica o nome de referência da extensão de recurso.

Publicador

Obrigatória. Especifica o nome do publicador que criou a extensão de recurso. Você pode usar Listar extensões de recurso para localizar o nome do publicador de uma extensão de recurso.

Nome

Obrigatória. Especifica o nome da extensão de recurso. Você pode usar Listar extensões de recurso para localizar os nomes das extensões de recurso disponíveis.

Versão

Obrigatória. Especifica a versão da extensão de recurso. Você pode definir esse valor como * para usar a versão mais recente da extensão. Se a extensão tiver sido adicionada ou atualizada recentemente, o valor de ReplicationCompleted deverá estar definido como true para que seja possível usar a versão da extensão. Você pode usar Listar versões da extensão de recurso para determinar o status de replicação e as versões disponíveis da extensão.

ResourceExtensionParameterValues

Opcional. Contém uma coleção de parâmetros que são passados para a extensão de recurso quando ela é instalada.

Estado

Opcional. Especifica o estado da extensão de recurso. Quando uma máquina virtual é criada, o único estado que pode ser especificado é enable, que é o valor padrão quando esse elemento não é usado. Para obter mais informações sobre a desabilitação ou remoção de uma extensão, consulte Atualizar função.

Certificados

Opcional. Contém uma coleção de certificados que estão instalados na máquina virtual e usados ​​pela extensão. Antes dos certificados serem inclusos neste pedido, eles devem ser adicionados ao serviço de nuvem. Para obter mais informações, consulte Adicionar certificado de serviço.

O elemento Certificates só estará disponível com a versão 01/06/2014 ou superior.

Contém uma coleção de certificados que estão instalados na máquina virtual e usados ​​pela extensão.

 

Nome do elemento Descrição

Impressão digital

Obrigatória. Especifica a impressão digital do certificado que deve ser usada pela extensão.

ThumbprintAlgorithm

Obrigatória. Especifica o algoritmo de impressão digital. Este valor é sempre sha1 .

Contém uma coleção de parâmetros que são passados para a extensão de recurso quando ela é instalada.

 

Nome do elemento Descrição

ResourceExtensionParameterValue

Obrigatória. Especifica a chave, o valor e o tipo do parâmetro.

Chave

Obrigatória. Especifica a chave do parâmetro.

Valor

Obrigatória. Especifica o valor codificado na base 64 do parâmetro. Se a configuração da extensão estiver formatada em XML, esse valor será validado usando o esquema público ou privado. O esquema usado depende do valor de Type.

Se a configuração da extensão estiver formatada em JSON, esse valor deverá conter um objeto JSON válido. Os esquemas públicos ou privados não podem ser usados para validar o objeto. Para usar um objeto JSON, a versão deve ser 2014-04-01 ou superior.

Tipo

Obrigatória. Especifica o tipo da extensão de recurso.

Os possíveis valores são:

  • Public

  • Private

Se esse valor for definido como Private, o parâmetro não será retornado por Get Deployment. Você só pode especificar um parâmetro público e um parâmetro privado para um máximo de dois parâmetros.

Contém uma lista de servidores DNS a serem associados à Máquina Virtual.

 

Nome do elemento Descrição

DnsServers

Obrigatória. Contém os parâmetros que especificam os servidores DNS a serem usados para a Máquina Virtual.

DnsServer

Obrigatória. Contém os elementos Name e Address do servidor DNS.

Nome

Obrigatória. Especifica o nome do servidor DNS.

Endereço

Obrigatória. Especifica o endereço IP do servidor DNS.

Contém uma lista de balanceadores de carga internos que podem ser atribuídos a pontos de extremidade de entrada.

 

Nome do elemento Descrição

LoadBalancer

Obrigatória. Especifica os atributos de um balanceador de carga interno.

Nome

Obrigatória. Especifica o nome de um balanceador de carga interno.

FrontendIpConfiguration

Obrigatória. Especifica a configuração para o endereço IP virtual que é fornecido pelo balanceador de carga.

Tipo

Obrigatória. Especifica o tipo de endereço IP virtual que é fornecido pelo balanceador de carga. O único valor permitido é Private.

SubnetName

Necessário se a implantação existir em uma rede virtual e um StaticVirtualNetworkIPAddress for atribuído. Especifica a sub-rede da rede virtual que o balanceador de carga usa. O endereço IP virtual que é gerido pelo balanceador de carga está contido nessa sub-rede.

StaticVirtualNetworkIPAddress

Opcional. Especifica um endereço IP virtual específico que o balanceador de carga usa da sub-rede na rede virtual.

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 202 (Aceito). Para obter informações sobre códigos de status, consulte Status de 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 à 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.

Você também pode criar implantações de Máquinas Virtuais usando os seguintes recursos:

Ao criar uma implantação de uma máquina virtual, você deve verificar se o serviço em nuvem e o disco ou a imagem usados estão localizados na mesma região. Por exemplo, se o serviço de nuvem tiver sido criado na região de West US, o disco ou a imagem que você usa também deve estar localizado em uma conta de armazenamento na região de West US.

Para executar este exemplo, substitua os valores das seguintes variáveis:

 

Variável Valor

Impressão digital

Forneça uma impressão digital de um certificado de gerenciamento que é carregado para autorizar operações executadas no Azure. Para obter mais informações, consulte Criar e carregar um certificado de gerenciamento para o Azure.

SubscriptionId

Forneça o identificador de assinatura necessário para localizar o serviço de nuvem apropriado. Para localizar o identificador de assinatura, clique em Configurações no Portal de Gerenciamento.

ServiceName

Forneça o nome do serviço de nuvem existente no qual você deseja implantar a Máquina Virtual. Você pode usar List Cloud Services para localizar os nomes de serviços existentes. Você pode criar um serviço em nuvem no Portal de Gerenciamento usando a opção Criar serviço em nuvem ou o cmdlet New-AzureService.

DeploymentName

Forneça um nome para a nova implantação.

DeploymentLabel

Forneça um identificador para a implantação. Este rótulo pode ser usado para fins de acompanhamento.

UserName

Forneça um nome para a conta de administrador na Máquina Virtual.

RoleName

Forneça um nome para a função. Neste exemplo, o nome da função também é usado como nome do computador.

SourceImage

Forneça o nome da imagem de plataforma que você deseja usar para provisionar a Máquina Virtual. Você pode usar List OS Images para obter os nomes de imagens de plataforma disponíveis no repositório de imagens.

OSVhdPath

Informe o caminho no armazenamento do Azure em que o disco de sistema operacional criado será armazenado. Para obter mais informações, consulte Como criar uma conta de armazenamento.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Xml;
using System.Security.Cryptography.X509Certificates;
using System.Net;
using System.IO;

namespace CreateVirtualMachineDeployment
{
  class Program
  {
    private static XNamespace wa = "http://schemas.microsoft.com/windowsazure";
    private const string Thumbprint = "<thumbprint-of-management-certificate>";
    private const string SubscriptionId = "<identifier-of-subscription>";
    private const string Version = "2013-08-01";
    private const string ServiceName = "<name-of-existing-service>";
    private const string DeploymentName = "<name-of-new-deployment>";
    private const string DeploymentLabel = "<label-of-deployment>";
    private const string DeploymentSlot = "production";
    private const string UserName = "<name-of-user-account>";
    private const string RoleName = "<name-of-virtual-machine>";
    private const string SourceImage = "<name-of-platform-image>";
    private const string OSVhdPath = "<storage-path-of-operating-system-disk>";

    // 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/{1}/deployments";
      Uri uri = new Uri(String.Format(uriFormat, SubscriptionId, ServiceName));

      Console.WriteLine("Enter the administrator password:");
      string AdminPassword = Console.ReadLine();

      // Create the request to add a new Virtual Machine deployment
      XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
      XDocument requestBody = new XDocument(
        new XDeclaration("1.0", "UTF-8", "no"),
        new XElement(wa + "Deployment",
          new XElement(wa + "Name", DeploymentName),
          new XElement(wa + "DeploymentSlot", DeploymentSlot),
          new XElement(wa + "Label", DeploymentLabel),
          new XElement(wa + "RoleList",
            new XElement(wa + "Role",
              new XElement(wa + "RoleName", RoleName),
              new XElement(wa + "RoleType", "PersistentVMRole"),
              new XElement(wa + "ConfigurationSets",
                new XElement(wa + "ConfigurationSet",
                  new XAttribute(xsi + "type", "WindowsProvisioningConfigurationSet"),
                  new XElement(wa + "ConfigurationSetType", "WindowsProvisioningConfiguration"),
                  new XElement(wa + "ComputerName", RoleName),
                  new XElement(wa + "AdminPassword", AdminPassword),
                  new XElement(wa + "AdminUsername", UserName))),
              new XElement(wa + "OSVirtualHardDisk",
                new XElement(wa + "MediaLink", OSVhdPath),
                new XElement(wa + "SourceImageName", SourceImage))))));

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

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

    // Add the request headers and get the response from 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";

      if (requestBody != null)
      {
        using (Stream requestStream = request.GetRequestStream())
        {
          using (StreamWriter streamWriter = new StreamWriter(
            requestStream, System.Text.UTF8Encoding.UTF8))
          {
            requestBody.Save(streamWriter, SaveOptions.DisableFormatting);
          }
        }
      }

      HttpWebResponse response;
      try
      {
        response = (HttpWebResponse)request.GetResponse();
      }
      catch (WebException ex)
      {
        response = (HttpWebResponse)ex.Response;
      }
      response.Close();
      return response;
    }
  }
}

Mostrar:
© 2014 Microsoft