重要
2025 年 3 月 31 日の時点で、クラウド サービス (延長サポート) は非推奨となり、2027 年 3 月 31 日に完全に廃止されます。 この非推奨化の詳細と移行方法について説明します。
この記事では、Az.CloudService Azure PowerShell モジュールを使用し、複数のロール (WebRole と WorkerRole) を含む Azure Cloud Services (延長サポート) デプロイを作成する方法を説明します。
前提条件
Azure PowerShell を使用してデプロイを作成するための前提条件として、以下の手順を実行します。
Cloud Services (延長サポート) のデプロイの前提条件を確認し、必要なリソースを作成します。
Az.CloudService PowerShell モジュールをインストールします。
Install-Module -Name Az.CloudService新しいリソース グループを作成します。 既存のリソース グループを使用する場合、この手順は省略可能です。
New-AzResourceGroup -ResourceGroupName “ContosOrg” -Location “East US”Cloud Services (延長サポート) デプロイ用のパッケージ (.cspkg または .zip) ファイルと構成 (.cscfg) ファイルを格納するためのストレージ アカウントとコンテナーを Azure 内に作成します。 ストレージ アカウント名には、一意の名前を使用する必要があります。 既存のストレージ アカウントを使用する場合、この手順は省略可能です。
$storageAccount = New-AzStorageAccount -ResourceGroupName “ContosOrg” -Name “contosostorageaccount” -Location “East US” -SkuName “Standard_RAGRS” -Kind “StorageV2” $container = New-AzStorageContainer -Name “contosocontainer” -Context $storageAccount.Context -Permission Blob
Cloud Services (延長サポート) をデプロイする
Cloud Services (延長サポート) をデプロイするには、以下のいずれかの PowerShell コマンドレット オプションを使用します。
ストレージ アカウントを使用してデプロイを手早く作成する
- このパラメーター セットでは、デプロイ用のパッケージ (.cspkg または .zip) ファイル、構成 (.cscfg) ファイル、定義 (.csdef) ファイルをストレージ アカウントの入力として使用します。
- このコマンドレットは、Cloud Services (延長サポート) ロール プロファイル、ネットワーク プロファイル、OS プロファイルを最小限の入力から作成します。
- 証明書を入力するには、キー コンテナー名を指定する必要があります。 キー コンテナー内の証明書サムプリントは、デプロイの構成 (.cscfg) ファイルで指定した証明書に対して検証されます。
Shared Access Signature URI を使用してデプロイを手早く作成する
- このパラメーター セットでは、パッケージ (.cspkg または .zip) ファイルの Shared Access Signature (SAS) URI と、構成 (.cscfg) ファイルおよび定義 (.csdef) ファイルのローカル パスを入力します。 ストレージ アカウントの入力は必要ありません。
- このコマンドレットは、クラウド サービス ロール プロファイル、ネットワーク プロファイル、および OS プロファイルの最小限の入力を作成します。
- 証明書を入力するには、キー コンテナー名を指定する必要があります。 キー コンテナー内の証明書サムプリントは、デプロイの構成 (.cscfg) ファイルで指定した証明書に対して検証されます。
ロール プロファイル、OS プロファイル、ネットワーク プロファイル、拡張プロファイルの Shared Access Signature URI を使用してデプロイを作成する
- このパラメーター セットでは、パッケージ (.cspkg または .zip) ファイルと構成 (.cscfg) ファイルの SAS URI を入力します。
- プロファイル オブジェクト (ロール プロファイル、ネットワーク プロファイル、OS プロファイル、拡張プロファイル) を指定する必要があります。 各プロファイルは、構成 (.cscfg) ファイルおよび定義 (.csdef) ファイルで設定した値と一致している必要があります。
ストレージ アカウントを使用してデプロイを手早く作成する
パッケージ (.cspkg または .zip) ファイル、構成 (.cscfg) ファイル、定義 (.csdef) ファイルを使用して、Cloud Services (延長サポート) デプロイを作成します。
$cspkgFilePath = "<Path to .cspkg file>"
$cscfgFilePath = "<Path to .cscfg file>"
$csdefFilePath = "<Path to .csdef file>"
# Create a Cloud Services (extended support) deployment
New-AzCloudService
-Name "ContosoCS" `
-ResourceGroupName "ContosOrg" `
-Location "EastUS" `
-ConfigurationFile $cscfgFilePath `
-DefinitionFile $csdefFilePath `
-PackageFile $cspkgFilePath `
-StorageAccount $storageAccount `
[-KeyVaultName <string>]
SAS URI を使用してデプロイを手早く作成する
デプロイ用のパッケージ (.cspkg または .zip) ファイルをストレージ アカウントにアップロードします。
$tokenStartTime = Get-Date $tokenEndTime = $tokenStartTime.AddYears(1) $cspkgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cspkg” -Container “contosocontainer” -Blob “ContosoApp.cspkg” -Context $storageAccount.Context $cspkgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cspkgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context $cspkgUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri + $cspkgToken $cscfgFilePath = "<Path to cscfg file>" $csdefFilePath = "<Path to csdef file>"パッケージ (.cspkg または .zip) ファイル、構成 (.cscfg) ファイル、定義 (.csdef) ファイル SAS URI を使用して、Cloud Services (延長サポート) デプロイを作成します。
New-AzCloudService -Name "ContosoCS" ` -ResourceGroupName "ContosOrg" ` -Location "EastUS" ` -ConfigurationFile $cspkgFilePath ` -DefinitionFile $csdefFilePath ` -PackageURL $cspkgUrl ` [-KeyVaultName <string>]
プロファイル オブジェクトと SAS URI を使用してデプロイを作成する
Cloud Services (延長サポート) 構成 (.cscfg) ファイルをストレージ アカウントにアップロードします。
$cscfgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cscfg” -Container contosocontainer -Blob “ContosoApp.cscfg” -Context $storageAccount.Context $cscfgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cscfgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context $cscfgUrl = $cscfgBlob.ICloudBlob.Uri.AbsoluteUri + $cscfgTokenCloud Services (延長サポート) パッケージ (.cspkg または .zip) ファイルをストレージ アカウントにアップロードします。
$tokenStartTime = Get-Date $tokenEndTime = $tokenStartTime.AddYears(1) $cspkgBlob = Set-AzStorageBlobContent -File “./ContosoApp/ContosoApp.cspkg” -Container “contosocontainer” -Blob “ContosoApp.cspkg” -Context $storageAccount.Context $cspkgToken = New-AzStorageBlobSASToken -Container “contosocontainer” -Blob $cspkgBlob.Name -Permission rwd -StartTime $tokenStartTime -ExpiryTime $tokenEndTime -Context $storageAccount.Context $cspkgUrl = $cspkgBlob.ICloudBlob.Uri.AbsoluteUri + $cspkgToken仮想ネットワークとサブネットを作成します。 既存のネットワークとサブネットを使用する場合、この手順は省略可能です。 この例では、単一の仮想ネットワークとサブネットを両方の Cloud Services (延長サポート) ロール (WebRole と WorkerRole) で使用します。
$subnet = New-AzVirtualNetworkSubnetConfig -Name "ContosoWebTier1" -AddressPrefix "10.0.0.0/24" -WarningAction SilentlyContinue $virtualNetwork = New-AzVirtualNetwork -Name “ContosoVNet” -Location “East US” -ResourceGroupName “ContosOrg” -AddressPrefix "10.0.0.0/24" -Subnet $subnetパブリック IP アドレスを作成し、パブリック IP アドレスの DNS ラベル値を設定します。 Cloud Services (延長サポート) では、Basic SKU のパブリック IP アドレスのみがサポートされています。 Standard SKU のパブリック IP アドレスは、Cloud Services (延長サポート) では機能しません。
静的 IP アドレスを使用する場合は、デプロイの構成 (.cscfg) ファイル内で、そのアドレスを予約済み IP アドレスとして参照する必要があります。
$publicIp = New-AzPublicIpAddress -Name “ContosIp” -ResourceGroupName “ContosOrg” -Location “East US” -AllocationMethod Dynamic -IpAddressVersion IPv4 -DomainNameLabel “contosoappdns” -Sku Basicネットワーク プロファイル オブジェクトを作成し、パブリック IP アドレスをロード バランサーのフロントエンドに関連付けます。 Cloud Services (延長サポート) リソースと同じサブスクリプション内に、クラシック SKU ロード バランサー リソースが Azure プラットフォームによって自動的に作成されます。 このロード バランサーは、Azure Resource Manager の読み取り専用リソースです。 リソースの更新は、Cloud Services (延長サポート) 構成 (.cscfg) ファイルとデプロイ (.csdef) ファイルを介してのみ行えます。
$publicIP = Get-AzPublicIpAddress -ResourceGroupName ContosOrg -Name ContosIp $feIpConfig = New-AzCloudServiceLoadBalancerFrontendIPConfigurationObject -Name 'ContosoFe' -PublicIPAddressId $publicIP.Id $loadBalancerConfig = New-AzCloudServiceLoadBalancerConfigurationObject -Name 'ContosoLB' -FrontendIPConfiguration $feIpConfig $networkProfile = @{loadBalancerConfiguration = $loadBalancerConfig}キー保管庫を作成してください。 キー コンテナーには、Cloud Services (延長サポート) ロールに関連付けられている証明書が格納されます。 キー コンテナーは、Cloud Services (延長サポート) のデプロイと同じリージョンおよびサブスクリプション内に存在し、一意の名前を持っている必要があります。 詳細については、「Azure Cloud Services (延長サポート) で証明書を使用する」を参照してください。
New-AzKeyVault -Name "ContosKeyVault” -ResourceGroupName “ContosOrg” -Location “East US”キー コンテナーのアクセス ポリシーを更新し、ユーザー アカウントに証明書のアクセス許可を付与します。
Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -EnabledForDeployment Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -UserPrincipalName 'user@domain.com' -PermissionsToCertificates create,get,list,deleteまたは、
ObjectId値を使用してアクセス ポリシーを設定します。ObjectId値を取得するには、Get-AzADUserを実行します。Set-AzKeyVaultAccessPolicy -VaultName 'ContosKeyVault' -ResourceGroupName 'ContosOrg' -ObjectId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' -PermissionsToCertificates create,get,list,delete以下の例では、自己署名証明書をキーの保管庫に追加します。 証明書サムプリントは、Cloud Services (延長サポート) ロールの構成 (.cscfg) ファイルを使用して追加する必要があります。
$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal Add-AzKeyVaultCertificate -VaultName "ContosKeyVault" -Name "ContosCert" -CertificatePolicy $PolicyOS プロファイルのメモリ内オブジェクトを作成します。 OS プロファイルでは、Cloud Services (延長サポート) ロールに関連付けられている証明書 (前のステップで作成した証明書) を指定します。
$keyVault = Get-AzKeyVault -ResourceGroupName ContosOrg -VaultName ContosKeyVault $certificate = Get-AzKeyVaultCertificate -VaultName ContosKeyVault -Name ContosCert $secretGroup = New-AzCloudServiceVaultSecretGroupObject -Id $keyVault.ResourceId -CertificateUrl $certificate.SecretId $osProfile = @{secret = @($secretGroup)}ロール プロファイルのメモリ内オブジェクトを作成します。 ロール プロファイルでは、ロールの SKU 固有のプロパティ (名前、容量、階層など) を定義します。 この例では、frontendRole と backendRole の 2 つのロールが定義されています。 ロール プロファイル情報は、デプロイ構成 (.cscfg) ファイルおよび定義 (.csdef) ファイルで定義されているロール構成と一致している必要があります。
$frontendRole = New-AzCloudServiceRoleProfilePropertiesObject -Name 'ContosoFrontend' -SkuName 'Standard_D1_v2' -SkuTier 'Standard' -SkuCapacity 2 $backendRole = New-AzCloudServiceRoleProfilePropertiesObject -Name 'ContosoBackend' -SkuName 'Standard_D1_v2' -SkuTier 'Standard' -SkuCapacity 2 $roleProfile = @{role = @($frontendRole, $backendRole)}(省略可能) Cloud Services (延長サポート) のデプロイに追加する、拡張機能プロファイルのメモリ内オブジェクトを作成します。 この例では、リモート デスクトップ プロトコル (RDP) 拡張機能を追加します。
$credential = Get-Credential $expiration = (Get-Date).AddYears(1) $rdpExtension = New-AzCloudServiceRemoteDesktopExtensionObject -Name 'RDPExtension' -Credential $credential -Expiration $expiration -TypeHandlerVersion '1.2.1' $storageAccountKey = Get-AzStorageAccountKey -ResourceGroupName "ContosOrg" -Name "contosostorageaccount" $configFile = "<WAD public configuration file path>" $wadExtension = New-AzCloudServiceDiagnosticsExtension -Name "WADExtension" -ResourceGroupName "ContosOrg" -CloudServiceName "ContosCS" -StorageAccountName "contosostorageaccount" -StorageAccountKey $storageAccountKey[0].Value -DiagnosticsConfigurationPath $configFile -TypeHandlerVersion "1.5" -AutoUpgradeMinorVersion $true $extensionProfile = @{extension = @($rdpExtension, $wadExtension)}構成 (.cscfg) ファイルでは、以下の例のように
PublicConfigタグのみを使用し、名前空間を指定します。<?xml version="1.0" encoding="utf-8"?> <PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"> ............... </PublicConfig>(省略可能) PowerShell ハッシュ テーブルでは、デプロイに追加するタグを定義できます。
$tag=@{"Owner" = "Contoso"}先ほど定義したプロファイル オブジェクトと SAS URI を使用して、Cloud Services (延長サポート) デプロイを作成します。
$cloudService = New-AzCloudService ` -Name “ContosoCS” ` -ResourceGroupName “ContosOrg” ` -Location “East US” ` -PackageUrl $cspkgUrl ` -ConfigurationUrl $cscfgUrl ` -UpgradeMode 'Auto' ` -RoleProfile $roleProfile ` -NetworkProfile $networkProfile ` -ExtensionProfile $extensionProfile ` -OSProfile $osProfile ` -Tag $tag
関連するコンテンツ
- Cloud Services (延長サポート) に関してよく寄せられる質問を確認します。
- Azure portal、ARM テンプレート、または Visual Studio を使用して、Cloud Services (延長サポート) をデプロイします。
- Cloud Services (延長サポート) のサンプル リポジトリを確認します。