2017-08-30 241 views
0

低優先級的節點。當我使用batch.models.PoolAddParameter如下:batch.models.PoolAddParameter與蟒蛇

new_pool = batch.models.PoolAddParameter(
    id=pool_id, 
    vm_size=pool_vm_size, 
    target_dedicated=pool_node_count, 
    target_low_priority=pool_lowprioritynode_count, 
    max_tasks_per_node=pool_max_tasks_per_node, 
    cloud_service_configuration=batch.models.CloudServiceConfiguration(
     os_family=os_family, 
     target_os_version=target_os_version, 
    ), 
    application_package_references=[batch.models.ApplicationPackageReference(
     application_id=application_id, 
     version=application_version, 
    )], 
    start_task=batch.models.StartTask(
     command_line=wrap_commands_in_shell('windows', task_commands), 
     run_elevated=True, 
     wait_for_success=True, 
     resource_files=resource_files), 
    task_scheduling_policy=batch.models.TaskSchedulingPolicy(
     node_fill_type=batch.models.ComputeNodeFillType.spread) 
    ) 

,我發現了以下錯誤:

TypeError: __init__() got an unexpected keyword argument 'target_lowpriority'

我試着用

target_lowpriority

個target_lowpriority_nodes

target_low_priority

target_low_priority_nodes

它工作一切優秀無target_lowpriority(和變體) 我的各種蔚藍文檔中上網看了一下,沒找到batch.models.PoolAddParameter的一個示例target_low_priority_nodes。 任何人都可以在這裏幫忙嗎?

非常感謝

回答

1

根據標尺含official document低優先級的虛擬機章池,池自動縮放公式支持低優先級的虛擬機只支持三個變量: targetLowPriorityNodesCurrentLowPriorityNodesPreemptedNodeCount

你可以看到PoolAddParameter方法source code,它只支持'target_low_priority_nodes': {'key': 'targetLowPriorityNodes', 'type': 'int'}targetLowPriority無法找到確實。

因此,請使用target_low_priority_nodes來擴展包含低優先級虛擬機的池。

+0

嗨Jay,非常感謝您的回答。我可能會錯過某些東西,正如我原來的問題所述,我已經嘗試了'target_low_priority_nodes',並且得到了同樣的錯誤。另外,請注意,對於專用節點,實際使用'target_dedicated'而不是'target_dedicated_nodes''。 – user3116727

+0

對不起,我不確定我最後的評論是否清楚。我嘗試過使用'target_low_priority_nodes'並且它效果不佳,我得到相同的錯誤信息 – user3116727

+0

@ user3116727請使用pip freeze檢查您的Azure Batch Python包版本。如果版本太舊,則會出現語法問題。 –