共用方式為


Microsoft.Batch batchAccounts/pools 2017-09-01

Bicep 資源定義

batchAccounts/pools 資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.Batch/batchAccounts/pools 資源,請將下列 Bicep 新增至範本。

resource symbolicname 'Microsoft.Batch/batchAccounts/pools@2017-09-01' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    applicationLicenses: [
      'string'
    ]
    applicationPackages: [
      {
        id: 'string'
        version: 'string'
      }
    ]
    certificates: [
      {
        id: 'string'
        storeLocation: 'string'
        storeName: 'string'
        visibility: [
          'string'
        ]
      }
    ]
    deploymentConfiguration: {
      cloudServiceConfiguration: {
        currentOSVersion: 'string'
        osFamily: 'string'
        targetOSVersion: 'string'
      }
      virtualMachineConfiguration: {
        dataDisks: [
          {
            caching: 'string'
            diskSizeGB: int
            lun: int
            storageAccountType: 'string'
          }
        ]
        imageReference: {
          id: 'string'
          offer: 'string'
          publisher: 'string'
          sku: 'string'
          version: 'string'
        }
        licenseType: 'string'
        nodeAgentSkuId: 'string'
        osDisk: {
          caching: 'string'
        }
        windowsConfiguration: {
          enableAutomaticUpdates: bool
        }
      }
    }
    displayName: 'string'
    interNodeCommunication: 'string'
    maxTasksPerNode: int
    metadata: [
      {
        name: 'string'
        value: 'string'
      }
    ]
    networkConfiguration: {
      endpointConfiguration: {
        inboundNatPools: [
          {
            backendPort: int
            frontendPortRangeEnd: int
            frontendPortRangeStart: int
            name: 'string'
            networkSecurityGroupRules: [
              {
                access: 'string'
                priority: int
                sourceAddressPrefix: 'string'
              }
            ]
            protocol: 'string'
          }
        ]
      }
      subnetId: 'string'
    }
    scaleSettings: {
      autoScale: {
        evaluationInterval: 'string'
        formula: 'string'
      }
      fixedScale: {
        nodeDeallocationOption: 'string'
        resizeTimeout: 'string'
        targetDedicatedNodes: int
        targetLowPriorityNodes: int
      }
    }
    startTask: {
      commandLine: 'string'
      environmentSettings: [
        {
          name: 'string'
          value: 'string'
        }
      ]
      maxTaskRetryCount: int
      resourceFiles: [
        {
          blobSource: 'string'
          fileMode: 'string'
          filePath: 'string'
        }
      ]
      userIdentity: {
        autoUser: {
          elevationLevel: 'string'
          scope: 'string'
        }
        userName: 'string'
      }
      waitForSuccess: bool
    }
    taskSchedulingPolicy: {
      nodeFillType: 'string'
    }
    userAccounts: [
      {
        elevationLevel: 'string'
        linuxUserConfiguration: {
          gid: int
          sshPrivateKey: 'string'
          uid: int
        }
        name: 'string'
        password: 'string'
      }
    ]
    vmSize: 'string'
  }
}

屬性值

ApplicationPackageReference

名字 描述 價值
id 要安裝的應用程式套件識別碼。 這必須位於與集區相同的批次帳戶內。 這可以是特定版本的參考,如果存在,則為預設版本。 字串 (必要)
版本 如果省略此專案,而且此應用程式未指定預設版本,要求會失敗,錯誤碼 InvalidApplicationPackageReferences。 如果您直接呼叫 REST API,HTTP 狀態代碼為 409。 字串

AutoScaleSettings

名字 描述 價值
evaluationInterval 如果省略,預設值為15分鐘(PT15M)。 字串
公式 集區中所需計算節點數目的公式。 字串 (必要)

AutoUserSpecification

名字 描述 價值
elevationLevel nonAdmin - 自動使用者是標準使用者,沒有提升許可權的存取權。 admin - 自動使用者是具有較高存取權的使用者,並使用完整的系統管理員許可權運作。 預設值為 nonAdmin。 'Admin'
'NonAdmin'
範圍 pool - 指定工作以在集區中的每個節點上建立的通用自動使用者帳戶執行。 task - 指定服務應該為工作建立新的使用者。 預設值為 task。 'Pool'
'Task'

CertificateReference

名字 描述 價值
id 要安裝在集區上之憑證的完整標識碼。 這必須位於與集區相同的批次帳戶內。 字串 (必要)
storeLocation 預設值為 currentUser。 此屬性僅適用於使用 Windows 節點設定的集區(也就是使用 cloudServiceConfiguration 建立,或使用 Windows 映像參考使用 virtualMachineConfiguration 建立)。 針對 Linux 計算節點,憑證會儲存在工作工作目錄內的目錄中,而環境變數AZ_BATCH_CERTIFICATES_DIR會提供給工作來查詢此位置。 對於可見度為 『remoteUser』 的憑證,會在使用者的主目錄中建立 『certs』 目錄(例如 /home/{user-name}/certs),並將憑證放在該目錄中。 'CurrentUser'
'LocalMachine'
storeName 此屬性僅適用於使用 Windows 節點設定的集區(也就是使用 cloudServiceConfiguration 建立,或使用 Windows 映像參考使用 virtualMachineConfiguration 建立)。 常見的存放區名稱包括:My、Root、CA、Trust、Disallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定義存放區名稱。 預設值為 My。 字串
能見度 值為:

starttask - 執行啟動工作的用戶帳戶。
task - 執行作業工作的帳戶。
remoteuser - 用戶遠端存取節點的帳戶。

您可以在此集合中指定多個可見度。 預設值為所有帳戶。
包含任何的字串數組:
'RemoteUser'
'StartTask'
'Task'

CloudServiceConfiguration

名字 描述 價值
currentOSVersion 如果集區狀態為 Upgrade,則這可能與 targetOSVersion 不同。 在此情況下,有些虛擬機可能位於 targetOSVersion 上,有些虛擬機可能會在升級程式期間位於 currentOSVersion 上。 升級所有虛擬機之後,currentOSVersion 會更新為與 targetOSVersion 相同的 。 字串
osFamily 可能的值為:2 - OS 系列 2,相當於 Windows Server 2008 R2 SP1。 3 - OS 系列 3,相當於 Windows Server 2012。 4 - OS 系列 4,相當於 Windows Server 2012 R2。 5 - OS 系列 5,相當於 Windows Server 2016。 如需詳細資訊,請參閱 Azure 客體 OS 版本 (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 字串 (必要)
targetOSVersion 預設值為 * ,指定指定作業系統系列的最新操作系統版本。 字串

DataDisk

名字 描述 價值
緩存 值為:

none - 未啟用磁碟的快取模式。
readOnly - 磁碟的快取模式是只讀的。
readWrite - 磁碟的快取模式是讀取和寫入。

快取的預設值為 none。 如需快取選項的相關信息,請參閱:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/
'None'
'ReadOnly'
'ReadWrite'
diskSizeGB 建立新數據磁碟時,以 GB 為單位的初始磁碟大小。 int (必要)
lun 可用來唯一識別每個數據磁碟。 如果連結多個磁碟,則每個磁碟都應該有相異的 Lun。 int (必要)
storageAccountType 如果省略,預設值為 「Standard_LRS」。。 值為:

Standard_LRS - 資料磁碟應使用標準本地備援記憶體。
Premium_LRS - 資料磁碟應該使用進階本地備援記憶體。
'Premium_LRS'
'Standard_LRS'

DeploymentConfiguration

名字 描述 價值
cloudServiceConfiguration 這個屬性和 virtualMachineConfiguration 互斥,而且必須指定其中一個屬性。 如果 Batch 帳戶的 poolAllocationMode 屬性設定為 'UserSubscription',則無法指定此屬性。 CloudServiceConfiguration
virtualMachineConfiguration 此屬性和 cloudServiceConfiguration 互斥,而且必須指定其中一個屬性。 VirtualMachineConfiguration

EnvironmentSetting

名字 描述 價值
名字 環境變數的名稱。 字串 (必要)
價值 環境變數的值。 字串

FixedScaleSettings

名字 描述 價值
nodeDeallocationOption 如果省略,預設值為 Requeue。 'Requeue'
'RetainedData'
'TaskCompletion'
'Terminate'
resizeTimeout 預設值為15分鐘。 逾時值使用 ISO 8601 格式。 例如,使用 PT10M 10 分鐘。 最小值為 5 分鐘。 如果您指定小於 5 分鐘的值,Batch 服務會拒絕要求併發生錯誤;如果您直接呼叫 REST API,則 HTTP 狀態代碼為 400 (不正確的要求)。 字串
targetDedicatedNodes 至少必須設定其中一個 targetDedicatedNodes,targetLowPriority 節點。 int
targetLowPriorityNodes 至少必須設定其中一個 targetDedicatedNodes,targetLowPriority 節點。 int

ImageReference

名字 描述 價值
id 這個屬性與其他屬性互斥。 虛擬機映像必須位於與 Azure Batch 帳戶相同的區域和訂用帳戶中。 如需與 Batch 服務通訊之 Batch 節點代理程式的防火牆設定相關信息,請參閱 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 。 字串
提供 例如,UbuntuServer 或 WindowsServer。 字串
發行人 例如,Canonical 或 MicrosoftWindowsServer。 字串
sku 例如,14.04.0-LTS 或 2012-R2-Datacenter。 字串
版本 您可以指定 'latest' 的值來選取映像的最新版本。 如果省略,預設值為 'latest'。 字串

InboundNatPool

名字 描述 價值
backendPort 這在 Batch 集區內必須是唯一的。 可接受的值介於 1 到 65535 之間,除了 22、3389、29876 和 29877 之外,保留這些值。 如果提供任何保留值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
frontendPortRangeEnd 可接受的值範圍介於 1 到 65534 之間,但 Batch 服務保留的埠從 50000 到 55000。 集區內的所有範圍都必須是相異且無法重疊的。 如果提供任何保留或重疊的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
frontendPortRangeStart 可接受的值範圍介於 1 到 65534 之間,但保留的埠介於 50000 到 55000 之間。 集區內的所有範圍都必須是相異且無法重疊的。 如果提供任何保留或重疊的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
名字 名稱在 Batch 集區內必須是唯一的,可以包含字母、數位、底線、句號和連字元。 名稱必須以字母或數字開頭,結尾必須是字母、數位或底線,且不能超過 77 個字元。 如果提供任何無效的值,要求就會失敗,且 HTTP 狀態代碼為 400。 字串 (必要)
networkSecurityGroupRules 可以跨 Batch 集區上所有端點指定的規則數目上限為 25。 如果未指定網路安全組規則,則會建立默認規則以允許輸入存取指定的 backendPort。 如果超過網路安全組規則的最大數目,要求會失敗,並出現 HTTP 狀態代碼 400。 NetworkSecurityGroupRule[]
協定 端點的通訊協定。 'TCP'
'UDP' (必要)

LinuxUserConfiguration

名字 描述 價值
gid uid 和 gid 屬性必須一起指定或完全不指定。 如果未指定,則基礎操作系統會挑選 gid。 int
sshPrivateKey 私鑰不得受到密碼保護。 當集區的 enableInterNodeCommunication 屬性為 true 時,私鑰用於在 Linux 集區中的節點之間自動設定非對稱密鑰型驗證(如果 enableInterNodeCommunication 為 false,則會忽略它)。 其方式是將金鑰組放入使用者的 .ssh 目錄中。 如果未指定,則不會在節點之間設定無密碼 SSH(不會修改使用者的 .ssh 目錄)。 字串
uid uid 和 gid 屬性必須一起指定或完全不指定。 如果未指定基礎操作系統,則會挑選 uid。 int

MetadataItem

名字 描述 價值
名字 元數據項目的名稱。 字串 (必要)
價值 元數據專案的值。 字串 (必要)

Microsoft.Batch/batchAccounts/pools

名字 描述 價值
名字 資源名稱 字串

約束:
最小長度 = 1
最大長度 = 1
模式 = ^[a-zA-Z0-9_-]+$ (必要)
父母 在 Bicep 中,您可以指定子資源的父資源。 只有在父資源外部宣告子資源時,才需要新增這個屬性。

如需詳細資訊,請參閱 父資源外部的子資源
類型資源的符號名稱:batchAccounts
性能 與集區相關聯的屬性。 PoolProperties

NetworkConfiguration

名字 描述 價值
endpointConfiguration 只有具有 virtualMachineConfiguration 屬性的集區才支援集區端點組態。 PoolEndpointConfiguration
subnetId 虛擬網路必須位於與 Azure Batch 帳戶相同的區域和訂用帳戶中。 指定的子網應該有足夠的可用IP位址來容納集區中的節點數目。 如果子網沒有足夠的可用IP位址,集區會部分配置計算節點,而且會發生重設大小錯誤。 'MicrosoftAzureBatch' 服務主體必須具有指定 VNet 的「傳統虛擬機參與者」Role-Based 訪問控制 (RBAC) 角色。 指定的子網必須允許來自 Azure Batch 服務的通訊,才能排程計算節點上的工作。 藉由檢查指定的 VNet 是否有任何相關聯的網路安全組 (NSG),即可驗證此情況。 如果 NSG 拒絕與指定子網中計算節點的通訊,Batch 服務會將計算節點的狀態設定為無法使用。 針對透過 virtualMachineConfiguration 建立的集區,Batch 帳戶必須具有 poolAllocationMode userSubscription 才能使用 VNet。 如果指定的 VNet 有任何相關聯的網路安全組 (NSG),則必須啟用一些保留的系統埠來進行輸入通訊。 針對使用虛擬機設定建立的集區,請啟用埠 29876 和 29877,以及適用於 Linux 的埠 22 和適用於 Windows 的埠 3389。 針對使用雲端服務設定建立的集區,請啟用埠 10100、20100 和 30100。 同時在埠 443 上啟用對 Azure 記憶體的輸出連線。 如需詳細資訊,請參閱:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 字串

NetworkSecurityGroupRule

名字 描述 價值
訪問 應該針對指定的IP位址、子網範圍或卷標採取的動作。 'Allow'
'拒絕' (必要)
優先權 集區內的優先順序必須是唯一的,而且會依優先順序進行評估。 數位越低,優先順序越高。 例如,可以使用訂單號碼 150、250 和 350 來指定規則。 順序編號為 150 的規則優先於順序為 250 的規則。 允許的優先順序為 150 到 3500。 如果提供任何保留或重複的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
sourceAddressPrefix 有效值為單一IP位址(例如10.10.10.10.10)、IP子網(例如192.168.1.0/24)、預設標記或 * (適用於所有位址)。 如果提供任何其他值,要求就會因為 HTTP 狀態代碼 400 而失敗。 字串 (必要)

OSDisk

名字 描述 價值
緩存 預設值為 none。 'None'
'ReadOnly'
'ReadWrite'

PoolEndpointConfiguration

名字 描述 價值
inboundNatPools 每個 Batch 集區的輸入 NAT 集區數目上限為 5。 如果超過輸入 NAT 集區數目上限,要求會失敗,並出現 HTTP 狀態代碼 400。 InboundNatPool[] (必要)

PoolProperties

名字 描述 價值
applicationLicenses 應用程式授權清單必須是可用 Batch 服務應用程式授權的子集。 如果要求不支持的授權,集區建立將會失敗。 string[]
applicationPackages 對應用程式套件所做的變更會影響聯結集區的所有新計算節點,但不會影響集區中已經存在於集區的計算節點,直到重新啟動或重新映像為止。 ApplicationPackageReference[]
證書 針對 Windows 計算節點,Batch 服務會將憑證安裝至指定的證書存儲和位置。 針對 Linux 計算節點,憑證會儲存在工作工作目錄內的目錄中,而環境變數AZ_BATCH_CERTIFICATES_DIR會提供給工作來查詢此位置。 對於可見度為 『remoteUser』 的憑證,會在使用者的主目錄中建立 『certs』 目錄(例如 /home/{user-name}/certs),並將憑證放在該目錄中。 CertificateReference[]
deploymentConfiguration 使用 CloudServiceConfiguration 會指定應該使用 Azure 雲端服務 (PaaS) 建立節點,而 VirtualMachineConfiguration 則使用 Azure 虛擬機 (IaaS)。 DeploymentConfiguration
displayName 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。 字串
interNodeCommunication 這會限制哪些節點可以指派給集區。 啟用此值可減少集區中配置要求節點數目的機會。 如果未指定,這個值會預設為 『Disabled』。 'Disabled'
'Enabled'
maxTasksPerNode 可在集區中單一計算節點上同時執行的工作數目上限。 int
元數據 Batch 服務不會將任何意義指派給元數據;它僅供使用者程式代碼使用。 MetadataItem[]
networkConfiguration 集區的網路組態。 NetworkConfiguration
scaleSettings 定義集區所需的大小。 這可以是 'fixedScale',其中指定要求的目標DedicatedNodes,或 'autoScale',其會定義定期重新評估的公式。 如果未指定此屬性,集區將會有固定小數字數,且具有 0 個 targetDedicatedNodes。 ScaleSettings
startTask 在 PATCH (update) 作業中,這個屬性可以設定為空白物件,以從集區中移除開始工作。 StartTask
taskSchedulingPolicy 指定工作應該如何分散到計算節點。 TaskSchedulingPolicy
userAccounts 要建立於集區中每個節點上的用戶帳戶清單。 UserAccount[]
vmSize 如需雲端服務集區可用虛擬機大小的相關信息(使用 cloudServiceConfiguration 建立的集區),請參閱雲端服務的大小(https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/)。 Batch 支援 ExtraSmall 以外的所有雲端服務 VM 大小。 如需使用虛擬機 Marketplace 映像之集區可用 VM 大小的相關信息(使用 virtualMachineConfiguration 建立的集區)請參閱虛擬機的大小 (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) 或虛擬機的大小 (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/)。 Batch 支援除了STANDARD_A0和具有進階記憶體以外的所有 Azure VM 大小(STANDARD_GS、STANDARD_DS和STANDARD_DSV2系列)。 字串

ResourceFile

名字 描述 價值
blobSource 此 URL 必須使用匿名存取來讀取;也就是說,Batch 服務在下載 Blob 時不會顯示任何認證。 Azure 記憶體中的 Blob 有兩種方式可取得這類 URL:包括授與 Blob 讀取許可權的共用存取簽章(SAS),或設定 Blob 或其容器的 ACL 以允許公用存取。 字串 (必要)
fileMode 此屬性僅適用於下載至 Linux 計算節點的檔案。 如果針對將下載至 Windows 節點的 resourceFile 指定,則會忽略它。 如果未為 Linux 節點指定這個屬性,則會將預設值 0770 套用至檔案。 字串
filePath 要下載檔案之計算節點上的位置,相對於工作的工作目錄。 字串 (必要)

ScaleSettings

名字 描述 價值
autoScale 這個屬性和 fixedScale 互斥,而且必須指定其中一個屬性。 AutoScaleSettings
fixedScale 這個屬性和 autoScale 互斥,而且必須指定其中一個屬性。 FixedScaleSettings

StartTask

名字 描述 價值
commandLine 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他屬性,則為必要。 字串
environmentSettings 啟動工作的環境變數設定清單。 EnvironmentSetting[]
maxTaskRetryCount 如果 Batch 服務結束代碼為非零,則會重試工作。 請注意,這個值會特別控制重試次數。 Batch 服務會嘗試工作一次,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試工作最多 4 次(一次初始嘗試,3 次重試)。 如果重試計數上限為0,Batch服務就不會重試工作。 如果重試計數上限為 -1,Batch 服務會不限制地重試工作。 int
resourceFiles Batch 服務在執行命令行之前,會先下載到計算節點的檔案清單。 ResourceFile[]
userIdentity 如果省略,工作會以工作唯一的非系統管理使用者身分執行。 UserIdentity
waitForSuccess 如果 true 且計算節點上的啟動工作失敗,Batch 服務就會將啟動工作重試到其最大重試計數 (maxTaskRetryCount)。 如果工作在所有重試之後仍未順利完成,Batch 服務會將計算節點標示為無法使用,且不會排程工作。 您可以透過節點狀態和排程錯誤詳細數據來偵測此狀況。 如果為 false,Batch 服務將不會等候啟動工作完成。 在此情況下,當啟動工作仍在執行時,其他工作可以在計算節點上開始執行;即使啟動工作失敗,新工作仍會繼續排程在節點上。 默認值為 false。 bool

TaskSchedulingPolicy

名字 描述 價值
nodeFillType 工作應該如何分散到計算節點。 'Pack'
'傳播' (必要)

UserAccount

名字 描述 價值
elevationLevel nonAdmin - 自動使用者是標準使用者,沒有提升許可權的存取權。 admin - 自動使用者是具有較高存取權的使用者,並使用完整的系統管理員許可權運作。 預設值為 nonAdmin。 'Admin'
'NonAdmin'
linuxUserConfiguration 如果在 Windows 集區上指定,則會忽略這個屬性。 如果未指定,則會使用預設選項建立使用者。 LinuxUserConfiguration
名字 用戶帳戶的名稱。 字串 (必要)
密碼 用戶帳戶的密碼。 字串 (必要)

UserIdentity

名字 描述 價值
autoUser userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。 AutoUserSpecification
userName userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。 字串

VirtualMachineConfiguration

名字 描述 價值
dataDisks 如果集區中的計算節點必須連結空的數據磁碟,則必須指定這個屬性。 DataDisk[]
imageReference Azure 虛擬機 Marketplace 映像或自定義虛擬機的 Azure 映像資源的參考。 若要取得 Azure Batch 驗證的所有 imageReferences 清單,請參閱「列出支援的節點代理程式 SKU」作業。 ImageReference (必要)
licenseType 這隻適用於包含 Windows 作業系統的映像,而且只有在您保留將部署之節點的有效內部部署授權時,才應該使用。 如果省略,則不會套用任何內部部署授權折扣。 值為:

Windows_Server - 內部部署授權適用於 Windows Server。
Windows_Client - 內部部署授權適用於 Windows 用戶端。
字串
nodeAgentSkuId Batch 節點代理程式是在集區中的每個節點上執行的程式,並提供節點與 Batch 服務之間的命令和控制介面。 針對不同的操作系統,節點代理程式有不同的實作,稱為 SKU。 您必須指定符合所選映像參考的節點代理程式 SKU。 若要取得支持的節點代理程式 SKU 清單及其已驗證映像參考清單,請參閱「列出支援的節點代理程式 SKU」作業。 字串 (必要)
osDisk 虛擬機操作系統磁碟的設定。 OSDisk
windowsConfiguration 如果 imageReference 指定 Linux OS 映射,則不得指定此屬性。 WindowsConfiguration

WindowsConfiguration

名字 描述 價值
enableAutomaticUpdates 如果省略,預設值為 true。 bool

快速入門範例

下列快速入門範例會部署此資源類型。

Bicep 檔案 描述
沒有公用IP位址的 Azure Batch 集區 此範本會建立 Azure Batch 簡化的節點通訊集區,而不需要公用 IP 位址。

ARM 樣本資源定義

batchAccounts/pools 資源類型可以使用目標作業來部署:

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.Batch/batchAccounts/pools 資源,請將下列 JSON 新增至範本。

{
  "type": "Microsoft.Batch/batchAccounts/pools",
  "apiVersion": "2017-09-01",
  "name": "string",
  "properties": {
    "applicationLicenses": [ "string" ],
    "applicationPackages": [
      {
        "id": "string",
        "version": "string"
      }
    ],
    "certificates": [
      {
        "id": "string",
        "storeLocation": "string",
        "storeName": "string",
        "visibility": [ "string" ]
      }
    ],
    "deploymentConfiguration": {
      "cloudServiceConfiguration": {
        "currentOSVersion": "string",
        "osFamily": "string",
        "targetOSVersion": "string"
      },
      "virtualMachineConfiguration": {
        "dataDisks": [
          {
            "caching": "string",
            "diskSizeGB": "int",
            "lun": "int",
            "storageAccountType": "string"
          }
        ],
        "imageReference": {
          "id": "string",
          "offer": "string",
          "publisher": "string",
          "sku": "string",
          "version": "string"
        },
        "licenseType": "string",
        "nodeAgentSkuId": "string",
        "osDisk": {
          "caching": "string"
        },
        "windowsConfiguration": {
          "enableAutomaticUpdates": "bool"
        }
      }
    },
    "displayName": "string",
    "interNodeCommunication": "string",
    "maxTasksPerNode": "int",
    "metadata": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "networkConfiguration": {
      "endpointConfiguration": {
        "inboundNatPools": [
          {
            "backendPort": "int",
            "frontendPortRangeEnd": "int",
            "frontendPortRangeStart": "int",
            "name": "string",
            "networkSecurityGroupRules": [
              {
                "access": "string",
                "priority": "int",
                "sourceAddressPrefix": "string"
              }
            ],
            "protocol": "string"
          }
        ]
      },
      "subnetId": "string"
    },
    "scaleSettings": {
      "autoScale": {
        "evaluationInterval": "string",
        "formula": "string"
      },
      "fixedScale": {
        "nodeDeallocationOption": "string",
        "resizeTimeout": "string",
        "targetDedicatedNodes": "int",
        "targetLowPriorityNodes": "int"
      }
    },
    "startTask": {
      "commandLine": "string",
      "environmentSettings": [
        {
          "name": "string",
          "value": "string"
        }
      ],
      "maxTaskRetryCount": "int",
      "resourceFiles": [
        {
          "blobSource": "string",
          "fileMode": "string",
          "filePath": "string"
        }
      ],
      "userIdentity": {
        "autoUser": {
          "elevationLevel": "string",
          "scope": "string"
        },
        "userName": "string"
      },
      "waitForSuccess": "bool"
    },
    "taskSchedulingPolicy": {
      "nodeFillType": "string"
    },
    "userAccounts": [
      {
        "elevationLevel": "string",
        "linuxUserConfiguration": {
          "gid": "int",
          "sshPrivateKey": "string",
          "uid": "int"
        },
        "name": "string",
        "password": "string"
      }
    ],
    "vmSize": "string"
  }
}

屬性值

ApplicationPackageReference

名字 描述 價值
id 要安裝的應用程式套件識別碼。 這必須位於與集區相同的批次帳戶內。 這可以是特定版本的參考,如果存在,則為預設版本。 字串 (必要)
版本 如果省略此專案,而且此應用程式未指定預設版本,要求會失敗,錯誤碼 InvalidApplicationPackageReferences。 如果您直接呼叫 REST API,HTTP 狀態代碼為 409。 字串

AutoScaleSettings

名字 描述 價值
evaluationInterval 如果省略,預設值為15分鐘(PT15M)。 字串
公式 集區中所需計算節點數目的公式。 字串 (必要)

AutoUserSpecification

名字 描述 價值
elevationLevel nonAdmin - 自動使用者是標準使用者,沒有提升許可權的存取權。 admin - 自動使用者是具有較高存取權的使用者,並使用完整的系統管理員許可權運作。 預設值為 nonAdmin。 'Admin'
'NonAdmin'
範圍 pool - 指定工作以在集區中的每個節點上建立的通用自動使用者帳戶執行。 task - 指定服務應該為工作建立新的使用者。 預設值為 task。 'Pool'
'Task'

CertificateReference

名字 描述 價值
id 要安裝在集區上之憑證的完整標識碼。 這必須位於與集區相同的批次帳戶內。 字串 (必要)
storeLocation 預設值為 currentUser。 此屬性僅適用於使用 Windows 節點設定的集區(也就是使用 cloudServiceConfiguration 建立,或使用 Windows 映像參考使用 virtualMachineConfiguration 建立)。 針對 Linux 計算節點,憑證會儲存在工作工作目錄內的目錄中,而環境變數AZ_BATCH_CERTIFICATES_DIR會提供給工作來查詢此位置。 對於可見度為 『remoteUser』 的憑證,會在使用者的主目錄中建立 『certs』 目錄(例如 /home/{user-name}/certs),並將憑證放在該目錄中。 'CurrentUser'
'LocalMachine'
storeName 此屬性僅適用於使用 Windows 節點設定的集區(也就是使用 cloudServiceConfiguration 建立,或使用 Windows 映像參考使用 virtualMachineConfiguration 建立)。 常見的存放區名稱包括:My、Root、CA、Trust、Disallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定義存放區名稱。 預設值為 My。 字串
能見度 值為:

starttask - 執行啟動工作的用戶帳戶。
task - 執行作業工作的帳戶。
remoteuser - 用戶遠端存取節點的帳戶。

您可以在此集合中指定多個可見度。 預設值為所有帳戶。
包含任何的字串數組:
'RemoteUser'
'StartTask'
'Task'

CloudServiceConfiguration

名字 描述 價值
currentOSVersion 如果集區狀態為 Upgrade,則這可能與 targetOSVersion 不同。 在此情況下,有些虛擬機可能位於 targetOSVersion 上,有些虛擬機可能會在升級程式期間位於 currentOSVersion 上。 升級所有虛擬機之後,currentOSVersion 會更新為與 targetOSVersion 相同的 。 字串
osFamily 可能的值為:2 - OS 系列 2,相當於 Windows Server 2008 R2 SP1。 3 - OS 系列 3,相當於 Windows Server 2012。 4 - OS 系列 4,相當於 Windows Server 2012 R2。 5 - OS 系列 5,相當於 Windows Server 2016。 如需詳細資訊,請參閱 Azure 客體 OS 版本 (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 字串 (必要)
targetOSVersion 預設值為 * ,指定指定作業系統系列的最新操作系統版本。 字串

DataDisk

名字 描述 價值
緩存 值為:

none - 未啟用磁碟的快取模式。
readOnly - 磁碟的快取模式是只讀的。
readWrite - 磁碟的快取模式是讀取和寫入。

快取的預設值為 none。 如需快取選項的相關信息,請參閱:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/
'None'
'ReadOnly'
'ReadWrite'
diskSizeGB 建立新數據磁碟時,以 GB 為單位的初始磁碟大小。 int (必要)
lun 可用來唯一識別每個數據磁碟。 如果連結多個磁碟,則每個磁碟都應該有相異的 Lun。 int (必要)
storageAccountType 如果省略,預設值為 「Standard_LRS」。。 值為:

Standard_LRS - 資料磁碟應使用標準本地備援記憶體。
Premium_LRS - 資料磁碟應該使用進階本地備援記憶體。
'Premium_LRS'
'Standard_LRS'

DeploymentConfiguration

名字 描述 價值
cloudServiceConfiguration 這個屬性和 virtualMachineConfiguration 互斥,而且必須指定其中一個屬性。 如果 Batch 帳戶的 poolAllocationMode 屬性設定為 'UserSubscription',則無法指定此屬性。 CloudServiceConfiguration
virtualMachineConfiguration 此屬性和 cloudServiceConfiguration 互斥,而且必須指定其中一個屬性。 VirtualMachineConfiguration

EnvironmentSetting

名字 描述 價值
名字 環境變數的名稱。 字串 (必要)
價值 環境變數的值。 字串

FixedScaleSettings

名字 描述 價值
nodeDeallocationOption 如果省略,預設值為 Requeue。 'Requeue'
'RetainedData'
'TaskCompletion'
'Terminate'
resizeTimeout 預設值為15分鐘。 逾時值使用 ISO 8601 格式。 例如,使用 PT10M 10 分鐘。 最小值為 5 分鐘。 如果您指定小於 5 分鐘的值,Batch 服務會拒絕要求併發生錯誤;如果您直接呼叫 REST API,則 HTTP 狀態代碼為 400 (不正確的要求)。 字串
targetDedicatedNodes 至少必須設定其中一個 targetDedicatedNodes,targetLowPriority 節點。 int
targetLowPriorityNodes 至少必須設定其中一個 targetDedicatedNodes,targetLowPriority 節點。 int

ImageReference

名字 描述 價值
id 這個屬性與其他屬性互斥。 虛擬機映像必須位於與 Azure Batch 帳戶相同的區域和訂用帳戶中。 如需與 Batch 服務通訊之 Batch 節點代理程式的防火牆設定相關信息,請參閱 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 。 字串
提供 例如,UbuntuServer 或 WindowsServer。 字串
發行人 例如,Canonical 或 MicrosoftWindowsServer。 字串
sku 例如,14.04.0-LTS 或 2012-R2-Datacenter。 字串
版本 您可以指定 'latest' 的值來選取映像的最新版本。 如果省略,預設值為 'latest'。 字串

InboundNatPool

名字 描述 價值
backendPort 這在 Batch 集區內必須是唯一的。 可接受的值介於 1 到 65535 之間,除了 22、3389、29876 和 29877 之外,保留這些值。 如果提供任何保留值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
frontendPortRangeEnd 可接受的值範圍介於 1 到 65534 之間,但 Batch 服務保留的埠從 50000 到 55000。 集區內的所有範圍都必須是相異且無法重疊的。 如果提供任何保留或重疊的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
frontendPortRangeStart 可接受的值範圍介於 1 到 65534 之間,但保留的埠介於 50000 到 55000 之間。 集區內的所有範圍都必須是相異且無法重疊的。 如果提供任何保留或重疊的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
名字 名稱在 Batch 集區內必須是唯一的,可以包含字母、數位、底線、句號和連字元。 名稱必須以字母或數字開頭,結尾必須是字母、數位或底線,且不能超過 77 個字元。 如果提供任何無效的值,要求就會失敗,且 HTTP 狀態代碼為 400。 字串 (必要)
networkSecurityGroupRules 可以跨 Batch 集區上所有端點指定的規則數目上限為 25。 如果未指定網路安全組規則,則會建立默認規則以允許輸入存取指定的 backendPort。 如果超過網路安全組規則的最大數目,要求會失敗,並出現 HTTP 狀態代碼 400。 NetworkSecurityGroupRule[]
協定 端點的通訊協定。 'TCP'
'UDP' (必要)

LinuxUserConfiguration

名字 描述 價值
gid uid 和 gid 屬性必須一起指定或完全不指定。 如果未指定,則基礎操作系統會挑選 gid。 int
sshPrivateKey 私鑰不得受到密碼保護。 當集區的 enableInterNodeCommunication 屬性為 true 時,私鑰用於在 Linux 集區中的節點之間自動設定非對稱密鑰型驗證(如果 enableInterNodeCommunication 為 false,則會忽略它)。 其方式是將金鑰組放入使用者的 .ssh 目錄中。 如果未指定,則不會在節點之間設定無密碼 SSH(不會修改使用者的 .ssh 目錄)。 字串
uid uid 和 gid 屬性必須一起指定或完全不指定。 如果未指定基礎操作系統,則會挑選 uid。 int

MetadataItem

名字 描述 價值
名字 元數據項目的名稱。 字串 (必要)
價值 元數據專案的值。 字串 (必要)

Microsoft.Batch/batchAccounts/pools

名字 描述 價值
apiVersion API 版本 '2017-09-01'
名字 資源名稱 字串

約束:
最小長度 = 1
最大長度 = 1
模式 = ^[a-zA-Z0-9_-]+$ (必要)
性能 與集區相關聯的屬性。 PoolProperties
類型 資源類型 'Microsoft.Batch/batchAccounts/pools'

NetworkConfiguration

名字 描述 價值
endpointConfiguration 只有具有 virtualMachineConfiguration 屬性的集區才支援集區端點組態。 PoolEndpointConfiguration
subnetId 虛擬網路必須位於與 Azure Batch 帳戶相同的區域和訂用帳戶中。 指定的子網應該有足夠的可用IP位址來容納集區中的節點數目。 如果子網沒有足夠的可用IP位址,集區會部分配置計算節點,而且會發生重設大小錯誤。 'MicrosoftAzureBatch' 服務主體必須具有指定 VNet 的「傳統虛擬機參與者」Role-Based 訪問控制 (RBAC) 角色。 指定的子網必須允許來自 Azure Batch 服務的通訊,才能排程計算節點上的工作。 藉由檢查指定的 VNet 是否有任何相關聯的網路安全組 (NSG),即可驗證此情況。 如果 NSG 拒絕與指定子網中計算節點的通訊,Batch 服務會將計算節點的狀態設定為無法使用。 針對透過 virtualMachineConfiguration 建立的集區,Batch 帳戶必須具有 poolAllocationMode userSubscription 才能使用 VNet。 如果指定的 VNet 有任何相關聯的網路安全組 (NSG),則必須啟用一些保留的系統埠來進行輸入通訊。 針對使用虛擬機設定建立的集區,請啟用埠 29876 和 29877,以及適用於 Linux 的埠 22 和適用於 Windows 的埠 3389。 針對使用雲端服務設定建立的集區,請啟用埠 10100、20100 和 30100。 同時在埠 443 上啟用對 Azure 記憶體的輸出連線。 如需詳細資訊,請參閱:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 字串

NetworkSecurityGroupRule

名字 描述 價值
訪問 應該針對指定的IP位址、子網範圍或卷標採取的動作。 'Allow'
'拒絕' (必要)
優先權 集區內的優先順序必須是唯一的,而且會依優先順序進行評估。 數位越低,優先順序越高。 例如,可以使用訂單號碼 150、250 和 350 來指定規則。 順序編號為 150 的規則優先於順序為 250 的規則。 允許的優先順序為 150 到 3500。 如果提供任何保留或重複的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
sourceAddressPrefix 有效值為單一IP位址(例如10.10.10.10.10)、IP子網(例如192.168.1.0/24)、預設標記或 * (適用於所有位址)。 如果提供任何其他值,要求就會因為 HTTP 狀態代碼 400 而失敗。 字串 (必要)

OSDisk

名字 描述 價值
緩存 預設值為 none。 'None'
'ReadOnly'
'ReadWrite'

PoolEndpointConfiguration

名字 描述 價值
inboundNatPools 每個 Batch 集區的輸入 NAT 集區數目上限為 5。 如果超過輸入 NAT 集區數目上限,要求會失敗,並出現 HTTP 狀態代碼 400。 InboundNatPool[] (必要)

PoolProperties

名字 描述 價值
applicationLicenses 應用程式授權清單必須是可用 Batch 服務應用程式授權的子集。 如果要求不支持的授權,集區建立將會失敗。 string[]
applicationPackages 對應用程式套件所做的變更會影響聯結集區的所有新計算節點,但不會影響集區中已經存在於集區的計算節點,直到重新啟動或重新映像為止。 ApplicationPackageReference[]
證書 針對 Windows 計算節點,Batch 服務會將憑證安裝至指定的證書存儲和位置。 針對 Linux 計算節點,憑證會儲存在工作工作目錄內的目錄中,而環境變數AZ_BATCH_CERTIFICATES_DIR會提供給工作來查詢此位置。 對於可見度為 『remoteUser』 的憑證,會在使用者的主目錄中建立 『certs』 目錄(例如 /home/{user-name}/certs),並將憑證放在該目錄中。 CertificateReference[]
deploymentConfiguration 使用 CloudServiceConfiguration 會指定應該使用 Azure 雲端服務 (PaaS) 建立節點,而 VirtualMachineConfiguration 則使用 Azure 虛擬機 (IaaS)。 DeploymentConfiguration
displayName 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。 字串
interNodeCommunication 這會限制哪些節點可以指派給集區。 啟用此值可減少集區中配置要求節點數目的機會。 如果未指定,這個值會預設為 『Disabled』。 'Disabled'
'Enabled'
maxTasksPerNode 可在集區中單一計算節點上同時執行的工作數目上限。 int
元數據 Batch 服務不會將任何意義指派給元數據;它僅供使用者程式代碼使用。 MetadataItem[]
networkConfiguration 集區的網路組態。 NetworkConfiguration
scaleSettings 定義集區所需的大小。 這可以是 'fixedScale',其中指定要求的目標DedicatedNodes,或 'autoScale',其會定義定期重新評估的公式。 如果未指定此屬性,集區將會有固定小數字數,且具有 0 個 targetDedicatedNodes。 ScaleSettings
startTask 在 PATCH (update) 作業中,這個屬性可以設定為空白物件,以從集區中移除開始工作。 StartTask
taskSchedulingPolicy 指定工作應該如何分散到計算節點。 TaskSchedulingPolicy
userAccounts 要建立於集區中每個節點上的用戶帳戶清單。 UserAccount[]
vmSize 如需雲端服務集區可用虛擬機大小的相關信息(使用 cloudServiceConfiguration 建立的集區),請參閱雲端服務的大小(https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/)。 Batch 支援 ExtraSmall 以外的所有雲端服務 VM 大小。 如需使用虛擬機 Marketplace 映像之集區可用 VM 大小的相關信息(使用 virtualMachineConfiguration 建立的集區)請參閱虛擬機的大小 (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) 或虛擬機的大小 (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/)。 Batch 支援除了STANDARD_A0和具有進階記憶體以外的所有 Azure VM 大小(STANDARD_GS、STANDARD_DS和STANDARD_DSV2系列)。 字串

ResourceFile

名字 描述 價值
blobSource 此 URL 必須使用匿名存取來讀取;也就是說,Batch 服務在下載 Blob 時不會顯示任何認證。 Azure 記憶體中的 Blob 有兩種方式可取得這類 URL:包括授與 Blob 讀取許可權的共用存取簽章(SAS),或設定 Blob 或其容器的 ACL 以允許公用存取。 字串 (必要)
fileMode 此屬性僅適用於下載至 Linux 計算節點的檔案。 如果針對將下載至 Windows 節點的 resourceFile 指定,則會忽略它。 如果未為 Linux 節點指定這個屬性,則會將預設值 0770 套用至檔案。 字串
filePath 要下載檔案之計算節點上的位置,相對於工作的工作目錄。 字串 (必要)

ScaleSettings

名字 描述 價值
autoScale 這個屬性和 fixedScale 互斥,而且必須指定其中一個屬性。 AutoScaleSettings
fixedScale 這個屬性和 autoScale 互斥,而且必須指定其中一個屬性。 FixedScaleSettings

StartTask

名字 描述 價值
commandLine 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他屬性,則為必要。 字串
environmentSettings 啟動工作的環境變數設定清單。 EnvironmentSetting[]
maxTaskRetryCount 如果 Batch 服務結束代碼為非零,則會重試工作。 請注意,這個值會特別控制重試次數。 Batch 服務會嘗試工作一次,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試工作最多 4 次(一次初始嘗試,3 次重試)。 如果重試計數上限為0,Batch服務就不會重試工作。 如果重試計數上限為 -1,Batch 服務會不限制地重試工作。 int
resourceFiles Batch 服務在執行命令行之前,會先下載到計算節點的檔案清單。 ResourceFile[]
userIdentity 如果省略,工作會以工作唯一的非系統管理使用者身分執行。 UserIdentity
waitForSuccess 如果 true 且計算節點上的啟動工作失敗,Batch 服務就會將啟動工作重試到其最大重試計數 (maxTaskRetryCount)。 如果工作在所有重試之後仍未順利完成,Batch 服務會將計算節點標示為無法使用,且不會排程工作。 您可以透過節點狀態和排程錯誤詳細數據來偵測此狀況。 如果為 false,Batch 服務將不會等候啟動工作完成。 在此情況下,當啟動工作仍在執行時,其他工作可以在計算節點上開始執行;即使啟動工作失敗,新工作仍會繼續排程在節點上。 默認值為 false。 bool

TaskSchedulingPolicy

名字 描述 價值
nodeFillType 工作應該如何分散到計算節點。 'Pack'
'傳播' (必要)

UserAccount

名字 描述 價值
elevationLevel nonAdmin - 自動使用者是標準使用者,沒有提升許可權的存取權。 admin - 自動使用者是具有較高存取權的使用者,並使用完整的系統管理員許可權運作。 預設值為 nonAdmin。 'Admin'
'NonAdmin'
linuxUserConfiguration 如果在 Windows 集區上指定,則會忽略這個屬性。 如果未指定,則會使用預設選項建立使用者。 LinuxUserConfiguration
名字 用戶帳戶的名稱。 字串 (必要)
密碼 用戶帳戶的密碼。 字串 (必要)

UserIdentity

名字 描述 價值
autoUser userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。 AutoUserSpecification
userName userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。 字串

VirtualMachineConfiguration

名字 描述 價值
dataDisks 如果集區中的計算節點必須連結空的數據磁碟,則必須指定這個屬性。 DataDisk[]
imageReference Azure 虛擬機 Marketplace 映像或自定義虛擬機的 Azure 映像資源的參考。 若要取得 Azure Batch 驗證的所有 imageReferences 清單,請參閱「列出支援的節點代理程式 SKU」作業。 ImageReference (必要)
licenseType 這隻適用於包含 Windows 作業系統的映像,而且只有在您保留將部署之節點的有效內部部署授權時,才應該使用。 如果省略,則不會套用任何內部部署授權折扣。 值為:

Windows_Server - 內部部署授權適用於 Windows Server。
Windows_Client - 內部部署授權適用於 Windows 用戶端。
字串
nodeAgentSkuId Batch 節點代理程式是在集區中的每個節點上執行的程式,並提供節點與 Batch 服務之間的命令和控制介面。 針對不同的操作系統,節點代理程式有不同的實作,稱為 SKU。 您必須指定符合所選映像參考的節點代理程式 SKU。 若要取得支持的節點代理程式 SKU 清單及其已驗證映像參考清單,請參閱「列出支援的節點代理程式 SKU」作業。 字串 (必要)
osDisk 虛擬機操作系統磁碟的設定。 OSDisk
windowsConfiguration 如果 imageReference 指定 Linux OS 映射,則不得指定此屬性。 WindowsConfiguration

WindowsConfiguration

名字 描述 價值
enableAutomaticUpdates 如果省略,預設值為 true。 bool

快速入門範本

下列快速入門範本會部署此資源類型。

範本 描述
沒有公用IP位址的 Azure Batch 集區

部署至 Azure
此範本會建立 Azure Batch 簡化的節點通訊集區,而不需要公用 IP 位址。

Terraform (AzAPI 提供者) 資源定義

batchAccounts/pools 資源類型可以使用目標作業來部署:

  • 資源群組

如需每個 API 版本中已變更屬性的清單,請參閱 變更記錄檔

資源格式

若要建立 Microsoft.Batch/batchAccounts/pools 資源,請將下列 Terraform 新增至範本。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Batch/batchAccounts/pools@2017-09-01"
  name = "string"
  body = jsonencode({
    properties = {
      applicationLicenses = [
        "string"
      ]
      applicationPackages = [
        {
          id = "string"
          version = "string"
        }
      ]
      certificates = [
        {
          id = "string"
          storeLocation = "string"
          storeName = "string"
          visibility = [
            "string"
          ]
        }
      ]
      deploymentConfiguration = {
        cloudServiceConfiguration = {
          currentOSVersion = "string"
          osFamily = "string"
          targetOSVersion = "string"
        }
        virtualMachineConfiguration = {
          dataDisks = [
            {
              caching = "string"
              diskSizeGB = int
              lun = int
              storageAccountType = "string"
            }
          ]
          imageReference = {
            id = "string"
            offer = "string"
            publisher = "string"
            sku = "string"
            version = "string"
          }
          licenseType = "string"
          nodeAgentSkuId = "string"
          osDisk = {
            caching = "string"
          }
          windowsConfiguration = {
            enableAutomaticUpdates = bool
          }
        }
      }
      displayName = "string"
      interNodeCommunication = "string"
      maxTasksPerNode = int
      metadata = [
        {
          name = "string"
          value = "string"
        }
      ]
      networkConfiguration = {
        endpointConfiguration = {
          inboundNatPools = [
            {
              backendPort = int
              frontendPortRangeEnd = int
              frontendPortRangeStart = int
              name = "string"
              networkSecurityGroupRules = [
                {
                  access = "string"
                  priority = int
                  sourceAddressPrefix = "string"
                }
              ]
              protocol = "string"
            }
          ]
        }
        subnetId = "string"
      }
      scaleSettings = {
        autoScale = {
          evaluationInterval = "string"
          formula = "string"
        }
        fixedScale = {
          nodeDeallocationOption = "string"
          resizeTimeout = "string"
          targetDedicatedNodes = int
          targetLowPriorityNodes = int
        }
      }
      startTask = {
        commandLine = "string"
        environmentSettings = [
          {
            name = "string"
            value = "string"
          }
        ]
        maxTaskRetryCount = int
        resourceFiles = [
          {
            blobSource = "string"
            fileMode = "string"
            filePath = "string"
          }
        ]
        userIdentity = {
          autoUser = {
            elevationLevel = "string"
            scope = "string"
          }
          userName = "string"
        }
        waitForSuccess = bool
      }
      taskSchedulingPolicy = {
        nodeFillType = "string"
      }
      userAccounts = [
        {
          elevationLevel = "string"
          linuxUserConfiguration = {
            gid = int
            sshPrivateKey = "string"
            uid = int
          }
          name = "string"
          password = "string"
        }
      ]
      vmSize = "string"
    }
  })
}

屬性值

ApplicationPackageReference

名字 描述 價值
id 要安裝的應用程式套件識別碼。 這必須位於與集區相同的批次帳戶內。 這可以是特定版本的參考,如果存在,則為預設版本。 字串 (必要)
版本 如果省略此專案,而且此應用程式未指定預設版本,要求會失敗,錯誤碼 InvalidApplicationPackageReferences。 如果您直接呼叫 REST API,HTTP 狀態代碼為 409。 字串

AutoScaleSettings

名字 描述 價值
evaluationInterval 如果省略,預設值為15分鐘(PT15M)。 字串
公式 集區中所需計算節點數目的公式。 字串 (必要)

AutoUserSpecification

名字 描述 價值
elevationLevel nonAdmin - 自動使用者是標準使用者,沒有提升許可權的存取權。 admin - 自動使用者是具有較高存取權的使用者,並使用完整的系統管理員許可權運作。 預設值為 nonAdmin。 'Admin'
'NonAdmin'
範圍 pool - 指定工作以在集區中的每個節點上建立的通用自動使用者帳戶執行。 task - 指定服務應該為工作建立新的使用者。 預設值為 task。 'Pool'
'Task'

CertificateReference

名字 描述 價值
id 要安裝在集區上之憑證的完整標識碼。 這必須位於與集區相同的批次帳戶內。 字串 (必要)
storeLocation 預設值為 currentUser。 此屬性僅適用於使用 Windows 節點設定的集區(也就是使用 cloudServiceConfiguration 建立,或使用 Windows 映像參考使用 virtualMachineConfiguration 建立)。 針對 Linux 計算節點,憑證會儲存在工作工作目錄內的目錄中,而環境變數AZ_BATCH_CERTIFICATES_DIR會提供給工作來查詢此位置。 對於可見度為 『remoteUser』 的憑證,會在使用者的主目錄中建立 『certs』 目錄(例如 /home/{user-name}/certs),並將憑證放在該目錄中。 'CurrentUser'
'LocalMachine'
storeName 此屬性僅適用於使用 Windows 節點設定的集區(也就是使用 cloudServiceConfiguration 建立,或使用 Windows 映像參考使用 virtualMachineConfiguration 建立)。 常見的存放區名稱包括:My、Root、CA、Trust、Disallowed、TrustedPeople、TrustedPublisher、AuthRoot、AddressBook,但也可以使用任何自定義存放區名稱。 預設值為 My。 字串
能見度 值為:

starttask - 執行啟動工作的用戶帳戶。
task - 執行作業工作的帳戶。
remoteuser - 用戶遠端存取節點的帳戶。

您可以在此集合中指定多個可見度。 預設值為所有帳戶。
包含任何的字串數組:
'RemoteUser'
'StartTask'
'Task'

CloudServiceConfiguration

名字 描述 價值
currentOSVersion 如果集區狀態為 Upgrade,則這可能與 targetOSVersion 不同。 在此情況下,有些虛擬機可能位於 targetOSVersion 上,有些虛擬機可能會在升級程式期間位於 currentOSVersion 上。 升級所有虛擬機之後,currentOSVersion 會更新為與 targetOSVersion 相同的 。 字串
osFamily 可能的值為:2 - OS 系列 2,相當於 Windows Server 2008 R2 SP1。 3 - OS 系列 3,相當於 Windows Server 2012。 4 - OS 系列 4,相當於 Windows Server 2012 R2。 5 - OS 系列 5,相當於 Windows Server 2016。 如需詳細資訊,請參閱 Azure 客體 OS 版本 (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases)。 字串 (必要)
targetOSVersion 預設值為 * ,指定指定作業系統系列的最新操作系統版本。 字串

DataDisk

名字 描述 價值
緩存 值為:

none - 未啟用磁碟的快取模式。
readOnly - 磁碟的快取模式是只讀的。
readWrite - 磁碟的快取模式是讀取和寫入。

快取的預設值為 none。 如需快取選項的相關信息,請參閱:https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/
'None'
'ReadOnly'
'ReadWrite'
diskSizeGB 建立新數據磁碟時,以 GB 為單位的初始磁碟大小。 int (必要)
lun 可用來唯一識別每個數據磁碟。 如果連結多個磁碟,則每個磁碟都應該有相異的 Lun。 int (必要)
storageAccountType 如果省略,預設值為 「Standard_LRS」。。 值為:

Standard_LRS - 資料磁碟應使用標準本地備援記憶體。
Premium_LRS - 資料磁碟應該使用進階本地備援記憶體。
'Premium_LRS'
'Standard_LRS'

DeploymentConfiguration

名字 描述 價值
cloudServiceConfiguration 這個屬性和 virtualMachineConfiguration 互斥,而且必須指定其中一個屬性。 如果 Batch 帳戶的 poolAllocationMode 屬性設定為 'UserSubscription',則無法指定此屬性。 CloudServiceConfiguration
virtualMachineConfiguration 此屬性和 cloudServiceConfiguration 互斥,而且必須指定其中一個屬性。 VirtualMachineConfiguration

EnvironmentSetting

名字 描述 價值
名字 環境變數的名稱。 字串 (必要)
價值 環境變數的值。 字串

FixedScaleSettings

名字 描述 價值
nodeDeallocationOption 如果省略,預設值為 Requeue。 'Requeue'
'RetainedData'
'TaskCompletion'
'Terminate'
resizeTimeout 預設值為15分鐘。 逾時值使用 ISO 8601 格式。 例如,使用 PT10M 10 分鐘。 最小值為 5 分鐘。 如果您指定小於 5 分鐘的值,Batch 服務會拒絕要求併發生錯誤;如果您直接呼叫 REST API,則 HTTP 狀態代碼為 400 (不正確的要求)。 字串
targetDedicatedNodes 至少必須設定其中一個 targetDedicatedNodes,targetLowPriority 節點。 int
targetLowPriorityNodes 至少必須設定其中一個 targetDedicatedNodes,targetLowPriority 節點。 int

ImageReference

名字 描述 價值
id 這個屬性與其他屬性互斥。 虛擬機映像必須位於與 Azure Batch 帳戶相同的區域和訂用帳戶中。 如需與 Batch 服務通訊之 Batch 節點代理程式的防火牆設定相關信息,請參閱 /azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 。 字串
提供 例如,UbuntuServer 或 WindowsServer。 字串
發行人 例如,Canonical 或 MicrosoftWindowsServer。 字串
sku 例如,14.04.0-LTS 或 2012-R2-Datacenter。 字串
版本 您可以指定 'latest' 的值來選取映像的最新版本。 如果省略,預設值為 'latest'。 字串

InboundNatPool

名字 描述 價值
backendPort 這在 Batch 集區內必須是唯一的。 可接受的值介於 1 到 65535 之間,除了 22、3389、29876 和 29877 之外,保留這些值。 如果提供任何保留值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
frontendPortRangeEnd 可接受的值範圍介於 1 到 65534 之間,但 Batch 服務保留的埠從 50000 到 55000。 集區內的所有範圍都必須是相異且無法重疊的。 如果提供任何保留或重疊的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
frontendPortRangeStart 可接受的值範圍介於 1 到 65534 之間,但保留的埠介於 50000 到 55000 之間。 集區內的所有範圍都必須是相異且無法重疊的。 如果提供任何保留或重疊的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
名字 名稱在 Batch 集區內必須是唯一的,可以包含字母、數位、底線、句號和連字元。 名稱必須以字母或數字開頭,結尾必須是字母、數位或底線,且不能超過 77 個字元。 如果提供任何無效的值,要求就會失敗,且 HTTP 狀態代碼為 400。 字串 (必要)
networkSecurityGroupRules 可以跨 Batch 集區上所有端點指定的規則數目上限為 25。 如果未指定網路安全組規則,則會建立默認規則以允許輸入存取指定的 backendPort。 如果超過網路安全組規則的最大數目,要求會失敗,並出現 HTTP 狀態代碼 400。 NetworkSecurityGroupRule[]
協定 端點的通訊協定。 'TCP'
'UDP' (必要)

LinuxUserConfiguration

名字 描述 價值
gid uid 和 gid 屬性必須一起指定或完全不指定。 如果未指定,則基礎操作系統會挑選 gid。 int
sshPrivateKey 私鑰不得受到密碼保護。 當集區的 enableInterNodeCommunication 屬性為 true 時,私鑰用於在 Linux 集區中的節點之間自動設定非對稱密鑰型驗證(如果 enableInterNodeCommunication 為 false,則會忽略它)。 其方式是將金鑰組放入使用者的 .ssh 目錄中。 如果未指定,則不會在節點之間設定無密碼 SSH(不會修改使用者的 .ssh 目錄)。 字串
uid uid 和 gid 屬性必須一起指定或完全不指定。 如果未指定基礎操作系統,則會挑選 uid。 int

MetadataItem

名字 描述 價值
名字 元數據項目的名稱。 字串 (必要)
價值 元數據專案的值。 字串 (必要)

Microsoft.Batch/batchAccounts/pools

名字 描述 價值
名字 資源名稱 字串

約束:
最小長度 = 1
最大長度 = 1
模式 = ^[a-zA-Z0-9_-]+$ (必要)
parent_id 此資源為父系之資源的標識碼。 類型資源的標識碼:batchAccounts
性能 與集區相關聯的屬性。 PoolProperties
類型 資源類型 “Microsoft.Batch/batchAccounts/pools@2017-09-01”

NetworkConfiguration

名字 描述 價值
endpointConfiguration 只有具有 virtualMachineConfiguration 屬性的集區才支援集區端點組態。 PoolEndpointConfiguration
subnetId 虛擬網路必須位於與 Azure Batch 帳戶相同的區域和訂用帳戶中。 指定的子網應該有足夠的可用IP位址來容納集區中的節點數目。 如果子網沒有足夠的可用IP位址,集區會部分配置計算節點,而且會發生重設大小錯誤。 'MicrosoftAzureBatch' 服務主體必須具有指定 VNet 的「傳統虛擬機參與者」Role-Based 訪問控制 (RBAC) 角色。 指定的子網必須允許來自 Azure Batch 服務的通訊,才能排程計算節點上的工作。 藉由檢查指定的 VNet 是否有任何相關聯的網路安全組 (NSG),即可驗證此情況。 如果 NSG 拒絕與指定子網中計算節點的通訊,Batch 服務會將計算節點的狀態設定為無法使用。 針對透過 virtualMachineConfiguration 建立的集區,Batch 帳戶必須具有 poolAllocationMode userSubscription 才能使用 VNet。 如果指定的 VNet 有任何相關聯的網路安全組 (NSG),則必須啟用一些保留的系統埠來進行輸入通訊。 針對使用虛擬機設定建立的集區,請啟用埠 29876 和 29877,以及適用於 Linux 的埠 22 和適用於 Windows 的埠 3389。 針對使用雲端服務設定建立的集區,請啟用埠 10100、20100 和 30100。 同時在埠 443 上啟用對 Azure 記憶體的輸出連線。 如需詳細資訊,請參閱:/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration 字串

NetworkSecurityGroupRule

名字 描述 價值
訪問 應該針對指定的IP位址、子網範圍或卷標採取的動作。 'Allow'
'拒絕' (必要)
優先權 集區內的優先順序必須是唯一的,而且會依優先順序進行評估。 數位越低,優先順序越高。 例如,可以使用訂單號碼 150、250 和 350 來指定規則。 順序編號為 150 的規則優先於順序為 250 的規則。 允許的優先順序為 150 到 3500。 如果提供任何保留或重複的值,要求就會失敗,且 HTTP 狀態代碼為 400。 int (必要)
sourceAddressPrefix 有效值為單一IP位址(例如10.10.10.10.10)、IP子網(例如192.168.1.0/24)、預設標記或 * (適用於所有位址)。 如果提供任何其他值,要求就會因為 HTTP 狀態代碼 400 而失敗。 字串 (必要)

OSDisk

名字 描述 價值
緩存 預設值為 none。 'None'
'ReadOnly'
'ReadWrite'

PoolEndpointConfiguration

名字 描述 價值
inboundNatPools 每個 Batch 集區的輸入 NAT 集區數目上限為 5。 如果超過輸入 NAT 集區數目上限,要求會失敗,並出現 HTTP 狀態代碼 400。 InboundNatPool[] (必要)

PoolProperties

名字 描述 價值
applicationLicenses 應用程式授權清單必須是可用 Batch 服務應用程式授權的子集。 如果要求不支持的授權,集區建立將會失敗。 string[]
applicationPackages 對應用程式套件所做的變更會影響聯結集區的所有新計算節點,但不會影響集區中已經存在於集區的計算節點,直到重新啟動或重新映像為止。 ApplicationPackageReference[]
證書 針對 Windows 計算節點,Batch 服務會將憑證安裝至指定的證書存儲和位置。 針對 Linux 計算節點,憑證會儲存在工作工作目錄內的目錄中,而環境變數AZ_BATCH_CERTIFICATES_DIR會提供給工作來查詢此位置。 對於可見度為 『remoteUser』 的憑證,會在使用者的主目錄中建立 『certs』 目錄(例如 /home/{user-name}/certs),並將憑證放在該目錄中。 CertificateReference[]
deploymentConfiguration 使用 CloudServiceConfiguration 會指定應該使用 Azure 雲端服務 (PaaS) 建立節點,而 VirtualMachineConfiguration 則使用 Azure 虛擬機 (IaaS)。 DeploymentConfiguration
displayName 顯示名稱不是唯一的,而且可以包含最大長度為 1024 的任何 Unicode 字元。 字串
interNodeCommunication 這會限制哪些節點可以指派給集區。 啟用此值可減少集區中配置要求節點數目的機會。 如果未指定,這個值會預設為 『Disabled』。 'Disabled'
'Enabled'
maxTasksPerNode 可在集區中單一計算節點上同時執行的工作數目上限。 int
元數據 Batch 服務不會將任何意義指派給元數據;它僅供使用者程式代碼使用。 MetadataItem[]
networkConfiguration 集區的網路組態。 NetworkConfiguration
scaleSettings 定義集區所需的大小。 這可以是 'fixedScale',其中指定要求的目標DedicatedNodes,或 'autoScale',其會定義定期重新評估的公式。 如果未指定此屬性,集區將會有固定小數字數,且具有 0 個 targetDedicatedNodes。 ScaleSettings
startTask 在 PATCH (update) 作業中,這個屬性可以設定為空白物件,以從集區中移除開始工作。 StartTask
taskSchedulingPolicy 指定工作應該如何分散到計算節點。 TaskSchedulingPolicy
userAccounts 要建立於集區中每個節點上的用戶帳戶清單。 UserAccount[]
vmSize 如需雲端服務集區可用虛擬機大小的相關信息(使用 cloudServiceConfiguration 建立的集區),請參閱雲端服務的大小(https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/)。 Batch 支援 ExtraSmall 以外的所有雲端服務 VM 大小。 如需使用虛擬機 Marketplace 映像之集區可用 VM 大小的相關信息(使用 virtualMachineConfiguration 建立的集區)請參閱虛擬機的大小 (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) 或虛擬機的大小 (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/)。 Batch 支援除了STANDARD_A0和具有進階記憶體以外的所有 Azure VM 大小(STANDARD_GS、STANDARD_DS和STANDARD_DSV2系列)。 字串

ResourceFile

名字 描述 價值
blobSource 此 URL 必須使用匿名存取來讀取;也就是說,Batch 服務在下載 Blob 時不會顯示任何認證。 Azure 記憶體中的 Blob 有兩種方式可取得這類 URL:包括授與 Blob 讀取許可權的共用存取簽章(SAS),或設定 Blob 或其容器的 ACL 以允許公用存取。 字串 (必要)
fileMode 此屬性僅適用於下載至 Linux 計算節點的檔案。 如果針對將下載至 Windows 節點的 resourceFile 指定,則會忽略它。 如果未為 Linux 節點指定這個屬性,則會將預設值 0770 套用至檔案。 字串
filePath 要下載檔案之計算節點上的位置,相對於工作的工作目錄。 字串 (必要)

ScaleSettings

名字 描述 價值
autoScale 這個屬性和 fixedScale 互斥,而且必須指定其中一個屬性。 AutoScaleSettings
fixedScale 這個屬性和 autoScale 互斥,而且必須指定其中一個屬性。 FixedScaleSettings

StartTask

名字 描述 價值
commandLine 命令行不會在殼層下執行,因此無法利用殼層功能,例如環境變數擴充。 如果您想要利用這些功能,您應該在命令行中叫用殼層,例如在 Windows 中使用 “cmd /c MyCommand”,或在 Linux 中使用 “/bin/sh -c MyCommand”。 如果指定了 startTask 的任何其他屬性,則為必要。 字串
environmentSettings 啟動工作的環境變數設定清單。 EnvironmentSetting[]
maxTaskRetryCount 如果 Batch 服務結束代碼為非零,則會重試工作。 請注意,這個值會特別控制重試次數。 Batch 服務會嘗試工作一次,然後可能會重試到此限制。 例如,如果重試計數上限為 3,Batch 會嘗試工作最多 4 次(一次初始嘗試,3 次重試)。 如果重試計數上限為0,Batch服務就不會重試工作。 如果重試計數上限為 -1,Batch 服務會不限制地重試工作。 int
resourceFiles Batch 服務在執行命令行之前,會先下載到計算節點的檔案清單。 ResourceFile[]
userIdentity 如果省略,工作會以工作唯一的非系統管理使用者身分執行。 UserIdentity
waitForSuccess 如果 true 且計算節點上的啟動工作失敗,Batch 服務就會將啟動工作重試到其最大重試計數 (maxTaskRetryCount)。 如果工作在所有重試之後仍未順利完成,Batch 服務會將計算節點標示為無法使用,且不會排程工作。 您可以透過節點狀態和排程錯誤詳細數據來偵測此狀況。 如果為 false,Batch 服務將不會等候啟動工作完成。 在此情況下,當啟動工作仍在執行時,其他工作可以在計算節點上開始執行;即使啟動工作失敗,新工作仍會繼續排程在節點上。 默認值為 false。 bool

TaskSchedulingPolicy

名字 描述 價值
nodeFillType 工作應該如何分散到計算節點。 'Pack'
'傳播' (必要)

UserAccount

名字 描述 價值
elevationLevel nonAdmin - 自動使用者是標準使用者,沒有提升許可權的存取權。 admin - 自動使用者是具有較高存取權的使用者,並使用完整的系統管理員許可權運作。 預設值為 nonAdmin。 'Admin'
'NonAdmin'
linuxUserConfiguration 如果在 Windows 集區上指定,則會忽略這個屬性。 如果未指定,則會使用預設選項建立使用者。 LinuxUserConfiguration
名字 用戶帳戶的名稱。 字串 (必要)
密碼 用戶帳戶的密碼。 字串 (必要)

UserIdentity

名字 描述 價值
autoUser userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。 AutoUserSpecification
userName userName 和 autoUser 屬性互斥;您必須指定一個,但不能同時指定兩者。 字串

VirtualMachineConfiguration

名字 描述 價值
dataDisks 如果集區中的計算節點必須連結空的數據磁碟,則必須指定這個屬性。 DataDisk[]
imageReference Azure 虛擬機 Marketplace 映像或自定義虛擬機的 Azure 映像資源的參考。 若要取得 Azure Batch 驗證的所有 imageReferences 清單,請參閱「列出支援的節點代理程式 SKU」作業。 ImageReference (必要)
licenseType 這隻適用於包含 Windows 作業系統的映像,而且只有在您保留將部署之節點的有效內部部署授權時,才應該使用。 如果省略,則不會套用任何內部部署授權折扣。 值為:

Windows_Server - 內部部署授權適用於 Windows Server。
Windows_Client - 內部部署授權適用於 Windows 用戶端。
字串
nodeAgentSkuId Batch 節點代理程式是在集區中的每個節點上執行的程式,並提供節點與 Batch 服務之間的命令和控制介面。 針對不同的操作系統,節點代理程式有不同的實作,稱為 SKU。 您必須指定符合所選映像參考的節點代理程式 SKU。 若要取得支持的節點代理程式 SKU 清單及其已驗證映像參考清單,請參閱「列出支援的節點代理程式 SKU」作業。 字串 (必要)
osDisk 虛擬機操作系統磁碟的設定。 OSDisk
windowsConfiguration 如果 imageReference 指定 Linux OS 映射,則不得指定此屬性。 WindowsConfiguration

WindowsConfiguration

名字 描述 價值
enableAutomaticUpdates 如果省略,預設值為 true。 bool