匯出 (0) 列印
全部展開

建立虛擬機器部署

更新日期: 2014年5月

Create Virtual Machine Deployment 作業會根據指定的組態建立部署,然後在該部署中建立虛擬機器。

請使用下列格式指定 Create Virtual Machine Deployment 要求。以訂用帳戶識別碼取代 <subscription-id>,並以雲端服務的名稱取代 <cloudservice-name>

 

方法 要求 URI

POST

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

您必須確定對管理服務發出的要求是安全的。如需其他詳細資訊,請參閱驗證服務管理要求

無。

下表描述要求標頭。

 

要求標頭 描述

x-ms-version

必要項。指定用於這個要求的作業版本。此標頭應該設定為 2012-03-01 或更高版本。如需版本設定標頭的詳細資訊,請參閱服務管理版本設定

要求主體的格式如下:


<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>
         <ComponentName>name-of-component</ComponentName>
         <ComponentSettings>
          <ComponentSetting>
           <SettingName>name-of-setting</SettingName>
           <Content>base-64-encoded-XML-content</Content>
          </ComponentSetting>
         </ComponentSettings>
        </Components>
       </UnattendedPass>
      </Passes>
     </AdditionalUnattendedContent>
    </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>
       <LoadBalancerName>name-of-internal-loadbalancer</LoadBalancerName>
       <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>
      </InputEndpoint>
     </InputEndpoints>
     <SubnetNames>
      <SubnetName>name-of-subnet</SubnetName>
     </SubnetNames> 
     <StaticVirtualNetworkIPAddress>ip-address</StaticVirtualNetworkIPAddress>
     <PublicIPs>
      <PublicIP>
       <Name>name-of-public-ip</Name>
      <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>
    </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>
    <RemoteSourceImageLink>path-to-source-image</RemoteSourceImageLink>
    <OS>operating-system-of-image</OS>
   </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>

下表說明要求主體的元素。

 

元素名稱 描述

Name

必要項。指定部署的名稱。部署名稱必須是唯一的,有別於雲端服務的任何其他部署。

DeploymentSlot

必要項。指定虛擬機器的部署環境。唯一允許的值為 Production

Label

必要項。指定部署的識別項。標籤的長度最多可達 100 個字元。此標籤可用來進行追蹤。

RoleList

必要項。包含所部署之虛擬機器的相關資訊。

VirtualNetworkName

選擇性。指定部署所屬的現有虛擬網路的名稱。

虛擬網路是透過呼叫 設定網路組態 作業所建立。

Dns

選擇性。包含要與虛擬機器建立關聯的 DNS 伺服器的清單。

ReservedIPName

選擇性。指定要指派給部署的保留 IP 位址之名稱。使用元素將位址指派給部署之前,您必須先執行Create Reserved IP Address

必須使用 2014-05-01 版或更高版本,才能使用 ReservedIPName 元素。

LoadBalancers

選擇性。包含可指派給輸入端點之內部負載平衡器的清單。

必須使用 2014-05-01 版或更高版本,才能使用 LoadBalancers 元素。

包含所部署之虛擬機器的相關資訊。

 

元素名稱 描述

Role

必要項。包含用以建立虛擬機器的組態集。

包含用以建立虛擬機器的組態集。

 

元素名稱 描述

RoleName

必要項。指定虛擬機器的名稱。

RoleType

必要項。指定要使用的角色類型。若為虛擬機器,此值必須是 PersistentVMRole

ConfigurationSets

選擇性。包含定義系統及應用程式設定之組態集的集合。

ResourceExtensionReferences

選擇性。包含要安裝於虛擬機器上的資源擴充功能集合。當 ProvisionGuestAgent 設定為 true 時才會使用此元素。

必須使用 2013-11-01 版或更高版本,才能使用 ResourceExtensionReferences 元素。

VMImageName

選擇性。指定要用於建立虛擬機器之 VM 映像的名稱。如果使用此元素,則不會使用 ConfigurationSets 元素。如需詳細資訊,請參閱擷取 VM 映像

必須使用 2014-02-01 版或更高版本,才能使用 VMImageName 元素。

MediaLocation

如果是要透過發行的 VM 映像建立虛擬機器,則為必要項目。指定當 VMImageName 指定發行的 VM 映像時,建立的 VHD 檔案所在位置。

必須使用 2014-05-01 版或更高版本,才能使用 MediaLocation 元素。

AvailabilitySetName

選擇性。指定虛擬機器集合的名稱。指定於相同可用性設定組的虛擬機器會配置到不同的節點,以便盡可能提高可用性。如需有關可用性設定組的詳細資訊,請參閱管理虛擬機器的可用性

DataVirtualHardDisks

選擇性。包含用以將資料磁碟加入至虛擬機器的參數。如果使用 VM 映像來建立虛擬機器,則不會使用此元素。如需有關資料磁碟的詳細資訊,請參閱管理磁碟及映像

OSVirtualHardDisk

選擇性。包含用以建立虛擬機器之作業系統磁碟的參數。如果使用 VM 映像來建立虛擬機器,則不會使用此元素。

RoleSize

選擇性。指定虛擬機器的大小。預設的大小是 Small (小型)。如需有關虛擬機器大小的詳細資訊,請參閱 Azure 的虛擬機器和雲端服務大小

ProvisionGuestAgent

選擇性。指出虛擬機器上是否已安裝 VM 代理程式。若要在虛擬機器上執行資源擴充功能,必須安裝此服務。

可能的值為:

  • true

  • false

包含組態集的集合,其中指定系統和應用程式組態設定。

 

元素名稱 描述

ConfigurationSet

必要項。指定虛擬機器的組態元素。需要 type 屬性以避免將系統管理員密碼寫入作業記錄檔。

ConfigurationSetType

必要項。若要建立虛擬機器,您必須指定下列其中一種組態集:

  • WindowsProvisioningConfiguration

  • LinuxProvisioningConfiguration

選擇性。您可以選擇性地指定 NetworkConfiguration 組態集,其中包含為虛擬機器建立虛擬網路組態所需的中繼資料。

ComputerName

在 WindowsProvisioningConfiguration 下為選擇性。指定虛擬機器的電腦名稱。如果未指定電腦名稱,將會指派由部署名稱、角色名稱和識別碼組合而成的電腦名稱。電腦名稱的長度必須是 1 到 15 個字元。

AdminPassword

在 WindowsProvisioningConfiguration 下為選擇性。指定使用於虛擬機器上正在建立之管理員帳戶的密碼。如果您正在使用映像建立虛擬機器,必須使用 AdminUsername 元素,在機器上指定要建立的管理員帳戶的名稱。您必須使用 AdminPassword 元素來指定正在建立的管理員帳戶的密碼。如果使用現有的專用磁碟來建立虛擬機器,則不會使用此元素,因為磁碟中已存在帳戶。

EnableAutomaticUpdates

在 WindowsProvisioningConfiguration 下為選擇性。指定虛擬機器是否啟用自動更新。

可能的值為:

  • true

  • false

預設值是 true

TimeZone

在 WindowsProvisioningConfiguration 下為選擇性。指定虛擬機器的時區。

如需支援時區項目的完整清單,您可以:

  • 參考 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 登錄項目中列出的值。

  • 您可以使用 tzutil 命令列工具來列出有效的時間。

DomainJoin

在 WindowsProvisioningConfiguration 下為選擇性。包含定義虛擬機器即將加入之網域的屬性。

StoredCertificateSettings

在 WindowsProvisioningConfiguration 下為選擇性。包含要佈建到新虛擬機器的服務憑證的清單。

WinRM

在 WindowsProvisioningConfiguration 下為選擇性。包含虛擬機器上的 Windows 遠端管理服務的組態設定。藉此將啟用遠端 Windows PowerShell。

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

AdminUsername

在 WindowsProvisioningConfiguration 下為選擇性。指定用於存取虛擬機器所建立之管理員帳戶的名稱。如果您正在使用映像建立虛擬機器,必須使用此元素來指定要建立的管理員帳戶的名稱。您必須使用 AdminPassword 元素來指定正在建立的管理員帳戶的密碼。如果使用現有的專用磁碟來建立虛擬機器,則不會使用此元素,因為磁碟中已存在帳戶。

CustomData

在 WindowsProvisioningConfiguration 下為選擇性。指定自訂資料的 Base-64 編碼字串。Base-64 編碼字串會解碼成二進位陣列而儲存為虛擬機器上的檔案。二進位陣列的長度上限是 65535 個位元組。檔案將儲存至 %SYSTEMDRIVE%\AzureData\CustomData.bin。如果此檔案存在,就會遭到覆寫。目錄的安全性將設定為 System:完全控制和 Administrators:完全控制。

必須使用 2013-10-01 版或更高版本,才能使用 CustomData 元素。

AdditionalUnattendContent

選擇性。指定可併入 Unattend.xml 檔案 (由 Windows 安裝程式使用) 的額外 Base-64 編碼 XML 格式資訊。如需詳細資訊,請參閱回應檔案概觀

必須使用 2014-04-01 版或更高版本,才能使用 AdditionalUnattendContent 元素。

HostName

在 LinuxProvisioningConfiguration 下為必要項。指定虛擬機器的主機名稱。主機名稱的長度必須是 1 到 64 個字元。

UserName

在 LinuxProvisioningConfiguration 下為必要項。指定要在虛擬機器的 sudoer 群組中建立的使用者帳戶的名稱。使用者帳戶名稱的長度必須是 1 到 32 個字元。

UserPassword

在 LinuxProvisioningConfiguration 下為必要項。指定使用者帳戶的密碼。密碼的長度必須是 6 到 72 個字元。

DisableSshPasswordAuthentication

在 LinuxProvisioningConfiguration 下為選擇性。指定是否要停用 SSH 密碼驗證。根據預設,此值設定為 true。

可能的值為:

  • true

  • false

預設值是 true

SSH

在 LinuxProvisioningConfiguration 下為選擇性。指定要搭配虛擬機器使用的 SSH 公開金鑰和金鑰組。

CustomData

在 LinuxProvisioningConfiguration 下為選擇性。指定自訂資料的 Base-64 編碼字串。base-64 編碼字串位於虛擬機器 ISO 中的 ovf-env.xml 檔案中。檔案由 Azure Linux 代理程式複製到 /var/lib/waagent/ovf-env.xml。在佈建期間,Azure Linux 代理程式也會將 base-64 編碼字串資料存放於 /var/lib/waagent/CustomData。二進位陣列的長度上限是 65535 個位元組。

必須使用 2013-10-01 版或更高版本,才能使用 CustomData 元素。

InputEndpoints

在 NetworkConfiguration 下為選擇性。包含虛擬機器之外部端點的集合。

SubnetNames

如果指定 StaticVirtualNetworkIPAddress 則為必要項目,否則在 NetworkConfiguration 中為選擇性。包含虛擬機器所屬子網路的清單。

StaticVirtualNetworkIPAddress

選擇性。為虛擬網路中的虛擬機器指定內部 IP 位址。如果您指定這個元素,您也只能利用已定義的一組子網路指定 SubnetNames 元素。在此元素中指定的 IP 位址必須屬於 SubnetNames 定義的子網路,並且不可為此子網路中的前四個 IP 位址之一或最後一個 IP 位址。不支援將 Web 角色或背景工作角色部署至具有已定義 StaticVirtualNetworkIPAddress 之虛擬機器的子網路。

必須使用 2013-11-01 版或更高版本,才能使用 StaticVirtualNetworkIPAddress 元素。

PublicIPs

選擇性。包含除了虛擬機器的預設虛擬 IP 位址以外可使用的公用 IP 位址。

必須使用 2014-05-01 版或更高版本,才能使用 PublicIPs 元素。

包含定義虛擬機器即將加入之網域的屬性。

 

元素名稱 描述

認證

選擇性。指定將虛擬機器加入網域時所用的認證。

JoinDomain

選擇性。指定要加入的網域。

MachineObjectOU

選擇性。指定建立電腦帳戶所在之組織單位 (OU) 的輕量型目錄存取通訊協定 (LDAP) X 500 辨別名稱。這個帳戶位於電腦所加入之網域的網域控制站 Active Directory 中。

範例:

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

指定將虛擬機器加入網域時所用的認證。

 

元素名稱 描述

Domain

選擇性。指定用來驗證帳戶之網域的名稱。此值是完整的 DNS 網域。

如果沒有指定網域名稱,Username 就必須指定使用者主體名稱 (UPN) 格式 (user@fully-qualified-DNS-domain) 或 fully-qualified-DNS-domain\username 格式。

範例:

example.com

Username

必要項。指定網域中可用來加入網域的使用者名稱。

Password

必要項。指定要用來加入網域的密碼。

包含要佈建到新虛擬機器的服務憑證的清單。預存憑證設定會參考已經存在雲端服務中的憑證。在設定虛擬機器的預存憑證之前,您必須先呼叫 加入服務憑證 作業,或者使用管理入口網站加入憑證。

 

元素名稱 描述

CertificateSetting

必要項。指定憑證的參數。

StoreLocation

必要項。指定虛擬機器上的憑證存放區位置。

唯一支援的值為 LocalMachine

StoreName

必要項。指定要從中擷取憑證的憑證存放區名稱。

例如 “My”。

Thumbprint

必要項。指定憑證的憑證指紋。此憑證指紋必須指定現有的服務憑證。

包含虛擬機器上的 Windows 遠端管理服務的組態設定。

 

元素名稱 描述

Listeners

必要項。包含用於啟用遠端 Windows PowerShell 的資訊集合。

Listener

必要項。指定接聽程式的通訊協定和憑證資訊。

Protocol

指定接聽程式的通訊協定。

可能的值為:

  • Http

  • Https

此值會區分大小寫。

CertificateThumbprint

選擇性。指定安全連接的憑證指紋。如果沒有指定此值,系統就會產生自我簽署憑證並且用於虛擬機器。

指定可併入 Unattend.xml 檔案 (由 Windows 安裝程式使用) 的額外 Base-64 編碼 XML 格式資訊。

 

元素名稱 描述

PassName

必要項。指定套用內容的階段名稱。唯一允許的值為 oobeSystem

ComponentName

必要項。指定要設定所加入內容之元件的名稱。唯一允許的值為 Microsoft-Windows-Shell-Setup

SettingName

必要項。指定要套用內容之設定的名稱。

可能的值為:

  • FirstLogonCommands

  • AutoLogon

Content

必要項。指定可加入指定路徑和元件之 unattend.xml 檔案的 Base-64 編碼 XML 格式內容。XML 必須小於 4 KB,且必須併入要插入之設定或功能的根項目。

指定要搭配虛擬機器使用的 SSH 公開金鑰和金鑰組。

 

元素名稱 描述

PublicKeys

選擇性。指定 SSH 公開金鑰的集合。

PublicKey

必要項。指定公開金鑰。

FingerPrint

必要項。指定與雲端服務相關聯且包含 SSH 公開金鑰之 X509 憑證的 SHA1 指紋。

Path

必要項。指定虛擬機器上儲存 SSH 公開金鑰之檔案的完整路徑。如果檔案已經存在,指定的金鑰就會附加至該檔案。

範例:

/home/user/.ssh/authorized_keys

KeyPairs

必要項。指定 SSH 金鑰組的集合。

KeyPair

必要項。指定要安裝於虛擬機器上的 SSH 金鑰組。

FingerPrint

必要項。指定與雲端服務相關聯且包含 SSH 金鑰組之 X509 憑證的 SHA1 指紋。

Path

必要項。指定虛擬機器上儲存 SSH 私密金鑰之檔案的完整路徑。當多個金鑰寫入檔案時,就會覆寫檔案。SSH 公開金鑰會儲存在相同的目錄中,而且名稱與尾碼為 .pub 的私密金鑰檔案相同。

範例:

/home/user/.ssh/id_rsa

包含虛擬機器之外部端點的集合。

 

元素名稱 描述

InputEndpoint

必要項。指定屬性以定義虛擬機器的外部端點。

LoadBalancedEndpointSetName

選擇性。指定一組負載平衡端點的名稱。針對端點指定這個元素,就會將該端點加入至集合。

如果您要加入端點以使用遠端桌面連接到虛擬機器,請勿設定此屬性。

note附註
在虛擬機器的範圍內,端點名稱必須是唯一的。

LocalPort

必要項。指定虛擬機器所接聽的內部連接埠。

Name

必要項。指定外部端點的名稱。

Port

必要項。指定要用於端點的外部連接埠。

LoadBalancerProbe

選擇性。包含定義端點設定的屬性,以供負載平衡器用於監視虛擬機器的可用性,然後再將流量轉送至端點。

LoadBalancerName

選擇性。指定與此端點相關聯之內部負載平衡器的名稱。內部負載平衡器名稱在 LoadBalancers 中指定。

必須使用 2014-05-01 版或更高版本,才能使用 LoadBalancerName 元素。

Protocol

必要項。指定端點的傳輸通訊協定。

可能的值為:

  • TCP

  • UDP

EnableDirectServerReturn

選擇性。指定端點是否使用 Direct Server Return。RDP、SSH 或 WinRM 端點不支援 EnableDirectServerReturn 元素,且在端點的公用連接埠和本機連接埠不同時也不支援。建議只在為 SQL Server 及 AlwaysOn 可用性群組設定虛擬機器時使用此元素。如需詳細資訊,請參閱 Azure 虛擬機器中的 SQL Server 高可用性和災害復原

可能的值為:

  • true

  • false

預設值是 false

EndpointACL

選擇性。包含用以控制將網路流量送至端點的規則集合。

必須使用 2013-06-01 版或更高版本,才能使用 EndpointACL 元素。

包含定義端點設定的屬性,以供負載平衡器用於監視虛擬機器的可用性,然後再將流量轉送至端點。

 

元素名稱 描述

Path

選擇性。指定要檢查以判斷虛擬機器可用性狀態的相對路徑。如果 Protocol 設定為 TCP,此值必須為 NULL。

範例:

path

探查將會使用 https://example.com/path 來執行探查。

Port

選擇性。指定要用來檢查虛擬機器可用性狀態的連接埠。

Protocol

選擇性。指定要用來檢查虛擬機器可用性狀態的通訊協定。

可能的值為:

  • HTTP

  • TCP

IntervalInSeconds

選擇性。指定負載平衡器探查的間隔 (以秒為單位)。最小值是 5 秒。預設值是 15 秒。

TimeoutInSeconds

選擇性。指定負載平衡器探查的逾時 (以秒為單位)。最小值是 11 秒。預設值是 31 秒。

包含用以控制將網路流量送至端點的規則集合。

 

元素名稱 描述

Rules

必要項。指定存取控制規則的集合。最多允許 50 項規則。

Rule

必要項。指定存取控制規則的定義。

Order

必要項。指定規則的優先順序。此值可介於 0 到 65535 之間。集合內每一項規則的順序編號都必須是唯一的。順序編號愈低,規則的優先順序愈高。

Action

必要項。指定應該允許或拒絕符合規則的流量。

可能的值為:

  • permit

  • deny

RemoteSubnet

必要項。指定規則的子網路。子網路必須採用 IPV4 無類別網域間路由選擇 (CIDR) 標記法,而且必須是有效的子網路。

例如:10.0.0.0/24。

Description

選擇性。指定規則的描述。描述的長度上限是 256 個字元。

包含除了虛擬機器的預設虛擬 IP 位址以外可使用的公用 IP 位址。

 

元素名稱 描述

PublicIP

必要項。指定可用來與虛擬機器通訊的額外公用 IP 位址。

Name

必要項。指定公用 IP 位址的名稱。

包含虛擬機器所屬子網路的清單。

 

元素名稱 描述

SubnetName

必要項。指定虛擬機器所屬子網路的名稱。

包含用以將資料磁碟加入至虛擬機器的參數。

 

元素名稱 描述

DataVirtualHardDisk

必要項。指定用來建立資料磁碟的屬性。

HostCaching

選擇性。指定資料磁碟的快取模式。

可能的值為:

  • None

  • ReadOnly

  • ReadWrite

預設值是 None

DiskLabel

選擇性。如果將要加入的磁碟已在訂閱中註冊,便會忽略這個元素。若是建立新的磁碟,這個元素將用於提供磁碟的描述。這個元素的值只能透過程式設計方式取得,而不會出現在管理入口網站中。

DiskName

選擇性。如果將要加入的磁碟已在訂閱中註冊,這個元素即用於識別所加入的磁碟。若是由 Azure 建立新磁碟和相關聯的 VHD,則 Azure 將指派由部署名稱、角色名稱和識別碼組合而成的唯一名稱,不會使用這個元素。

磁碟的名稱只能包含英數字元、底線、句號或虛線。名稱長度不得超過 256 個字元。名稱不得以句號或虛線結尾。

您可以使用列出磁碟尋找可用的磁碟。

Lun

選擇性。指定資料磁碟的邏輯單元編號 (LUN)。如果磁碟是第一個加入的磁碟,這個元素即為選擇性且將使用預設值 0。如果加入的磁碟不止一個,這個元素則為必要項。

您可以利用取得角色找出已使用的 LUN 編號。

有效的 LUN 值是 0 到 15。

LogicalDiskSizeInGB

選擇性。指定要連接至虛擬機器之空白磁碟的大小 (以 GB 為單位)。如果將要加入的磁碟已在訂閱中註冊,便會忽略這個元素。若加入的方式是由 Azure 建立磁碟和 VHD,這個元素將定義新磁碟的大小。

可加入至虛擬機器的磁碟數目受限於虛擬機器的大小。如需詳細資訊,請參閱 Azure 的虛擬機器和雲端服務大小

這個元素是與 MediaLink 元素搭配使用。

MediaLink

選擇性。如果將要加入的磁碟已在訂閱中註冊,或該磁碟的 VHD 已存在於 Blob 儲存體,便會忽略這個元素。若 Blob 儲存體中沒有此 VHD 檔案,這個元素將定義加入新磁碟時新建立的 VHD 所在位置。

範例:

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

SourceMediaLink

選擇性。如果將要加入的磁碟已在訂閱中註冊,或該磁碟的 VHD 不存在於 Blob 儲存體,便會忽略這個元素。若 Blob 儲存體中存在此 VHD 檔案,這個元素將定義 VHD 的路徑,以此做為來源註冊磁碟並將其連接至虛擬機器。

包含用以建立虛擬機器之作業系統磁碟的參數。

 

元素名稱 描述

HostCaching

選擇性。指定作業系統磁碟的快取模式。這項設定會影響磁碟的一致性和效能。

可能的值為:

  • ReadOnly

  • ReadWrite

預設值是 ReadWrite

note附註
變更此值會導致虛擬機器重新啟動。

DiskLabel

選擇性。指定磁碟的描述。

DiskName

如果正在使用現有的磁碟來建立虛擬機器,則為必要項目。指定新磁碟或現有磁碟的名稱。若為新磁碟,如果沒有指定這個元素,將會指派由部署名稱、角色名稱和識別碼組合而成的唯一名稱。

磁碟的名稱只能包含英數字元、底線、句號或虛線。名稱長度不得超過 256 個字元。名稱不得以句號或虛線結尾。

MediaLink

如果正在從平台映像建立虛擬機器,則為必要項目。指定當 SourceImageName 指定平台映像時,建立的 VHD 檔案所在位置。如果正在使用現有磁碟建立虛擬機器,則不使用此元素。

範例:

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

SourceImageName

選擇性。指定要用來建立虛擬機器之映像的名稱。您可以指定使用者映像或平台映像。映像一定會與 VHD 相關聯,後者是以分頁 Blob 的形式儲存在 Azure 儲存體帳戶中的 .vhd 檔案。如果指定平台映像,便會建立相關聯的 VHD,而必須使用 MediaLink 元素指定此 VHD 在儲存體中的位置。

RemoteSourceImageLink

選擇性。指定儲存用來建立虛擬機器之 OS 映像位置的 URI。此位置可以是與 Azure 中的使用者或平台映像儲存機制不同的位置。映像一定會與 VHD 相關聯,後者是以分頁 Blob 的形式儲存在 Windows Azure 儲存體帳戶中的 .vhd 檔案。如果使用此元素指定映像的路徑,便會建立相關聯的 VHD,而必須使用 MediaLink 元素指定此 VHD 在儲存體中的位置。如果使用此元素,則不會使用 SourceImageName 元素。

必須使用 2014-05-01 版或更高版本,才能使用 RemoteSourceImageLink 元素。

OS

如果使用了 RemoteSourceImageLink,則為必要項目。指定映像中安裝的作業系統類型。

可能的值為:

  • Windows

  • Linux

包含要安裝於虛擬機器上的資源擴充功能集合。資源擴充功能是在虛擬機器上安裝的軟體元件。若要安裝資源延伸模組,必須在虛擬機器上安裝 VM 代理程式。如需相關資訊,請參閱管理延伸模組

 

元素名稱 描述

ResourceExtensionReference

必要項。指定應在虛擬機器上安裝之資源擴充功能的屬性。

ReferenceName

必要項。指定資源擴充功能的參考名稱。

Publisher

必要項。指定建立資源擴充功能的發行者名稱。您可以使用 列出資源擴充功能 尋找資源擴充功能的發行者名稱。

Name

必要項。指定資源擴充功能的名稱。您可以使用 列出資源擴充功能 尋找可用的資源擴充功能名稱。

Version

必要項。指定資源擴充功能的版本。您可以將此值設為 * 以使用最新的延伸模組版本。如果已加入或更新延伸模組,必須確定先將 ReplicationCompleted 的值設為 true 才能使用延伸模組版本。您可以使用 列出資源擴充功能版本 來判定複寫狀態,及延伸模組的可用版本。

ResourceExtensionParameterValues

選擇性。包含在安裝時傳遞至資源擴充功能的參數集合。

State

選擇性。指定資源擴充功能的狀態。建立虛擬機器後,可指定的唯一狀態為 enable,該狀態是未使用此元素時的預設值。如需停用或移除延伸模組的詳細資訊,請參閱更新角色

包含在安裝時傳遞至資源擴充功能的參數集合。

 

元素名稱 描述

ResourceExtensionParameterValue

必要項。指定參數的金鑰、值和類型。

Key

必要項。指定參數的金鑰。

Value

必要項。指定參數的 Base-64 編碼值。如果延伸模組的組態是在 XML 中格式化,則會使用公用或私人結構描述來驗證此值。使用的結構描述視 Type 的值而定。

如果延伸模組的組態是在 JSON 中格式化,則此值必須包含有效的 JSON 物件。公用或私人結構描述無法用於驗證物件。若要使用 JSON 物件,版本必須是 2014-04-01 或更新版本。

Type

必要項。指定資源擴充功能的類型。

可能的值為:

  • Public

  • Private

如果這個值設為 Private,則參數不會由取得部署傳回。您最多只能指定兩個參數,且只能有一個公用參數及一個私用參數。

包含要與虛擬機器建立關聯的 DNS 伺服器的清單。

 

元素名稱 描述

DnsServers

必要項。包含各項參數以指定要用於虛擬機器的 DNS 伺服器。

DnsServer

必要項。包含 DNS 伺服器的 NameAddress 元素。

Name

必要項。指定 DNS 伺服器的名稱。

Address

必要項。指定 DNS 伺服器的 IP 位址。

包含可指派給輸入端點之內部負載平衡器的清單。

 

元素名稱 描述

LoadBalancer

必要項。指定內部負載平衡器的屬性。

Name

必要項。指定內部負載平衡器的名稱。

FrontendIpConfiguration

必要項。指定負載平衡器所提供之虛擬 IP 位址的組態。

Type

必要項。指定負載平衡器所提供之虛擬 IP 位址的類型。唯一允許的值為 Private

SubnetName

如果部署存在於虛擬網路中,且指派了 StaticVirtualNetworkIPAddress,則為必要項目。指定負載平衡器所使用之虛擬網路的子網路。負載平衡器所管理之虛擬 IP 位址內含於這個子網路中。

StaticVirtualNetworkIPAddress

選擇性。指定負載平衡器透過虛擬網路中子網路所使用的虛擬 IP 位址。

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

成功的作業會傳回狀態碼「202 (已接受)」。如需狀態碼的資訊,請參閱服務管理狀態和錯誤碼

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

 

回應標頭 描述

x-ms-request-id

唯一識別對管理服務發出之要求的值。

無。

您也可以使用下列資源,建立虛擬機器的部署:

建立虛擬機器的部署時,務必確定雲端服務以及您所使用的磁碟或映像位於相同的地區。例如,假設雲端服務是在 West US 地區建立,您所使用的磁碟或映像所在的儲存體帳戶也應該位於 West US 地區。

若要執行這個範例,請取代下列變數的值:

 

變數

Thumbprint

提供已上傳之管理憑證的憑證指紋,即可驗證在 Azure 中執行的作業。如需詳細資訊,請參閱建立及上傳 Azure 的管理憑證

SubscriptionId

提供尋找適當雲端服務所需的訂用帳戶識別碼。若要尋找訂用帳戶識別碼,請按一下管理入口網站的 [設定]。

ServiceName

提供您要部署虛擬機器的現有雲端服務名稱。若要尋找現有服務的名稱,您可以使用列出雲端服務。您可以使用管理入口網站、使用建立雲端服務,或使用 新 AzureService Cmdlet 建立雲端服務。

DeploymentName

提供新部署的名稱。

DeploymentLabel

提供部署的識別碼。此標籤可用來進行追蹤。

UserName

提供虛擬機器的管理員帳戶名稱。

RoleName

提供角色的名稱。在這個範例中,角色名稱可用來做為電腦名稱。

SourceImage

提供您要用來佈建虛擬機器的平台映像名稱。您可以使用 列出作業系統映像 取得映像儲存機制中的可用平台映像名稱。

OSVhdPath

提供將會儲存已建立之作業系統磁碟的 Azure 儲存體路徑。如需詳細資訊,請參閱如何建立儲存體帳戶


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

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

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