Windows Azure

概要

Azure App Service Logic Appsを使用すれば、コーディングすることなくAPIを使用して、いろんなサービスとデータソースを連携させることができます。

今回のデモは以下のような感じ。

image

本編

Azure App Logic Appsを使用するには、Azure管理ポータルから「Logic app」を選択します。

image

最初の画面です。

image

ビジネスロジックを定義するために、「0 triggers, 0 actions」をクリックします。

次に、このActionをどのタイミングで使用するかを定義します。
今回は、1分毎に動かします。

image

そして、APIにアクセスするためのHTTPメソッドを選択します。
ちなみにDropboxやFacebookなどのパーツはあらかじめ用意しているので、HTTPじゃなくて、そちらのパーツを利用するといいでしょう。

image

今回は、http://example.com としてみましょう。

image

でも、これだと動いているか確認しにくいので、どんなアクセスがされたのかを確認しやすいように、パケットキャプチャをしてくれるサービスhttp://requestb.in/にPOSTしてみましょう。

image

そーすると、ほら1分毎にアクセスしているのがわかりますね。

image

実行結果は、このように一覧表示されて、選択すると詳細を確認することができます。

image

今回は、GetとPOSTの2つ定義したので結果も2つ表示されています。

image

こんな感じでResponseを受信できていますね。

image

SQLデータベースに新しい顧客が登録されてたら、Salesforceに連携されて情報が登録されているのを想像してみてください。

まずは、Microsoft SQL Connectorで、データベースから情報をJSONで取得します。

image

次に、Salesforce Conectorに連携して、SQLデータベースから取得した情報を、Salesforceのどの項目に紐づけるかを設定します。EmailはSQLデータベースのこの項目ですね~っという感じに。

image

さらに、Twilio Connectorで、メッセージを送信できるようにしましょう。

Twilioで取得した電話番号と、宛先とメッセージ内容を設定します。

image

これを保存して、次に、SQLデータベースに新しい顧客情報を登録してみましょう。

image

で、定期ポーリングするようにスケジューリングしているので、次のタスクが実行したときにメッセージが送付されます。

image

Salesforceにも登録されていますね。

image

APIを使用して各アプリケーションを簡単に連携させることができましたね!

Windows Azure

MSDN Blog:「Troubleshooting tool–Azure WebJob TCP Ping」を意訳した投稿です

特定IPアドレスとポート番号に対してソケット(TCPPing)を開き続けるシンプルなAzure WebJobのVisual Studioソリューションを公開しました。

Github:https://github.com/cicorias/webjobtcpping

Azure Web Job – TCP Ping

概要

Visual Studio 2013ソリューション

  • JobRunnerShell
    Azure Web Job クラスとアセンブリ用のプロセスとジョブの基本的な管理をラップしたクラス
  • TcpPing
    シンプルなAzure Web Jobの導入。毎秒TcpPingを実行し続ける
  • SimpleTcpServer
    とてもシンプルなTcpリスナーサービス

目的

サーバーにPingし続けるAzure WebSiteで、継続的に基本的な調査情報を提供するソリューションです。Azureで仮想ネットワーク経由で、IPv4アドレスを使用してサーバーの可用性をテストします。

サーバーリスナーサービスに対して使用します。
ただ単純に、Socket.Open()します。サーバーはソケットをオープンして閉じます。

デプロイ

Azure WebJob
Visual Studioで、「TcpPing」ユーティリティをNugetで入れます。

設定
TcpPingプロジェクトの、「app.config」で、「appSettings」と「connectionStrings」を設定します。

AppSettings
ソケットオープンするサーバーを設定します。

<appSettings>
  <add key="sqlIp" value="10.3.0.4"/>
  <add key="sqlPort" value="8999"/>
</appSettings>

connectionStrings

<connectionStrings>
<!--WEBJOBS_RESTART_TIME  - please set in porta to seconds like 60.-->
<!--WEBJOBS_STOPPED   setting to 1 means stopped-->
<!-- The format of the connection string is "DefaultEndpointsProtocol=https;AccountName=NAME;AccountKey=KEY" -->
<!-- For local execution, the value can be set either in this config file or through environment variables -->
<add name="AzureWebJobsDashboard"
 connectionString="DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>" />
<add name="AzureWebJobsStorage"
 connectionString="DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>" />
</connectionStrings>

Simple TCPサーバー

<appSettings>
 <add key="serverPort" value="8999"/>
</appSettings>

Windows Azure

通常、Microsoft Azure上のLinuxを構築すると、大抵のLinuxでCLIモードで提供されます。SSHの代わりにリモートデスクトップを有効にする方法について説明します。

Putty.exeで、SSHを使用して、仮想マシンに接続します。

 

SSHのデフォルトポートであるポート22番で「centosrdp.cloudapp.net」に接続します。

接続先のDNS名は、マネージメントポータルで確認できます。

仮想マシンにCLIで接続した後、ユーザー名とパスワードを入力します。

次のコマンドを実行し、root権限を取得します。

sudo –s

EPELとnux Desktopリポジトリrpmsをインストールします。

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

インストール後、GNOMEデスクトップをインストールします。

yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

CLIからGUIへ変更するために次のコマンドを実行します。

ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

仮想マシン上でリモートデスクトップを有効するために、xrdpをインストールします。

yum -y install xrdp tigervnc-server

xrdpサービスをスタートします。

systemctl start xrdp.service

次のコマンドを実行し、xrdpサービスをテストします。

netstat -antup | grep xrdp

xrdpサービスを有効化します。

systemctl enable xrdp.service

マシンのファイアーウォールにポートを追加します。

firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload

Azureマネージメントポータルで仮想マシンのエンドポイントを追加します。

マネージメントポータルで、仮想マシンのエンドポイントタブを選択肢、Addボタンをクリックします。

RDPを選択し、デフォルトのポートのまま追加します。

仮想マシンのダッシュボードで、接続ボタンをクリックします。

OKをクリックして接続します。

RDpウィンドウが表示されます。

接続成功!

 

How to enable Desktop Experience and enable RDP for a CentOs 7 VM on Microsoft Azureを意訳した投稿です。

Windows Azure

AzCopy – Announcing General Availability of AzCopy 3.0 plus preview release of AzCopy 4.0 with Table and File supportを意訳した投稿です。

今回のリリースから、正式版の機能だけを含んだRTM版と、正式版とプレビュー版の機能を含んだプリリリース版の2種類のAzCopyを公開することにしました。

blobへの対応だけのAzCopy 3.0と正式版の機能に加えて、Tableエンティティにも対応しているプレビューでの提供のAzCopy 4.0 プレビューの両方をダウンロードできます。

AzCopy 3.0 正式版

  • AzCopyで、すべてのパラメーター名を明示的に指定しなければならなくなりました。プレビュー時には、source、destination、ファイルパターンはパラメーター名を指定しなくても問題ありませんでした。
    AzCopy /Source:<source> /Dest:<destination> /Pattern:<pattern> [Options] …
  • AzCopyのヘルプメッセージを次のように変更しました。
    「AzCopy」と入力すると、ショートバージョンのヘルプが表示されます。
    「AzCopy /?」と入力すると、コマンドラインの詳細なヘルプが表示されます。
    「AzCopy /?:Sample」と入力すると、コマンドラインサンプルが表示されます。
    「AzCopy /?:<オプション名>」と入力すると、AzCopyオプションの詳細が表示されます。(例:AzCopy /?:SourceKey)
  • プレビュー時には、存在するファイルの上書きをしないを選択していると、存在しているファイルやBlobへのステータスが「failed」に設定されていました。3.0.0からは、「skipped」ステータスになり、コンソールウィンドウの「Transfer summary」に「Transfer skipped: <スキップ合計数>」と表示されます。

AzCopy 4.0.0-preview Azure Storage Table エンティティ(新しいプレビュ)

AzCopy 4.0.0-previewでは、TableエンティティをローカルファイルまたはAzure Storage ブロックブロブへのエクスポート、ストレージTableへのデータをインポートして戻すのに対応しています。この機能は、Tableの矛盾が発生しないスナップショットではない(トランザクションではない)ことに注意してください。すべてのエンティティをAzCopyが出力する前に、随時Tableのエンティティに変更が加えられるかもしれないからです。

  • Tableエンティティのエクスポート時、/Destパラメーターで、ローカルフォルダーからBlobコンテナーを指定します。
    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:D:\test\ /SourceKey:key
    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:https://myaccount.blob.core.windows.net/mycontainer/ /SourceKey:key1 /Destkey:key2

    AzCopyは、ローカルフォルダーまたはBlobコンテナーに、次のような命名規則で、JSONデーターファイルを生成します。
    <account name>_<table name>_<timestamp>_<volume index>_<CRC>.json
  • AzCopyは、デフォルトでひとつのJSONデータファイルを生成します。「/SplitSize: <MBで分割容量>」パラメーターを指定することで、複数のファイルを生成することができます。
    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:D:\test\ /SourceKey:key /SplitSize:100
  • AzCopyは、デフォルトですべてのTableエンティティを出力します。並列エクスポーtするためには、「/PKRS: <パーティションキーレンジ>」オプションが必要です。
    例えば、「/PKRS:”aa#bb”」と指定すると、AzCopyは、次のような3つのキー範囲でエクスポート処理を並列に実行します。

    [<最初のパーティションキー>, aa]
    [aa, bb]
    [bb, <最後のパーティションキー>]

    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:D:\test\ /SourceKey:key /PKRS:”aa#bb”

    そして次のように3つのJSONファイルが生成されます。
    myaccount_mytable_20140903T051850.8128447Z_0_0_C3040FE8.json
    myaccount_mytable_20140903T051850.8128447Z_1_0_0AB9AC20.json
    myaccount_mytable_20140903T051850.8128447Z_2_0_939AF48C.json

    並列処理数は、/NCオプションで指定できます。デフォルトでは、AzCopyは、/NCの値にマシンのコア数を使用します。ユーザが、/PKRSを指定すると、パーティションキー数と/NCで指定された数の小さい方の値を選択します。詳細は、「AzCopy /?:NC」と入力してください。

  • Tableにデータをインポートして戻すとき、/Manifestと/EntityOperationを指定する必要があります。
    AzCopy /Source:D:\test\ /Dest:https://myaccount.table.core.windows.net/mytable1/ /DestKey:key /Manifest:"myaccount_mytable_20140103T112020.manifest" /EntityOperation:InsertOrReplace
    AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer/ /Dest:https://myaccount.table.core.windows.net/mytable1/ /SourceKey:key1 /DestKey:key2 /Manifest:"myaccount_mytable_20140103T112020.manifest" /EntityOperation:InsertOrReplace
    Manifestファイルは、AzCopyを使用してTableエンティティをエクスポートした時に、destinationローカルフォルダーまたはBlobコンテナーに生成されます。Manifestファイルは、インポートする際にデータバリデーションの実行とすべてのデータファイルを見つけるのに使用されます。
    <account name>_<table name>_<timestamp>.manifest

    /EntityOperationは、エンティティインポート動作に影響を与えます。
    InsetOrSkip – Tableに存在しない場合新しいエンティティを挿入し、存在する場合はスキップ
    InsertOrMerge – 既存のエンティティとマージまたは、Tableに存在しない場合新しいエンティティを挿入します。
    InsertReplace – Tableに存在しない場合新しいエンティティを挿入し、既存のエンティティに上書きします。

    インポート時には、/PKRSオプションは使用できません。AzCopyはデフォルトで、マシンと同じコア数の並列度で、最初のファイルから順番にインポートします。/NCオプションで並列度を変えることはできます。