Microsoft Cognitive Sercicesの一つであるBing Web Search APIの課金は月単位で行われます。サービスのレベルをアップグレードすると、FAQに記載されているようにアップグレード後のレベルに対応する課金レートと含まれるトランザクション数がすぐに適用されます。
ただし、月の途中でダウングレードしても、その月で最も高いサービスレベルの課金レートが適用されるとのことです。
2017年7月31日月曜日
2017年5月25日木曜日
Azure Database for MySQLを使ってみる
Azure Database for MySQLがパブリックプレビューとしてリリースされたので、こちらのドキュメントの手順に従って、サービスを作成してみます。
https://docs.microsoft.com/ja-jp/azure/mysql/
PowerShellのドキュメントが無いので、Azure CLIでMySQLサーバーを作成します。Azure Cloud ShellにCLI環境及びmysqlコマンドラインツールが入っているので、こちらを使ってもよいと思います。
Azureサブスクリプションにログインしたら、まずリソースグループ「rg-manageddb」を東日本に作成します。
Azure Database for MySQLサーバーを作成します。サーバー名「mkmysql01」、管理者ユーザー「mysqladmin」、パフォーマンスレベル「Basic」、コンピューティングユニット「100」で東日本に作成します。なお、2017/5/25時点ではバージョンを指定しない場合は5.6で作成されるようです。
MySQLサーバーに接続するために、ファイアウォールを設定します。ここでは接続するクライアントのIPのみ許可しています。
以上でMySQLサーバーの作成及び初期設定が完了しました。
次に、作成されたMySQLサーバーの初期状態を確認してみます。
MySQLサーバーに接続するためのホスト情報を取得します。結果はJSON形式で取得できます。fullyQualifiedDomainNameがホスト情報になります。
mysqlコマンドラインツールでMySQLサーバーに接続します。
データベースを確認します。
「mysql」データベースに接続して、テーブルを確認します。
ユーザーを確認します。
作成後はこのような状態でした。
https://docs.microsoft.com/ja-jp/azure/mysql/
PowerShellのドキュメントが無いので、Azure CLIでMySQLサーバーを作成します。Azure Cloud ShellにCLI環境及びmysqlコマンドラインツールが入っているので、こちらを使ってもよいと思います。
Azureサブスクリプションにログインしたら、まずリソースグループ「rg-manageddb」を東日本に作成します。
az group create --name rg-manageddb --location japaneast
Azure Database for MySQLサーバーを作成します。サーバー名「mkmysql01」、管理者ユーザー「mysqladmin」、パフォーマンスレベル「Basic」、コンピューティングユニット「100」で東日本に作成します。なお、2017/5/25時点ではバージョンを指定しない場合は5.6で作成されるようです。
az mysql server create --resource-group rg-manageddb --name mkmysql01 \ --location japaneast --admin-user mysqladmin --admin-password Password01! \ --performance-tier Basic --compute-units 100※ 引数が2017/5/25時点のドキュメントと異なっているようで、管理者ユーザーのユーザー名とパスワードは「--admin-user」、「--admin-password」で指定するようです。
MySQLサーバーに接続するために、ファイアウォールを設定します。ここでは接続するクライアントのIPのみ許可しています。
az mysql server firewall-rule create --resource-group rg-manageddb \ --server mkmysql01 --name AllowClientIP \ --start-ip-address <クライアントのIPアドレス> \ --end-ip-address <クライアントのIPアドレス>
以上でMySQLサーバーの作成及び初期設定が完了しました。
次に、作成されたMySQLサーバーの初期状態を確認してみます。
MySQLサーバーに接続するためのホスト情報を取得します。結果はJSON形式で取得できます。fullyQualifiedDomainNameがホスト情報になります。
az mysql server show --resource-group rg-manageddb --name mkmysql01
mysqlコマンドラインツールでMySQLサーバーに接続します。
mysql -h mkmysql01.mysql.database.azure.com -u mysqladmin@mkmysql01 -p
データベースを確認します。
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+
「mysql」データベースに接続して、テーブルを確認します。
mysql> use mysql mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | __firewall_rules__ | | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
ユーザーを確認します。
mysql> select host,user from user; +-----------+-----------------+ | host | user | +-----------+-----------------+ | % | mysqladmin | | 127.0.0.1 | azure_superuser | | localhost | azure_superuser | +-----------+-----------------+
作成後はこのような状態でした。
2017年5月11日木曜日
Azure Cloud Shell
Azure PortalでCLIが使えるAzure Cloud Shellが提供されるようになりました。なお、Java、Node、GOあたりも初めから入っています。
dmesgでみるとUbuntuを使っているようですね。
dmesgでみるとUbuntuを使っているようですね。
2017年2月22日水曜日
論文検索サイト
技術情報だけでなく、研究関連情報を知りたいときもありますよね。
そんな時はMicrosoft Academic Searchがとても便利です。
https://academic.microsoft.com/
検索時に論文タイトルや著者の補完をしてくれるだけでなく、著者の執筆数や引用数、研究分野の神も探せるという、とても役立つサイトですので、ぜひ使ってみてください。
https://academic.microsoft.com/
検索時に論文タイトルや著者の補完をしてくれるだけでなく、著者の執筆数や引用数、研究分野の神も探せるという、とても役立つサイトですので、ぜひ使ってみてください。
2016年11月11日金曜日
IoT Hubでデバイスを認証させる方法
IoT Hub SDKを使って、IoT Hubに接続するデバイスを認証させることができます。方式としては
・セキュリティトークン
・X.509証明書
の2パターンになります。
セキュリティトークンを使う場合、セキュリティトークンをデバイス対称キーで署名するか、共有アクセスポリシーキーで署名するか、の2パターンになるのですが、共有アクセスポリシーキーで署名するケース(SASトークン)が多いので、ここでは
・SASトークン
・X.509証明書
の2パターンによる認証方法のコード例を示します。なお、コードはIoT Hubのチュートリアルからの変更点または注意点のみを記載します。
SASトークンによる認証:
以下のコードにてデバイスを登録します。
セキュリティトークンを使用するのがデフォルトの認証方式なので、認証方法を指定する必要はありません。
デバイスからIoT Hubに送信するときには、以下のコードにてSASトークンを生成し、デバイスからデータを送信します。
X.509証明書による認証:
以下のコードにてデバイスを登録します。デバイス登録時に、X.509証明書の拇印を指定します。
デバイスからIoT Hubに送信するときには、以下のコードにてX.509証明書をロードし、デバイスからデータを送信します。
・セキュリティトークン
・X.509証明書
の2パターンになります。
セキュリティトークンを使う場合、セキュリティトークンをデバイス対称キーで署名するか、共有アクセスポリシーキーで署名するか、の2パターンになるのですが、共有アクセスポリシーキーで署名するケース(SASトークン)が多いので、ここでは
・SASトークン
・X.509証明書
の2パターンによる認証方法のコード例を示します。なお、コードはIoT Hubのチュートリアルからの変更点または注意点のみを記載します。
SASトークンによる認証:
以下のコードにてデバイスを登録します。
// RegistryManagerを生成
RegistryManager registryManager =
RegistryManager.CreateFromConnectionString("<IoT Hubへの接続文字列>");
// デバイスの登録
var device = new Device ("<デバイスID>");
device = await registryManager.AddDeviceAsync(device);
セキュリティトークンを使用するのがデフォルトの認証方式なので、認証方法を指定する必要はありません。
デバイスからIoT Hubに送信するときには、以下のコードにてSASトークンを生成し、デバイスからデータを送信します。
// SASトークンの生成
var sasToken = new SharedAccessSignatureBuilder()
{
KeyName = "<共有アクセスポリシー名>",
Key = "<共有アクセスポリシーのアクセスキー>",
Target = "<IoT Hubホスト名>" + "/devices/" + "<デバイスID>",
TimeToLive = TimeSpan.FromDays(Convert.ToDouble("<有効期間>"))
}.ToSignature();
// SASトークンを使用して、HTTPプロトコルで接続するDeviceClientインスタンスを作成
var authMethod = new DeviceAuthenticationWithToken("<デバイスID>", sasToken);
var deviceClient
= DeviceClient.Create("<IoT Hubホスト名>", authMethod, TransportType.Http1);
X.509証明書による認証:
以下のコードにてデバイスを登録します。デバイス登録時に、X.509証明書の拇印を指定します。
// RegistryManagerを生成
RegistryManager registryManager =
RegistryManager.CreateFromConnectionString("<IoT Hubへの接続文字列>");
// デバイスの登録
var device = new Device ("<デバイスID>") {
Authentication = new AuthenticationMechanism()
{
// 拇印の指定
X509Thumbprint = new X509Thumbprint()
{
PrimaryThumbprint = "<X.509証明書の拇印>"
}
}
};
device = await registryManager.AddDeviceAsync(device);
デバイスからIoT Hubに送信するときには、以下のコードにてX.509証明書をロードし、デバイスからデータを送信します。
// X.509証明書を使用して、HTTPプロトコルで接続するDeviceClientインスタンスを作成
var x509Certificate = new X509Certificate2("<X.509証明書へのパス>");
var authMethod
= new DeviceAuthenticationWithX509Certificate("<デバイスID>", x509Certificate);
var deviceClient
= DeviceClient.Create("<IoT Hubホスト名>", authMethod, TransportType.Http1);
2016年10月14日金曜日
New-SelfSignedCertificateコマンドレットによる自己証明書の作成
New-SelfSignedCertificateコマンドテッドを使用すると自己証明書が簡単に作れます。これを使うことでSSLやAzure IoT Hubのデバイス署名等のテストが楽になります。ただし、コード署名には使えませんので注意してください。
例えばAzure TestというSubjectの証明書をデフォルトのストアに作成する場合は、以下のコマンドを実行します。
このコマンドを実行すると証明書が作成され、ThumbprintとSubjectが以下のように出力されます。
デフォルトのストアに格納されている証明書を確認する場合は、以下のコマンドを実行します。
証明書をエクスポートする場合には以下のコマンドを実行します。ここではC:\temp\test.cerにエクスポートしています。Cert引数には先ほど作成した証明書のThumbprintを指定してください。
例えばAzure TestというSubjectの証明書をデフォルトのストアに作成する場合は、以下のコマンドを実行します。
New-SelfSignedCertificate -CertStoreLocation "Cert:\CurrentUser\My" -Subject "Azure Test"
このコマンドを実行すると証明書が作成され、ThumbprintとSubjectが以下のように出力されます。
Thumbprint Subject ---------- ------- D9B4240E11048C27F286DFAE3CA11A7833118636 CN=Azure Test
デフォルトのストアに格納されている証明書を確認する場合は、以下のコマンドを実行します。
Get-ChildItem Cert:\CurrentUser\My
証明書をエクスポートする場合には以下のコマンドを実行します。ここではC:\temp\test.cerにエクスポートしています。Cert引数には先ほど作成した証明書のThumbprintを指定してください。
Export-Certificate -Cert cert:\CurrentUser\my\D9B4240E11048C27F286DFAE3CA11A7833118636 -FilePath C:\temp\test.cer
2016年8月4日木曜日
PowerShellでAzureを操作するときのLocation
PowerShellでAzureを操作するときのLocationですが、いつも使う以外のLocationは忘れがちなので取得方法を書いておきます。
MSDNにはGet-AzureRmLocationコマンドレッドについての記述がありますが、2016年8月現在で使用できないようです。ですので、Get-AzureRmResourceProviderコマンドレッドを使いましょう。
結果は以下のようにでます。
ちょっと余計なものも出ているような気がしますが。
MSDNにはGet-AzureRmLocationコマンドレッドについての記述がありますが、2016年8月現在で使用できないようです。ですので、Get-AzureRmResourceProviderコマンドレッドを使いましょう。
(Get-AzureRmResourceProvider).Locations | Sort-Object | Get-Unique -AsString
結果は以下のようにでます。
Australia East Australia Southeast Brazil South Canada Central Canada East Central India Central US Central US (Stage) East Asia East Asia (Stage) East US East US 2 East US 2 (Stage) Global global Japan East Japan West MSFT East Asia MSFT East US MSFT North Europe MSFT West US North Central US North Central US (Stage) North Europe South Central US South India Southeast Asia West Central US West Europe West India West US West US 2
ちょっと余計なものも出ているような気がしますが。
登録:
投稿 (Atom)