Start-ServiceFabricApplicationUpgrade

將 Service Fabric 應用程式升級至指定的 ApplicationTypeVersion。

Syntax

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 的應用程式。

Type:Uri
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationParameter

將應用程式參數的覆寫指定為名稱/值組。

Type:Hashtable
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationTypeVersion

指定 Service Fabric 應用程式類型的版本。 Cmdlet 會將應用程式升級為您指定的版本。

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

在執行 Cmdlet 前提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConsiderWarningAsError

指出是否要在健康情況評估期間將警告健康情況事件視為錯誤事件。

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultServiceTypeHealthPolicy

以下列格式指定預設服務類型的健康原則,以用於受監視的升級:MaxPercentUnhealthyPartitionsPerService、MaxPercentUnhealthyReplicasPerPartition、MaxPercentUnhealthyServices。 例如,5,10,15 表示下列值:

  • MaxPercentUnhealthyPartitionsPerService = 5
  • MaxPercentUnhealthyReplicasPerPartition = 10
  • MaxPercentUnhealthyServices = 15
Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FailureAction

指定受監視升級失敗時要採取的動作。 此參數可接受的值為:

  • 復原
  • 手動
Type:UpgradeFailureAction
Accepted values:Invalid, Rollback, Manual
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Force

表示此 Cmdlet 會略過警告訊息,並強制升級。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceRestart

表示即使升級是僅限設定的變更,服務主機仍會重新開機。

Type:SwitchParameter
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HealthCheckRetryTimeoutSec

指定持續時間,以秒為單位,之後 Service Fabric 會在先前的健康情況檢查失敗時重試健康情況檢查。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HealthCheckStableDurationSec

指定 Service Fabric 等候的持續時間,以秒為單位,以確認應用程式在移至下一個升級網域或完成升級之前是穩定的。 此等候持續時間可防止在執行健康狀態檢查之後立即偵測到的健康情況變更。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HealthCheckWaitDurationSec

指定 Service Fabric 在升級網域完成升級之後,于執行初始健康情況檢查之前等候的持續時間,以秒為單位。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceCloseDelayDurationSec

指定持續時間,以秒為單位,等待應用程式升級所影響的無狀態實例關閉,以允許作用中的要求正常清空。 此等候持續時間僅適用于針對 InstanceCloseDelayDuration 設定非零值的無狀態服務實例,而且會覆寫預先設定的值。 如需詳細資訊,請參閱) 中的 New-ServiceFabricServiceInstanceCloseDelayDuration (。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxPercentUnhealthyDeployedApplications

指定部署在叢集中節點的應用程式實例最大百分比,該實例在叢集的應用程式健康情況狀態發生錯誤之前,其健康情況狀態為錯誤。

Type:Byte
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Monitored

表示升級模式受到監視。 當 Cmdlet 完成一個升級網域的升級後,如果升級網域和叢集的健康情況符合您定義的健康情況原則,則 Service Fabric 會升級下一個升級網域。 如果升級網域或叢集不符合健康原則,升級將會失敗,而且 Service Fabric 會根據指定的原則復原該升級網域的升級,或還原為手動模式。 這是在生產環境中升級應用程式的建議模式。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ReplicaQuorumTimeoutSec

指定逾時期間,以秒為單位,以檢查複本集是否有仲裁。 在逾時期間之後,升級會繼續進行。

此參數已被取代。 請改為指定 UpgradeReplicaSetCheckTimeoutSec 參數。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestartProcess

表示服務主機在升級過程中重新開機。

此參數已被取代。 請改為指定 ForceRestart 參數。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServiceTypeHealthPolicyMap

以下列格式指定用於不同服務類型之健康情況原則的對應:@ {「ServiceTypeName」 : 「MaxPercentUnhealthyPartitionsPerService,MaxPercentUnhealthyReplicasPerPartition,MaxPercentUnhealthyServices」}。 例如:

@{ 「ServiceTypeName01」 = 「5,10,5」;「ServiceTypeName02」 = 「5,5,5」 }

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SortOrder

定義升級透過叢集繼續進行的順序。

可能的值包括:

  • Invalid - 表示此排序次序無效。 所有 Service Fabric 列舉都有不正確類型。
  • Default - 指出將使用叢集資訊清單中指定的預設排序次序 () 。
  • Numeric - 表示將使用轉寄數值排序次序 (UD 名稱) 。
  • Lexicographical - 表示將使用轉寄語彙排序次序 (UD 名稱) 。
  • ReverseNumeric - 表示將使用反向數值排序次序 (UD 名稱) 。
  • ReverseLexicographical- 表示將使用反向語彙排序次序, (UD 名稱排序為字串) 。
Type:UpgradeSortOrder
Accepted values:Invalid, Default, Numeric, Lexicographical, ReverseNumeric, ReverseLexicographical
Position:5
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutSec

指定作業的逾時期間,以秒為單位。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UnmonitoredAuto

表示升級模式為未受監視的自動升級。 當 Service Fabric 升級一個升級網域後,不管應用程式健康狀態為何,Service Fabric 都會升級下一個升級網域。 此模式中不建議用於生產環境中,而且僅適用於應用程式的開發。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UnmonitoredManual

表示升級模式為未受監視的手動升級。 當 Service Fabric 升級一個升級網域後,它會等候您使用 Resume-servicefabricapplicationupgrade Cmdlet 來升級下一個升級網域。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UpgradeDomainTimeoutSec

指定 Service Fabric 升級單一升級網域所需的時間上限,以秒為單位。 在此期間之後,升級會失敗。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UpgradeReplicaSetCheckTimeoutSec

指定 Service Fabric 等候服務重新設定為安全狀態的最長時間,如果尚未處於安全狀態,Service Fabric 繼續升級。

Type:UInt32
Position:4
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UpgradeTimeoutSec

指定 Service Fabric 在整個升級所花費的最大時間,以秒為單位。 在此期間之後,升級會失敗。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

輸出

System.Object