Start-ServiceFabricApplicationUpgrade
將 Service Fabric 應用程式升級至指定的 ApplicationTypeVersion。
語法
Start-ServiceFabricApplicationUpgrade
[-ApplicationName] <Uri>
[-ApplicationTypeVersion] <String>
[[-ApplicationParameter] <Hashtable>]
[-ForceRestart]
[[-UpgradeReplicaSetCheckTimeoutSec] <UInt32>]
[[-SortOrder] <UpgradeSortOrder>]
[-ReplicaQuorumTimeoutSec <UInt32>]
[-RestartProcess]
[-InstanceCloseDelayDurationSec <UInt32>]
[-UnmonitoredAuto]
[-Force]
[-TimeoutSec <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-ServiceFabricApplicationUpgrade
[-ApplicationName] <Uri>
[-ApplicationTypeVersion] <String>
[[-ApplicationParameter] <Hashtable>]
[-ForceRestart]
[[-UpgradeReplicaSetCheckTimeoutSec] <UInt32>]
[[-SortOrder] <UpgradeSortOrder>]
[-ReplicaQuorumTimeoutSec <UInt32>]
[-RestartProcess]
[-InstanceCloseDelayDurationSec <UInt32>]
[-UnmonitoredManual]
[-Force]
[-TimeoutSec <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-ServiceFabricApplicationUpgrade
[-ApplicationName] <Uri>
[-ApplicationTypeVersion] <String>
[[-ApplicationParameter] <Hashtable>]
[-ForceRestart]
[[-UpgradeReplicaSetCheckTimeoutSec] <UInt32>]
[[-SortOrder] <UpgradeSortOrder>]
[-ReplicaQuorumTimeoutSec <UInt32>]
[-RestartProcess]
[-InstanceCloseDelayDurationSec <UInt32>]
[-Monitored]
-FailureAction <UpgradeFailureAction>
[-HealthCheckRetryTimeoutSec <UInt32>]
[-HealthCheckWaitDurationSec <UInt32>]
[-HealthCheckStableDurationSec <UInt32>]
[-UpgradeDomainTimeoutSec <UInt32>]
[-UpgradeTimeoutSec <UInt32>]
[-ConsiderWarningAsError <Boolean>]
[-DefaultServiceTypeHealthPolicy <String>]
[-MaxPercentUnhealthyDeployedApplications <Byte>]
[-ServiceTypeHealthPolicyMap <Hashtable>]
[-Force]
[-TimeoutSec <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Start-ServiceFabricApplicationUpgrade Cmdlet 會升級 Service Fabric 應用程式。 使用此 Cmdlet 之前,您必須將更新的應用程式套件複製到映射存放區,並註冊更新的應用程式類型。 使用 Copy-ServiceFabricApplicationPackage 將應用程式套件複製到映射存放區。 使用 Register-ServiceFabricApplicationType Cmdlet 來註冊更新的應用程式類型。
此 Cmdlet 會在叢集上啟動升級。
ApplicationParameters 不會在應用程式升級之間保留。 為了保留目前的應用程式參數,使用者應該先取得參數,並將其傳遞至升級 API 呼叫,如下列 範例 1 所示。
如需 Service Fabric 應用程式升級的詳細資訊,請參閱 概念檔。
在 Service Fabric 叢集上執行任何作業之前,請先使用 Connect-ServiceFabricCluster Cmdlet 建立叢集的連線。
範例
範例 1:取得要傳入升級呼叫的應用程式參數
$myApplication = Get-ServiceFabricApplication -ApplicationName fabric:/myApplication
$appParamCollection = $myApplication.ApplicationParameters
$applicationParameterMap = @{}
foreach ($pair in $appParamCollection)
{ $applicationParameterMap.Add($pair.Name, $pair.Value); }
Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myApplication -ApplicationTypeVersion 2.0.0 -ApplicationParameter $applicationParameterMap -Monitored -FailureAction Rollback
範例 2:升級應用程式
PS C:\> Copy-ServiceFabricApplicationPackage -ApplicationPackagePath "C:\PersistentToDoListServiceV2" -ImageStoreConnectionString "file:C:\ProgramData\ServiceFabric\ImageStore"
PS C:\> Register-ServiceFabricApplicationType -ApplicationPathInImageStore "PersistentToDoListServiceV2"
PS C:\> Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myapp/persistenttodolist -ApplicationTypeVersion "2.0" -ForceRestart -UnMonitoredManual
第一個命令會使用 Copy-ServiceFabricApplicationPackage Cmdlet,將更新的應用程式套件複製到映射存放區。
第二個命令會使用 Register-ServiceFabricApplicationType Cmdlet 來註冊更新的應用程式類型。
第三個命令會升級應用程式。 此命令會執行未受監視的手動升級,其中包括裝載應用程式的伺服器重新開機。
參數
-ApplicationName
指定 Service Fabric 應用程式的統一資源識別項 (URI) 。 Cmdlet 會升級具有您指定之 URI 的應用程式。
類型: | Uri |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-ApplicationParameter
將應用程式參數的覆寫指定為名稱/值組。
類型: | Hashtable |
Position: | 2 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ApplicationTypeVersion
指定 Service Fabric 應用程式類型的版本。 Cmdlet 會將應用程式升級為您指定的版本。
類型: | String |
Position: | 1 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Confirm
在執行 Cmdlet 前提示您確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ConsiderWarningAsError
指出是否要在健康情況評估期間將警告健康情況事件視為錯誤事件。
類型: | Boolean |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DefaultServiceTypeHealthPolicy
以下列格式指定預設服務類型的健康原則,以用於受監視的升級:MaxPercentUnhealthyPartitionsPerService、MaxPercentUnhealthyReplicasPerPartition、MaxPercentUnhealthyServices。 例如,5,10,15 表示下列值:
- MaxPercentUnhealthyPartitionsPerService = 5
- MaxPercentUnhealthyReplicasPerPartition = 10
- MaxPercentUnhealthyServices = 15
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-FailureAction
指定受監視升級失敗時要採取的動作。 此參數可接受的值為:
- 復原
- 手動
類型: | UpgradeFailureAction |
接受的值: | Invalid, Rollback, Manual |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
表示此 Cmdlet 會略過警告訊息,並強制升級。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ForceRestart
表示即使升級是僅限設定的變更,服務主機仍會重新開機。
類型: | SwitchParameter |
Position: | 3 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-HealthCheckRetryTimeoutSec
指定持續時間,以秒為單位,之後 Service Fabric 會在先前的健康情況檢查失敗時重試健康情況檢查。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-HealthCheckStableDurationSec
指定 Service Fabric 等候的持續時間,以秒為單位,以確認應用程式在移至下一個升級網域或完成升級之前是穩定的。 此等候持續時間可防止在執行健康狀態檢查之後立即偵測到的健康情況變更。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-HealthCheckWaitDurationSec
指定 Service Fabric 在升級網域完成升級之後,于執行初始健康情況檢查之前等候的持續時間,以秒為單位。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InstanceCloseDelayDurationSec
指定持續時間,以秒為單位,等待應用程式升級所影響的無狀態實例關閉,以允許作用中的要求正常清空。 此等候持續時間僅適用于針對 InstanceCloseDelayDuration 設定非零值的無狀態服務實例,而且會覆寫預先設定的值。 如需詳細資訊,請參閱) 中的 New-ServiceFabricService
InstanceCloseDelayDuration (。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-MaxPercentUnhealthyDeployedApplications
指定部署在叢集中節點的應用程式實例最大百分比,該實例在叢集的應用程式健康情況狀態發生錯誤之前,其健康情況狀態為錯誤。
類型: | Byte |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Monitored
表示升級模式受到監視。 當 Cmdlet 完成一個升級網域的升級後,如果升級網域和叢集的健康情況符合您定義的健康情況原則,則 Service Fabric 會升級下一個升級網域。 如果升級網域或叢集不符合健康原則,升級將會失敗,而且 Service Fabric 會根據指定的原則復原該升級網域的升級,或還原為手動模式。 這是在生產環境中升級應用程式的建議模式。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-ReplicaQuorumTimeoutSec
指定逾時期間,以秒為單位,以檢查複本集是否有仲裁。 在逾時期間之後,升級會繼續進行。
此參數已被取代。 請改為指定 UpgradeReplicaSetCheckTimeoutSec 參數。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RestartProcess
表示服務主機在升級過程中重新開機。
此參數已被取代。 請改為指定 ForceRestart 參數。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ServiceTypeHealthPolicyMap
以下列格式指定用於不同服務類型之健康情況原則的對應:@ {「ServiceTypeName」 : 「MaxPercentUnhealthyPartitionsPerService,MaxPercentUnhealthyReplicasPerPartition,MaxPercentUnhealthyServices」}。 例如:
@{ 「ServiceTypeName01」 = 「5,10,5」;「ServiceTypeName02」 = 「5,5,5」 }
類型: | Hashtable |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SortOrder
定義升級透過叢集繼續進行的順序。
可能的值包括:
-
Invalid
- 表示此排序次序無效。 所有 Service Fabric 列舉都有不正確類型。 -
Default
- 指出將使用叢集資訊清單中指定的預設排序次序 () 。 -
Numeric
- 表示將使用轉寄數值排序次序 (UD 名稱) 。 -
Lexicographical
- 表示將使用轉寄語彙排序次序 (UD 名稱) 。 -
ReverseNumeric
- 表示將使用反向數值排序次序 (UD 名稱) 。 -
ReverseLexicographical
- 表示將使用反向語彙排序次序, (UD 名稱排序為字串) 。
類型: | UpgradeSortOrder |
接受的值: | Invalid, Default, Numeric, Lexicographical, ReverseNumeric, ReverseLexicographical |
Position: | 5 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-TimeoutSec
指定作業的逾時期間,以秒為單位。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-UnmonitoredAuto
表示升級模式為未受監視的自動升級。 當 Service Fabric 升級一個升級網域後,不管應用程式健康狀態為何,Service Fabric 都會升級下一個升級網域。 此模式中不建議用於生產環境中,而且僅適用於應用程式的開發。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-UnmonitoredManual
表示升級模式為未受監視的手動升級。 當 Service Fabric 升級一個升級網域後,它會等候您使用 Resume-servicefabricapplicationupgrade Cmdlet 來升級下一個升級網域。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-UpgradeDomainTimeoutSec
指定 Service Fabric 升級單一升級網域所需的時間上限,以秒為單位。 在此期間之後,升級會失敗。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-UpgradeReplicaSetCheckTimeoutSec
指定 Service Fabric 等候服務重新設定為安全狀態的最長時間,如果尚未處於安全狀態,Service Fabric 繼續升級。
類型: | UInt32 |
Position: | 4 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-UpgradeTimeoutSec
指定 Service Fabric 在整個升級所花費的最大時間,以秒為單位。 在此期間之後,升級會失敗。
類型: | UInt32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
輸出
System.Object