Azure PowerShellでBLOBを操作する備忘録です。余り知られていませんが、以下のようなことはできます。
- BLOBコンテナ取得、作成、削除
- BLOB取得、アップロード、ダウンロード、削除
- BLOB間コピー
- Table操作
- Queue操作
- etc...
これらは、まとめて以下は、MSDNで説明されています。
続きを読むAzure PowerShellでBLOBを操作する備忘録です。余り知られていませんが、以下のようなことはできます。
これらは、まとめて以下は、MSDNで説明されています。
続きを読むAzure 診断機能(Azure Diagnostics)の構成ファイルを取り出す備忘録です。無理やり1 liner ぎみに。
見にくいので改行してます。
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String((( Get-AzureVM hogevm fugavm | Get-AzureVMDiagnosticsExtension).PublicConfiguration | ConvertFrom-Json).xmlCfg))
実行すると見たいにXMLとなって取れます。
<WadCfg><DiagnosticMonitorConfiguration overallQuotaInMB="4096" xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsCon figuration"><DiagnosticInfrastructureLogs scheduledTransferLogLevelFilter="Error" /><Directories scheduledTransferPeriod="P1D"><IISLogs c ontainerName="wad-iis-logfiles" /><FailedRequestLogs containerName="wad-failedrequestlogs" /><DataSources><DirectoryConfiguration contain erName="logs"><Absolute path="C:\TestLog\" expandEnvironment="false" /></DirectoryConfiguration><DirectoryConfiguration containerName="lo gs"><Absolute path="C:\TestLog2" expandEnvironment="false" /></DirectoryConfiguration></DataSources></Directories></DiagnosticMonitorConf iguration></WadCfg>
だいぶ以前(2014/5)より内部負荷分散(Internal Load Balancer) が利用可能になってたのですが、試したことがなかったのでやってみました。現時点では、管理ポータルから作業することはできずコマンドラインからの作業でしか定義できません(azure command line tools は未確認)
内部負荷分散は、仮想ネットワークのサブネットに定義しますが、従来のアフィニティグループと紐づいている仮想ネットワークには定義できません。リージョナル仮想ネットワークにのみ定義できるので注意が必要です。
テストする構成は以下の通り。
まずは、上記構成の環境を構築しますが、そこは割愛します。
Add-AzureInternalLoadBalancerコマンドレットを使い定義します。IPアドレスは指定しなくても、任意のアドレスに割り当ててくれます。
Add-AzureInternalLoadBalancer -InternalLoadBalancerName myilb ` -ServiceName svname -SubnetName Subnet-1 ` -StaticVNetIPAddress 10.0.0.10
Get-AzureInternalLoadBalancer で、定義内容を確認できます。
PS C:\> Get-AzureInternalLoadBalancer svname InternalLoadBalancerName : myilb ServiceName : svname DeploymentName : test01 SubnetName : Subnet-1 IPAddress : 10.0.0.10 OperationDescription : Get-AzureInternalLoadBalancer OperationId : e9511d27-622b-6aaf-b14a-2a7b2e065a59 OperationStatus : Succeeded
エンドポイントの追加は、パブリックエンドポイトと同じくAdd-AzureEndpointコマンドレットで行います。InternalLoadBalancerName 引数を指定するのがポイントです。
Get-AzureVM svname test01 | Add-AzureEndpoint -Name http -Protocol tcp -LocalPort 80 -PublicPort 80 ` -ProbePort 80 -ProbeProtocol tcp -InternalLoadBalancerName myilb -LBSetName myilb | Update-AzureVM
これをtest02 に対しても行います。
確認は、Get-AzureEndpointコマンドレットで出来ます。
PS C:\> Get-AzureVM svname test01 | Get-AzureEndpoint http LBSetName : myilb LocalPort : 80 Name : http Port : 80 Protocol : tcp Vip : 10.0.0.10 ProbePath : ProbePort : 80 ProbeProtocol : tcp ProbeIntervalInSeconds : 15 ProbeTimeoutInSeconds : 31 EnableDirectServerReturn : False Acl : {} InternalLoadBalancerName : myilb IdleTimeoutInMinutes : LoadBalancerDistribution :
test01/test02には適宜httpサーバーを起動しておきましょう。test03から
curl http://10.0.0.10/
で、レスポンスがゲットできれば問題なく動いているでしょう。負荷分散されているtest01/test02からcurlしても、自分に戻ってくる場合はレスポンスが得られないので注意(確認を横着してちょっとはまった)。交互に接続されるみたいなので、ラウンドロビンっぽい動作になっているように見えます。