<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Japan Azure PaaS Support Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jpcie/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jpcie/feed.xml</link>
    <description>Azure 開発全般をサポートする、Azure PaaS  サポートチームのブログです。</description>
    <lastBuildDate>Wed, 17 Apr 2019 01:09:50 GMT</lastBuildDate>
    <language>ja</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Japan Azure PaaS Support Blog 終了のお知らせ</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/%E3%80%90%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B%E3%80%91japan-azure-paas-support-blog-%E7%A7%BB%E5%8B%95%E3%81%AE%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B</link>
      <pubDate>Wed, 17 Apr 2019 09:59:23 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2795</guid>
      <description><![CDATA[こんにちは、Microsoft Japan Azure PaaS サポート...]]></description>
      <content:encoded><![CDATA[こんにちは、Microsoft Japan Azure PaaS サポート チームです。
このたび、弊社システム刷新の都合により、本ブログを終了いたします。
今後は、以下のフォーラムから情報発信を続けてまいりますので、今後ともよろしくお願いいたします。

<a href="https://social.msdn.microsoft.com/Forums/ja-JP/home?forum=Jpcie" id="forumBreadcrumb_Jpcie"><span>Japan Azure PaaS Support Team フォーラム</span></a>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Web Apps / Azure Functions から同じリージョンの Azure Storage Account へ接続する時の注意点</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-web-apps-azure-functions-%E3%81%8B%E3%82%89%E5%90%8C%E3%81%98%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE-azure-storage-account-%E3%81%B8%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E6%99%82</link>
      <pubDate>Tue, 30 Oct 2018 13:00:52 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2745</guid>
      <description><![CDATA[こんにちは、Azure PaaS サポートの村山です。

今回は、Azure Web Apps / Azure Functions から同リージョンの Azure Storage Account...]]></description>
      <content:encoded><![CDATA[こんにちは、Azure PaaS サポートの村山です。

今回は、Azure Web Apps / Azure Functions から同リージョンの Azure Storage Account へ接続する際の注意点についてご案内します。

&nbsp;

&nbsp;
<h3>同じリージョン内での通信の場合、Firewall を設定すると通信ができなくなる</h3>

<hr />

Azure Web Apps / Azure Functions から同リージョンの Azure Storage Account へ接続する際は、Azure ポータル上の、Web App -&gt; [プロパティ] に記載されている送信 IP ではなく、Azure Web Apps / Azure Functions のプラットフォーム内部で利用されているプライベート IP 経由で通信を行います。

このため、Firewall に下記のような Azure Web Apps や Azure Functions の [プロパティ]に記載されているパブリック IP を設定すると、同じリージョン の Azure Web Apps/ Azure Functions から Storage Account  に接続することができなくなります。

<a href="https://msdnshared.blob.core.windows.net/media/2018/10/ips.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/10/ips.png" alt="" width="629" height="104" class="alignnone size-full wp-image-2765" /></a>

ちなみに、Storage Account のログを有効化して、接続に失敗した時のログを見ると、10.72.196.80:50062; のように、クライアントの IP としてプライベート IP が記載されます。
<blockquote>
<p style="margin: 0in;font-family: Consolas;font-size: 11.0pt">1.0;2018-10-29T08:50:00.3251459Z;CreateContainer;IpAuthorizationError;403;2;2;authenticated;kemurastorage;kemurastorage;blob;"https://kemurastorage.blob.core.windows.net:443/firewalltestcont?restype=container";"/";cb846703-501e-006d-1864-6f7cee000000;0;<span style="color: #ff0000">10.72.196.80:50062</span>;2017-04-17;448;0;95;246;0;;;;;;"Azure-Storage/0.36.0 (Python CPython 3.6.4; Windows 10)";;"9e659d00-db57-11e8-9c95-0003ffec138c"</p>
</blockquote>
&nbsp;

このプライベート IP の範囲は公開されていないため、恐れ入りますが現状では下記のいずれかが対象方法となります。
<ul>
 	<li>Firewall を解除して Azure Storage Account と通信する</li>
 	<li>App Service Environment を利用して、サービス エンドポイントと連携する</li>
</ul>
&nbsp;

もしくは、<a href="https://blogs.msdn.microsoft.com/jpcie/?p=2055">通常の VNET 統合機能</a>ではサービス エンドポイントと連携することはできませんが、<a href="https://blogs.msdn.microsoft.com/appserviceteam/2018/10/17/new-app-service-vnet-integration-feature/">新しい VNET 統合の機能 (プレビュー)</a> であればサービス エンドポイントとの連携が可能です。

&nbsp;
<h3>別リージョンであれば問題なく設定できる</h3>

<hr />

Azure Web Apps / Azure Functions と、Azure Storage Account が東日本と西日本などそれぞれ<strong>別リージョンにある場合</strong>は、Firewall の設定が可能です。

<a href="https://msdnshared.blob.core.windows.net/media/2018/10/west.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/10/west.png" alt="" width="619" height="363" class="alignnone size-full wp-image-2775" /></a>

&nbsp;

お手数をおかけしますが、通常の Azure Web Apps を使いつつ Storage Account の Firewall を利用する場合は、Azure Web Apps / Azure Functions と、Azure Storage Account のリージョンを分けていただきますようお願い申し上げます。

&nbsp;

<span style="color: #ff0000">※ 本記事の内容は予告なく変更される場合がございますので予めご了承ください。</span>

&nbsp;

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Functions での App Service 認証/承認</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-functions-%E3%81%A7%E3%81%AE-app-service-%E8%AA%8D%E8%A8%BC-%E6%89%BF%E8%AA%8D</link>
      <pubDate>Fri, 14 Sep 2018 10:44:55 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2445</guid>
      <description><![CDATA[こんにちは。Azure サポートの板垣です。

Azure App Service では、組み込みの認証/承認機能がサポートされています。
Azure App Service...]]></description>
      <content:encoded><![CDATA[こんにちは。Azure サポートの板垣です。

Azure App Service では、組み込みの認証/承認機能がサポートされています。
<p style="padding-left: 30px"><a href="https://docs.microsoft.com/ja-jp/azure/app-service/app-service-authentication-overview">Azure App Service での認証および承認</a></p>
この機能は、Azure Functions でも利用することができ、HTTP トリガーで起動する Function に、任意の認証プロバイダーによる認証機能を付加することができます。
これにより、認証されたクライアントのみを Function にアクセスできるようにさせることができます。
今回は、認証プロバイダーとして Azure Active Directory を利用する場合の手順をご紹介します。<span style="color: #808080"></span>

&nbsp;

<hr />

<h2><span style="text-decoration: underline">概要</span></h2>
認証/承認機能が有効化された Function App にアクセスするためには、認証プロバイダーから取得した認証トークンを Function App に提示します。
このため、Function App へのアクセス前に、認証プロバイダーから認証トークンを取得する必要があります。
以下より、認証トークンを取得するための構成と、認証トークンの取得、使用方法を記載します。

&nbsp;
<h2><span style="text-decoration: underline">Function App で認証/承認を構成する</span></h2>
Function App を作成し、プラットフォーム機能の [認証/承認] をクリックします。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/14.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/14.png" alt="" width="500" height="333" class="alignnone wp-image-2525" /></a>

&nbsp;

App Service 認証をオンにして "Azure Active Directory でのログイン" を選択し、認証プロバイダーとして Azure Active Directory を選択します。
管理モードを "簡易" とし、新しい AD アプリを作成します。
<h2><a href="https://msdnshared.blob.core.windows.net/media/2018/09/24.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/24.png" alt="" width="791" height="343" class="alignnone wp-image-2495" /></a></h2>
&nbsp;

作成完了後、管理モードを "詳細" に切り替えると、作成された AD アプリの詳細を参照することができます。
ここで、"クライアント ID" はこの AD アプリのリソースを表す ID となります。この ID を控えておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/31.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/31.png" alt="" width="456" height="423" class="alignnone wp-image-2475" /></a>

&nbsp;

[関数の URL の取得] をクリックして、実行したい Function の URL を控えておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/8.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/8.png" alt="" width="517" height="207" class="alignnone wp-image-2575" /></a>
<div style="background-color: #efefef;border-color: #efefef;color: #000000;border: 1px solid transparent">なお、HTTP トリガーで起動する Function は、既定では要求を承認するために API キーを必要とします(上図の code 値)。
この設定は function.json で変更可能であり、authLevel プロパティを anonymous に設定すると、API キー無しでアクセス可能になります。
API キーによる承認は Function ごとであるのに対して、本稿でご案内している Azure AD トークンによる承認は Function App 全体に対して適用されるという違いがあります。セキュリティ要件にあわせてそれぞれご利用ください。
<p style="padding-left: 30px"><a href="https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-http-webhook#trigger---configuration">Azure Functions における HTTP と Webhook のバインド - トリガー - 構成</a></p>

</div>
&nbsp;

&nbsp;
<h2><span style="text-decoration: underline">Azure Active Directory にアプリケーションを登録する</span></h2>
Function にアクセスするクライアント アプリケーションの定義を Azure AD に登録します。
Azure AD アプリケーションは、Azure AD を利用するアプリケーションの定義です。Azure AD アプリケーションを登録することで、アプリケーションに対してトークンを発行する方法を定義します。

&nbsp;

Azure AD テナントで、[アプリの登録] - [新しいアプリケーションの登録] をクリックします。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/51.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/51.png" alt="" width="535" height="342" class="alignnone size-full wp-image-2535" /></a>

&nbsp;

&nbsp;

<span style="text-decoration: underline">以下、ネイティブ アプリケーション、Web アプリ/API のそれぞれを登録した場合について記載します。</span>
<span style="color: #ff0000"># 2018/09/19 アクセス許可の設定を追記しました。</span>
&nbsp;
&nbsp;
<h3>ネイティブ アプリケーション</h3>
ネイティブ アプリケーションでは、クライアントに配布されるようなアプリケーションが想定されます。トークンを取得するために、基本的にユーザーが対話形式でサインインして、資格情報を提供します。

&nbsp;

アプリケーションの種類を "ネイティブ" とします。リダイレクト URI は物理的に存在するものである必要はありませんが、アプリケーションに固有の値を設定しておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/42.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/42.png" alt="" width="305" height="271" class="alignnone size-full wp-image-2545" /></a>

次に、アクセス許可の設定を追加します。この設定により、このアプリケーションで発行されるトークンが、Function App に対するアクセス許可を持つことを定義します。

[必要なアクセス許可] で [追加] をクリックします。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/121.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/121.png" alt="" width="590" height="329" class="alignnone  wp-image-2655" /></a>

&nbsp;

API として、Function App で簡易作成した Azure AD アプリケーションを指定します。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/131.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/131.png" alt="" width="581" height="167" class="alignnone  wp-image-2665" /></a>

その Azure AD アプリケーションへのアクセスを許可するように設定し、完了します。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/141.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/141.png" alt="" width="590" height="160" class="alignnone  wp-image-2695" /></a>

&nbsp;

最後に、登録したアプリケーションのアプリケーション  ID を控えておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/6.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/6.png" alt="" width="571" height="251" class="alignnone size-full wp-image-2555" /></a>
&nbsp;
&nbsp;
<h3>Web アプリ/API アプリケーション</h3>
Web アプリ/API アプリケーションでは、サーバーでホストされるようなアプリケーションが想定されます。アプリケーション コードがユーザーからは機密となるため、トークンを取得するために、シークレット キーを使用して資格情報を提供することができます。

&nbsp;

アプリケーションの種類を "Web アプリ/API" とします。サインオン URL は物理的に存在するものである必要はありませんが、アプリケーションに固有の値を設定しておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/9.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/9.png" alt="" width="301" height="260" class="alignnone size-full wp-image-2585" /></a>

次に、ネイティブ アプリケーションと同様に、アクセス許可の設定を追加します。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/151.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/151.png" alt="" width="578" height="170" class="alignnone  wp-image-2705" /></a>

&nbsp;


キーを生成します。"説明" と "有効期限" を設定後、[保存] をクリックすると、キー値が表示されます。
キー値が表示されるのは保存後のみですので、このタイミングで必ずキー値を控えておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/112.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/112.png" alt="" width="969" height="406" class="alignnone size-full wp-image-2605" /></a>

&nbsp;
最後に、登録したアプリケーションのアプリケーション  ID を控えておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/10.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/10.png" alt="" width="572" height="232" class="alignnone size-full wp-image-2595" /></a>

&nbsp;

&nbsp;

&nbsp;

以上で Azure AD アプリケーションの登録は完了です。最後に、Azure AD テナントのプロパティからディレクトリ ID を控えておきます。

<a href="https://msdnshared.blob.core.windows.net/media/2018/09/71.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/09/71.png" alt="" width="872" height="89" class="alignnone size-full wp-image-2625" /></a>

&nbsp;

&nbsp;
<h2><span style="text-decoration: underline">クライアント アプリケーションを実装する</span></h2>
以下は、PowerShell スクリプトと C# アプリケーションで、 Function を実行する場合のサンプルです。

Azure AD からトークンを取得するために <a href="https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory">ADAL.NET</a> を使用していますので、適宜ダウンロードしてください。

<span style="color: #ff0000"># 2018/09/19 コードを一部修正しました。</span>
<h3>ネイティブ アプリケーション</h3>
<div style="background-color: #ebebf6;border-color: #a9e2f3;color: #0b0b61;border: 1px solid transparent">

[PowerShell]
[powershell]
### ADAL.NET をロード ###
$adal = &quot;C:\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll&quot;
[System.Reflection.Assembly]::LoadFrom($adal)


### Azure AD テナントの設定 ###
# Azure AD テナントのディレクトリ ID
$adId = &quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot;

# トークン発行元
$authority = &quot;https://login.microsoftonline.com/$adId&quot;


### Function App で作成した AD アプリ ###
# クライアント ID
$resourceApplicationId = &quot;11f15836-8e45-4fb9-b9f8-b66611b21f8b&quot;


### クライアント用に作成した AD アプリ ###
# アプリケーション ID
$clientApplicationId = &quot;dbcb7ba3-c667-4323-a310-a5e834b32675&quot;

# リダイレクト URI
$redirectUri = &quot;https://jpciesample/MyNativeApp&quot;


### トークン生成 ###
# ADAL の AuthenticationContext オブジェクト
$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext -ArgumentList $authority

# トークン要求 (資格情報がキャッシュされていない場合、資格情報プロンプトが起動します)
$platformParameters = New-Object &quot;Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformParameters&quot; -ArgumentList &quot;Auto&quot;
$authResult = $authContext.AcquireTokenAsync($resourceApplicationId, $clientApplicationId, $redirectUri, $platformParameters)

# Bearer トークン
$bearerToken = $authResult.Result.CreateAuthorizationHeader()


### Function の呼び出し###
# Function の URL
$functionUri = &quot;https://jpcieauthtest.azurewebsites.net/api/HttpTriggerCSharp1?code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;

# 要求 Body
$body=&quot;{'name': 'Azure'}&quot;

# HTTP 要求ヘッダの Authorization ヘッダに Bearerトークンを設定
$requestHeader = @{
    &quot;Authorization&quot; = $bearerToken
}

# HTTPS のセキュリティ プロトコルを TLS 1.2 に設定
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

# Function に HTTP 要求を送信
try{
    $response = Invoke-RestMethod -Uri $functionUri -Method Post -Headers $requestHeader -Body $body -ContentType &quot;application/json&quot;
    echo $response
}catch{
    Write-Error($_.Exception);
}
[/powershell]

</div>
<strong></strong>
<div style="background-color: #ebebf6;border-color: #a9e2f3;color: #0b0b61;border: 1px solid transparent">

[C#]

[csharp]
/* Azure AD テナントの設定 */
// Azure AD テナントのディレクトリ ID
string adId = &quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot;;

// トークン発行元
string authority = &quot;https://login.microsoftonline.com/&quot; + adId;


/* Function App で作成した AD アプリ */
// クライアント ID
string resourceApplicationId = &quot;11f15836-8e45-4fb9-b9f8-b66611b21f8b&quot;;


/* クライアント用に作成した AD アプリ */
// アプリケーション ID
string clientApplicationId = &quot;dbcb7ba3-c667-4323-a310-a5e834b32675&quot;;

// リダイレクト URI
string redirectUri = &quot;https://jpciesample/MyNativeApp&quot;;


/* トークン生成 */
// ADAL の AuthenticationContext オブジェクト
AuthenticationContext authContext = new AuthenticationContext(authority);

// トークン要求 (資格情報がキャッシュされていない場合、資格情報プロンプトが起動します)
var authResult = authContext.AcquireTokenAsync(resourceApplicationId, clientApplicationId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Auto, null));

// Bearer トークン
string bearerToken = authResult.Result.CreateAuthorizationHeader();


/* Function の呼び出し */
// Function の URL
string functionUri = &quot;https://jpcieauthtest.azurewebsites.net/api/HttpTriggerCSharp1?code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;;

// 要求 Body
string bodydata = &quot;{\&quot;name\&quot;: \&quot;Azure\&quot;}&quot;;

// Function に HTTP 要求を送信
HttpWebRequest request = WebRequest.Create(functionUri) as HttpWebRequest;
request.Method = &quot;POST&quot;;
request.Headers[&quot;Authorization&quot;] = bearerToken;
request.ContentType = &quot;application/json&quot;;

Stream reqstr = request.GetRequestStream();
reqstr.Write(Encoding.ASCII.GetBytes(bodydata), 0, bodydata.Length);
reqstr.Close();

HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream resstr = response.GetResponseStream();
StreamReader sr = new StreamReader(resstr);
string resresult = sr.ReadToEnd();

Console.WriteLine(resresult);
[/csharp]

</div>
&nbsp;

&nbsp;
<h3>Web アプリ/API アプリケーション</h3>
<div style="background-color: #ebebf6;border-color: #a9e2f3;color: #0b0b61;border: 1px solid transparent">

[PowerShell]
[powershell]
### ADAL.NET をロード ###
$adal = &quot;C:\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll&quot;
[System.Reflection.Assembly]::LoadFrom($adal)


### Azure AD テナントの設定 ###
# Azure AD テナントのディレクトリ ID
$adId = &quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot;

# トークン発行元
$authority = &quot;https://login.microsoftonline.com/$adId&quot;


### Function App で作成した AD アプリ ###
# クライアント ID
$resourceApplicationId = &quot;11f15836-8e45-4fb9-b9f8-b66611b21f8b&quot;


### クライアント用に作成した AD アプリ ###
# アプリケーション ID
$clientApplicationId = &quot;3cd3551e-fc68-4510-b236-64c207b353fb&quot;

# リダイレクト URI
$redirectUri = &quot;https://jpciesample/MyNativeApp&quot;

# シークレット キー
$secretKey = &quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;


### トークン生成 ###
# ADAL の AuthenticationContext オブジェクト
$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext -ArgumentList $authority

# クライアント資格情報
$clientCredential = New-Object -TypeName Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential ($clientApplicationId, $secretKey)

# トークン要求
$authResult = $authContext.AcquireTokenAsync($resourceApplicationId, $clientCredential)

# Bearer トークン
$bearerToken = $authResult.Result.CreateAuthorizationHeader()


### Function の呼び出し###
# Function の URL
$functionUri = &quot;https://jpcieauthtest.azurewebsites.net/api/HttpTriggerCSharp1?code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;

# 要求 Body
$body=&quot;{'name': 'Azure'}&quot;

# HTTP 要求ヘッダの Authorization ヘッダに Bearerトークンを設定
$requestHeader = @{
    &quot;Authorization&quot; = $bearerToken
}

# HTTPS のセキュリティ プロトコルを TLS 1.2 に設定
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

# Function に HTTP 要求を送信
try{
    $response = Invoke-RestMethod -Uri $functionUri -Method Post -Headers $requestHeader -Body $body -ContentType &quot;application/json&quot;
    echo $response
}catch{
    Write-Error($_.Exception);
}
[/powershell]

</div>
<strong></strong>
<div style="background-color: #ebebf6;border-color: #a9e2f3;color: #0b0b61;border: 1px solid transparent">

[C#]

[csharp]
/* Azure AD テナントの設定 */
// Azure AD テナントのディレクトリ ID
string adId = &quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot;;

// トークン発行元
string authority = &quot;https://login.microsoftonline.com/&quot; + adId;


/* Function App で作成した AD アプリ */
// クライアント ID
string resourceApplicationId = &quot;11f15836-8e45-4fb9-b9f8-b66611b21f8b&quot;;


/* クライアント用に作成した AD アプリ */
// アプリケーション ID
string clientApplicationId = &quot;3cd3551e-fc68-4510-b236-64c207b353fb&quot;;

// シークレット キー
string secretKey = &quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;;


/* トークン生成 */
// ADAL の AuthenticationContext オブジェクト
AuthenticationContext authContext = new AuthenticationContext(authority);

// クライアント資格情報
var clientCredential = new ClientCredential(clientApplicationId, secretKey);

// トークン要求
var authResult = authContext.AcquireTokenAsync(resourceApplicationId, clientCredential);

// Bearer トークン
string bearerToken = authResult.Result.CreateAuthorizationHeader();


/* Function の呼び出し */
// Function の URL
string functionUri = &quot;https://jpcieauthtest.azurewebsites.net/api/HttpTriggerCSharp1?code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;;

// 要求 Body
string bodydata = &quot;{\&quot;name\&quot;: \&quot;Azure\&quot;}&quot;;

// Function に HTTP 要求を送信
HttpWebRequest request = WebRequest.Create(functionUri) as HttpWebRequest;
request.Method = &quot;POST&quot;;
request.Headers[&quot;Authorization&quot;] = bearerToken;
request.ContentType = &quot;application/json&quot;;

Stream reqstr = request.GetRequestStream();
reqstr.Write(Encoding.ASCII.GetBytes(bodydata), 0, bodydata.Length);
reqstr.Close();

HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream resstr = response.GetResponseStream();
StreamReader sr = new StreamReader(resstr);
string resresult = sr.ReadToEnd();

Console.WriteLine(resresult);
[/csharp]

</div>

<hr />



<hr />

今回は、Azure Functions を例としてご案内しましたが、同じ方法で Azure Web Apps、Azure API Apps で公開する API に対して認証/承認アクセスを行うこともできます。
実行する API をパブリック アクセスから制限したいような場合に、有効なソリューションとなりますので、ご参考ください。]]></content:encoded>
    </item>
    <item>
      <title>Azure Web Apps / Azure Functions で利用可能なネットワーク関連のツール</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-web-apps-azure-functions-%E3%81%A7%E5%88%A9%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E9%96%A2%E9%80%A3%E3%81%AE%E3%83%84%E3%83%BC%E3%83%AB</link>
      <pubDate>Wed, 29 Aug 2018 19:41:29 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2185</guid>
      <description><![CDATA[こんにちは。Azure PaaS Developer サポートの村山です。

海外のブログではすでに紹介されているのですが、Azure Web Apps や Azure Functions...]]></description>
      <content:encoded><![CDATA[こんにちは。Azure PaaS Developer サポートの村山です。

<span><a href="https://blogs.msdn.microsoft.com/waws/2017/07/24/networking-related-commands-for-azure-app-services/">海外のブログ</a>ではすでに紹介されているのですが、Azure Web Apps や Azure Functions で、SQL Database など別サービスのエンドポイントと疎通確認をするときや、VNET 統合を利用して仮想ネットワークと接続後、仮想ネットワーク内のリソースとの接続を確認をする場合によく使うコマンドなどを紹介します。 </span>

&nbsp;
<h2><span>Azure Web Apps / Azure Functions で Ping は利用できない </span></h2>

<hr />

<span>最初に Azure Web Apps や Azure Functions 上では、Ping の実行が許可されていません。</span>

<span>また、Azure Load Balancer は、ICMP プロトコルの通過を許可していないので、Azure  Web Apps / Azure Functions への Ping もできません。 </span>

<span>なお、ping がタイムアウトする話の詳細は<a href="https://blogs.msdn.microsoft.com/mast/2014/06/22/use-port-pings-instead-of-icmp-to-test-azure-vm-connectivity/">こちらのブログ</a>に書かれています。 </span>

<span>このため、Azure  ポータル上から Web Apps を選択後、[コンソール] などで</span> Ping を実行しようとすると画像のようにエラーが発生します。

Kudu のコンソール (<a href="https://yourwebapp.scm.azurewebsites.net/DebugConsole">https://yourwebapp.scm.azurewebsites.net/DebugConsole</a>) 上で実行した場合も結果は同様です。

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/110.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/110.png" alt="" width="723" height="323" class="alignnone size-full wp-image-2355" /></a>

&nbsp;

<span>では、どうすればよいでしょうか？ <strong>tcpping</strong> と呼ばれるツールがあるのでこちらを利用しましょう。</span>

&nbsp;
<h2>tcpping を実行する</h2>

<hr />

<span>tcpping を </span><span>コンソール上で実行するとこんな感じになります。 </span>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/28.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/28.png" alt="" width="749" height="313" class="alignnone size-full wp-image-2365" /></a>

&nbsp;

Web Apps でエンドポイントへの接続確認をする場合は、Ping の代わりに tcpping を利用してください。

&nbsp;

例えば<span>、Web Apps から Azure SQL Database を利用する際の接続確認として利用されます。</span>SQL Database へ接続する場合は、ポート 1433 を指定してください。

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/36.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/38.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/38.png" alt="" width="752" height="322" class="alignnone size-full wp-image-2405" /></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/36.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/36.png"></a>

&nbsp;

<span>また、Azure Web Apps では VNET 統合と呼ばれる機能を利用することで、仮想ネットワーク内に配置されている VM に接続できるようになります。</span>

VNET 統合の設定後、Web Apps から仮想マシンのプライベート IP に接続できているかどうか確認する場合は、<span>tcpping が役に立ちます。</span>

なお、仮想ネットワーク内の VM に対して tcpping を実行する際は、<span style="color: #ff0000">仮想マシン側で開放しているポート</span>を指定してください。

下記画像は、仮想ネットワーク内に配置した VM に割り当てられたプライベート IP に対して tcpping で接続確認をしている例になります。

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/54.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/55.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/55.png" alt="" width="750" height="312" class="alignnone size-full wp-image-2395" /></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/54.png"></a>

&nbsp;

<span>※ VNET 統合を利用することで、Web Apps から仮想マシンへは接続できますが、仮想マシンから Web Apps へのプライベートな接続はできません。費用が高額になりますが、ILB ASE と呼ばれるサービスを使ってください。 </span>

<span>VNET 統合の機能の紹介は<a href="https://docs.microsoft.com/ja-jp/azure/app-service/web-sites-integrate-with-vnet">こちらのドキュメント</a>になります。 また、弊</span><span>ブログの<a href="https://blogs.msdn.microsoft.com/jpcie/?p=1677">こちらの記事</a>で ASE (App Service Environment)の紹介もしています。</span>

&nbsp;
<h2><span>nameresolver を利用する </span></h2>

<hr />

<span>VNET 統合後や、ASE 利用時に、仮想ネットワーク側で自前の DNS を指定している場合、その DNS できちんと名前解決ができるか確認するコマンドとして nameresolver が利用可能です。</span>

<span>nameresolver では VNET 側で構成した DNS サーバーを指定可能です。 </span><span></span><span>こちらはサンプルとして DNS を指定せずに nameresolver を利用した結果です。 </span>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/48.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/48.png" alt="" width="674" height="312" class="alignnone size-full wp-image-2385" /></a>

&nbsp;
<h2><span>Network Traceも収集できる </span></h2>

<hr />

<span>App Service の通信に関しては、[問題の診断と解決] から Network Trace を利用することでパケットをキャプチャできるようになりました。(Basic プラン以上)</span>

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/network.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/network.png" alt="" width="1144" height="528" class="alignnone size-full wp-image-2285" /></a>

&nbsp;

<span>収集したトレースは<a href="https://www.microsoft.com/en-in/download/details.aspx?id=4865"> Network Monitor</a> や、<a href="https://www.wireshark.org/">Wireshark</a> 、<a href="https://www.microsoft.com/en-us/download/details.aspx?id=44226">Message Analyzer</a> を使って解析が可能です。</span><span>なお HTTPS などの TLS/SSL での通信は暗号化されますのでご注意ください。</span>

<span>※ VNET 統合を設定している App Service Plan や、従量課金プランの Azure Functions ではこの機能は利用できません。</span>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/network2.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/network2.png" alt="" width="1490" height="549" class="alignnone size-full wp-image-2295" /></a>

&nbsp;

&nbsp;

"Collect Network Trace" を押下して Network Trace を収集します。

&nbsp;

&nbsp;
<h2>TCP Connections からコネクションの状況を確認することもできる</h2>

<hr />

[問題の診断と解決] ブレードにある、"TCP Connections" では、自分の Web App の TCP コネクションの状況も確認することができます。

接続数の増減や、TIME_WAIT が発生しているかどうかなど、1 か月前までさかのぼって確認できます。

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/network3.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/network3.png" alt="" width="1407" height="727" class="alignnone size-full wp-image-2305" /></a>
<h2></h2>
<h2>おまけ</h2>

<hr />

<strong>curl</strong> コマンドも利用することが可能です。オプションをつける際は Kudu 上でしかうまく動作しなかったので、画像では、Kudu 上で実行しています。

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/curl1.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/08/curl1.png" alt="" width="1041" height="829" class="alignnone size-full wp-image-2435" /></a>
<h2></h2>
<h2><span>まとめ </span></h2>

<hr />

Azure Web Apps / Azure Functions 上で実行可能なコマンドを紹介しました。

次回は、VNET 統合設定時のトラブルを例にとって実際にどのように利用するのかご紹介しようと思います。

&nbsp;

<span style="color: #ff0000">※ 記事の内容は予告なく変更される可能性がございます。</span>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure Web App for Containers をご利用のお客様へのお知らせ (Docker Hub のメンテナンスについて)</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-web-app-for-containers-%E3%82%92%E3%81%94%E5%88%A9%E7%94%A8%E3%81%AE%E3%81%8A%E5%AE%A2%E6%A7%98%E3%81%B8%E3%81%AE%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B-docker-hub-%E3%81%AE%E3%83%A1%E3%83%B3</link>
      <pubDate>Tue, 21 Aug 2018 20:45:44 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2135</guid>
      <description><![CDATA[Azure Web App for Containers のカスタム Docker イメージ ソースとして Docker Hub...]]></description>
      <content:encoded><![CDATA[Azure Web App for Containers のカスタム Docker イメージ ソースとして Docker Hub をご利用のお客様につきまして、サービス稼働に影響のある情報がありますので、お知らせします。
<p style="padding-left: 30px"><span style="color: #808080">※本投稿は、<a href="https://aka.ms/dockerhub">https://aka.ms/dockerhub</a> に投稿された内容を補足する内容になっています。</span></p>
&nbsp;

<hr />

先日 Docker 社より、2018 年 8 月 25 日 11:00 AM (PST) から、Docker 各サービスについて 15 分から 45 分のアップグレード作業が実施されることがアナウンスされました。以下、アナウンス情報をご確認ください。
<p style="padding-left: 30px"><a href="https://success.docker.com/article/planned-downtime-on-hub-cloud-store">Planned Downtime on Docker Hub, Docker Cloud, and Docker Store on August 25th, 2018</a></p>
&nbsp;

このアップグレード作業の実施中には、Docker Hub について、Docker イメージの Push および Docker イメージの Pull ができなくなるとのことです。したがいまして、日本時間の 8 月 26 日 (日) 4:00 AM から、一時的に Docker Hub からの Docker イメージの Pull ができない状態になる可能性があります。

Azure Web App for Containers では、アプリケーションをホストするインスタンスの初期化処理において、Docker イメージを Pull し、Docker コンテナを起動します。このため、Docker イメージを Pull できない場合、インスタンスの初期化に失敗します。
そして、インスタンスの初期化に失敗したインスタンスに対して要求が転送されることで、HTTP エラーが応答される動作となる場合があります。
<div style="background-color: #fcf8e3;border-color: #faebcc;color: #8a6d3b;border: 1px solid transparent">なお、本件は Web App for Containers でカスタム Docker イメージを利用している場合が対象となります。App Service on Linux で組み込みのランタイム スタックを利用している場合には、Docker Hub へのアクセスは発生しませんので、本件による影響はありません。</div>
&nbsp;

&nbsp;

以上の理由により、Azure Web App for Containers のカスタム Docker イメージ ソースとして Docker Hub を設定している場合、Docker Hub 側でのアップグレード作業実施中に、Web App 側で以下のような動作が発生すると、サービス稼働に影響が及ぶ可能性があります。
<ul>
 	<li>Web App の再起動</li>
</ul>
<p style="padding-left: 60px">Web App の再起動により、Docker イメージの再展開が行われるため、影響を受ける場合があります。これには、手動による再起動の他、Azure プラットフォーム側でサービス品質の低下を検知したことによる自動再起動も含まれます。
この場合、再起動が行われたインスタンスが影響を受けることになります。</p>

<ul>
 	<li>インスタンスのスケール アップ</li>
</ul>
<p style="padding-left: 60px">インスタンス サイズを変更することにより、新規サイズのインスタンスへの Docker イメージの展開が行われるため、影響を受ける場合があります。
この場合、全インスタンスが影響を受けることになります。</p>

<ul>
 	<li>インスタンスのスケール アウト</li>
</ul>
<p style="padding-left: 60px">インスタンス数を増加させることにより、新規インスタンスへの Docker イメージの展開が行われるため、影響を受ける場合があります。
この場合、増加分のインスタンスが影響を受けることになります。</p>
&nbsp;

&nbsp;

現時点では、Azure Web App for Containers では、Docker Hub にアクセスできないという状況についての対策方法がございません。
このため、上記のような問題を回避するために、現状では、<a href="https://azure.microsoft.com/ja-jp/services/container-registry/">Azure Container Registry</a> あるいはその他のプライベート レジストリを利用するということが対策案となります。
該当の時間帯に影響を受ける可能性のあるアプリケーションをホストしている場合、前述のような動作が発生した場合にサービス稼働に影響が及ぶ可能性がありますので、何卒対応をご検討ください。]]></content:encoded>
    </item>
    <item>
      <title>Azure サポート エンジニア募集中！</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88-%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E5%8B%9F%E9%9B%86%E4%B8%AD%EF%BC%81</link>
      <pubDate>Wed, 30 May 2018 11:58:22 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2125</guid>
      <description><![CDATA[日本マイクロソフトの Azure サポートでは、Azure のお客様を日々支えるサポート エンジニアを募集しています！

未曾有の成長・変革のまっただ中であるパブリック...]]></description>
      <content:encoded><![CDATA[日本マイクロソフトの<span> Azure </span>サポートでは、<span>Azure </span>のお客様を日々支えるサポート エンジニアを募集しています！

未曾有の成長・変革のまっただ中であるパブリック クラウドに携わる刺激的な毎日になります。お客様を支えるという最も大事な業務を通じて、<span>Azure </span>の未来を一緒に作り上げていきませんか。

&nbsp;

また、マイクロソフトのサポートエンジニアのお仕事内容について、なかなか外からではわかりにくいところもありますし、コールセンターのようなイメージを持たれる方もよくいらっしゃいます。

そんな疑問にお答えするために、詳しいお仕事の内容を説明会でご紹介いたします。説明会にご参加いただければ、マイクロソフトのサポートエンジニアのイメージが大きく変わると思います。

さらに、現場のエンジニアと直接話ができるキャリア相談会も同時に開催いたしますので、マイクロソフトや<span>Azure</span>に興味がある方はぜひご参加ください。

&nbsp;

参加希望の方は、下記リンクよりお申し込みください。

&nbsp;

【<span>6/13(</span>水<span>)&amp;6/23(</span>土<span>)</span>開催！エンジニア向け<span>Azure</span>説明会<span>&amp;1Day</span>選考会】<span> Support Engineer- Azure team</span>

<a href="https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7DJYxPXmhFBj1KAJfGnkL5URUpKRlFNQjBIWENUOUpRQjBYUkJRSkYwTi4u">https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7DJYxPXmhFBj1KAJfGnkL5URUpKRlFNQjBIWENUOUpRQjBYUkJRSkYwTi4u</a>

&nbsp;

&nbsp;

&lt;募集中の職種<span>&gt;</span>

・<span>Support Engineer Azure IaaS Platform / Networking : <a href="https://aka.ms/Guosrk">https://aka.ms/Guosrk</a></span>

・<span>Support Engineer Azure PaaS : <a href="https://aka.ms/Ljd5lx">https://aka.ms/Ljd5lx</a></span>

・<span>Support Engineer Azure Stack : <a href="https://aka.ms/Ht6tvq">https://aka.ms/Ht6tvq</a></span>

&nbsp;

レバテック社様の「スキルアップ記事」においても、今回対象のポジションについてご紹介いただいております！興味のある方はぜひご一読ください。

<a href="https://career.levtech.jp/guide/knowhow/article/416/">https://career.levtech.jp/guide/knowhow/article/416/</a>

&nbsp;

&nbsp;

<strong>サポート エンジニア直伝<span> FAQ</span></strong>

&nbsp;
<ol>
 	<li><strong> </strong><strong>英語は必須ですか？</strong></li>
</ol>
&nbsp;

技術文書のリーディングと、海外エンジニアとの連携にあたってのライティングが必須となります。会話力は日本のお客様対応にあたっては必須ではありませんが、入社後も英語を前向きに学んでいけることが重要です。

&nbsp;

日々の業務では、日本のお客様に応対することとなります。

かたや、<span>Azure </span>データセンター開発部門との連携、世界中のエンジニア間のディスカッションにおいては、英語を使う機会が無数にあります。このような機会を自分のものにし、お客様への対応に活かしていくための勉強は欠かせません。

&nbsp;

&nbsp;
<ol>
 	<li><strong> </strong><strong>マイクロソフト製品の知識は必須ですか？</strong></li>
</ol>
&nbsp;

マイクロソフト製品の知識は必須ではありません。何らかの技術的なバックグラウンドに自信がある方は大歓迎です。

&nbsp;

マイクロソフトはオープン ソース テクノロジにも大きく舵を切っており、多くの製品が<span> Linux </span>でも動作しています。

これまでの<span> Windows </span>をはじめとするマイクロソフト製品だけでなく、<span>Linux </span>などのオープンソースに携わる技術者や、<span>Web </span>やインフラ系のデベロッパー、ネットワーク系のエキスパートに至るまで様々なテクノロジーのバックグラウンドが活躍できます。

&nbsp;

Azure では<span> 100 </span>を超えるサービスが存在し、もはや一人のエンジニアが全てを知るということは不可能です。

様々な技術的・文化的バックグラウンドを持つエンジニアが集い、お互いを尊敬しあい、相談をしながらひとつの問題を解決していくというチームワークが求められます。

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure App Service の VNET 統合とサービス エンドポイント</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-app-service-%E3%81%AE-vnet-%E7%B5%B1%E5%90%88%E3%81%A8%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9-%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88</link>
      <pubDate>Thu, 19 Apr 2018 17:00:50 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2055</guid>
      <description><![CDATA[こんにちは。Azure Dev サポートの村山です。
&nbsp;
今日は App Service の VNET 統合とサービス...]]></description>
      <content:encoded><![CDATA[<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt">こんにちは。Azure Dev サポートの村山です。</p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt">今日は App Service の VNET 統合とサービス エンドポイントの連携についてお話します。</p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">仮想ネットワークの</span><a href="https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoints-overview"><span lang="ja">サービス</span><span lang="en-US"> </span><span lang="ja">エンドポイント</span></a><span lang="ja">と呼ばれる機能を利用すると、</span><span lang="en-US"> </span><span lang="ja">Azure SQL Database</span><span lang="en-US"> </span><span lang="ja">や、Azure Storage Account へのアクセスを仮想ネットワーク内からのみに限定することが可能です。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">最近この機能と、Azure App Service の</span><span lang="en-US"> </span><span lang="ja">VNET</span><span lang="en-US"> </span><span lang="ja">統合の機能を組み合わせて、Azure App Service から仮想ネットワーク経由で、Azure SQL Database や、Azure Storage Account へアクセスできるかというお問い合わせをいただきます。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span style="font-weight: bold" lang="ja">残念ですが、Azure App Service と</span><span style="font-weight: bold" lang="en-US"> </span><span style="font-weight: bold" lang="ja">VNET</span><span style="font-weight: bold" lang="en-US"> </span><span style="font-weight: bold" lang="ja">統合の機能を組み合わせて、プライベートに</span><span style="font-weight: bold" lang="en-US"> Azure </span><span style="font-weight: bold" lang="ja">SQL Database や Azure</span><span style="font-weight: bold" lang="en-US"> </span><span style="font-weight: bold" lang="ja">Storage Account へ接続することはできません。</span></p>
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">※</span><span lang="en-US"> Web Apps だけではなく、App Service Plan 上にホストされた</span><span lang="ja">Function App</span><span lang="en-US"> </span><span lang="ja">や、API App</span><span lang="en-US"> </span><span lang="ja">の場合も同様です。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">一方、</span><a href="https://docs.microsoft.com/ja-jp/azure/app-service/environment/intro"><span lang="ja">App Service</span><span lang="en-US"> </span><span lang="ja">Environment </span></a><span lang="en-US">(</span><span lang="ja">以下</span><span lang="en-US"> </span><span lang="ja">ASE</span><span lang="en-US">) </span><span lang="ja">であれば、サービス</span><span lang="en-US"> </span><span lang="ja">エンドポイントが有効化された <span lang="en-US">Azure </span></span><span lang="en-US"> </span><span lang="ja">SQL Database や、<span lang="en-US">Azure </span>Storage Account へアクセスすることができます。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt">下記画像は、Azure SQL Database でサービスエンドポイントを有効化した例になります。</p>
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">ASE </span><span lang="ja">に関しては、</span><a href="https://blogs.msdn.microsoft.com/jpcie/?p=1677"><span lang="ja">以前の記事</span></a><span lang="ja">で紹介しておりますので、こちらもご覧ください。</span></p>
&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/04/92.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/04/92.png" alt="" width="871" height="472" class="alignnone size-full wp-image-2085" /></a>

&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">なお、ASE </span><span lang="ja">とオンプレミスのネットワーク間で</span><span lang="en-US"> </span><span lang="ja">VPN</span><span lang="en-US"> </span><span lang="ja">や</span><span lang="en-US"> </span><span lang="ja">ExpressRoute</span><span lang="en-US"> </span><span lang="ja">を利用している場合、インターネットへ向かうトラフィックを</span><span lang="en-US"> </span><span lang="ja">VPN</span><span lang="en-US"> </span><span lang="ja">や仮想アプライアンスにリダイレクトさせて、</span><span lang="ja"></span><span lang="en-US"> "</span><span lang="ja">強制トンネリング</span><span lang="en-US">" </span><span lang="ja">と呼ばれる構成を取るお客様もいらっしゃいます。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">そのシナリオの場合は、</span><a href="https://docs.microsoft.com/ja-jp/azure/app-service/environment/forced-tunnel-support#configure-your-ase-with-service-endpoints"><span lang="ja">こちらのドキュメント</span></a><span lang="ja">にてサービスエンドポイントを設定する方法が紹介されています。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja">セキュリティ要件が厳しい案件の場合には、ASE</span><span lang="ja"> の利用をご検討ください。</span></p>
&nbsp;
<p style="margin: 0in;font-family: 游ゴシック;font-size: 11.0pt"><span lang="ja" style="color: #ff0000">※ 記事の内容は予告なく変更される場合がございますのでご了承ください。</span></p>
&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>HTTP/2 が Azure App Service でサポートされます</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/http2-%E3%81%8C-azure-app-service-%E3%81%A7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99</link>
      <pubDate>Tue, 17 Apr 2018 12:11:42 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=2025</guid>
      <description><![CDATA[このポストは、2018 年 4 月 13 日に投稿された Announcing HTTP/2 support in Azure App...]]></description>
      <content:encoded><![CDATA[<span>このポストは、2018 年 4 月 13 日に投稿された <a href="https://blogs.msdn.microsoft.com/appserviceteam/2018/04/13/announcing-http2-support-in-azure-app-service/">Announcing HTTP/2 support in Azure App Service</a> </span><span>の翻訳です。</span>

&nbsp;

Azure App Service チームは、<span>App Service</span>でホストされているすべてのアプリケーションの<span>HTTP/2 </span>プロトコルのサポートのグローバル展開を発表します。<span> HTTP/2 </span>は<a href="https://feedback.azure.com/forums/169385-web-apps/suggestions/9552936-enable-http-2-on-azure-web-apps">最も多かったカスタマー リクエスト</a>であり、私たちはサポートを提供することに興奮しています！

&nbsp;
<h2><strong>HTTP/2とは何ですか？</strong></h2>
HTTP/2は、<span>TCP </span>の接続で <span>HTTP </span>セマンティクス フローを再検討したものであり、現在 <span>Windows 10 </span>と<span> Windows Server 2016 </span>でサポートされています。<span>HTTP/2 </span>は、<span>20</span>年近く使用された<span> HTTP / 1.1 </span>のメジャーアップグレードであり、<span> Web</span>サーバ上の待ち時間と接続負荷を軽減します。

&nbsp;

HTTP/1.1 の主な利点は、並行して複数の要求を連続して処理するために、複数の接続を使用することでした。<span> HTTP/2 </span>では、永続的な一つの接続を使用して複数の要求を同時に処理できます。 このプロセスでは、<span>HTTP/2 </span>には、ネットワーク上の<span> HTTP </span>の効率を向上させるいくつかの追加機能が導入されています。
<h2></h2>
<h2><strong>複数のリクエストに対する 1 つの接続</strong></h2>
すべての<span> TCP </span>接続は、セットアップのために往復が必要です。暗号化を使用している場合、<span>TLS </span>ハンドシェイクにはさらに <span>1</span>〜<span>2 </span>回の往復が必要です。これは、最初の応答の最初のバイトが送信される前に全ての接続で発生します。新しい接続を設定する代わりに既存の接続を再利用することによって、このオーバーヘッドを多くの要求で共有することができます。<span> HTTP/2 </span>は、新しい接続が確立されている間の待機する、もしくは既存の接続がアイドル状態になるまで待機する必要性を大幅に減らします。単一の接続が多数の要求の間で多重化されているため、他の要求が完了するのを待つことなく、要求をすぐに送信できます。

&nbsp;
<h2><strong>HPACK によるヘッダー圧縮</strong></h2>
HTTP は、何年もの間データの圧縮をサポートしています。ただし、ヘッダは圧縮されていないテキストとして送信され、要求間には多くの冗長性があります。（最も長いヘッダーの多くは、リクエストごとに同じ値で送信されます）<span>HTTP/2 </span>では、<span>HTTP </span>ヘッダーの圧縮方式である<span>HPACK</span>が導入され、要求間の冗長性が低減されています。

&nbsp;

要求がより小さくなるので、圧縮は多重化にも役立ちます。これにより、<span>TCP</span>フロー制御ウィンドウは小さい一方、クライアントは接続上の最初のパケットで多くの要求を行うことができます。

&nbsp;
<h4><strong>HTTP / 1.xとの主な違いは何ですか？</strong></h4>
&nbsp;
<ul>
 	<li>HTTP/2はバイナリです</li>
 	<li>順序付けされ、ブロックされるのではなく、完全に多重化されています</li>
 	<li>1つの接続で並列性を実現することができます</li>
 	<li>1つの TCP/IP 接続を保持しています</li>
 	<li>ヘッダー圧縮を使用してオーバーヘッドを削減します</li>
</ul>
&nbsp;
<h2><strong>App Service ユーザはどのようなアクションを取る必要がありますか？</strong></h2>
<span><a href="https://portal.azure.com/">Azure Portal</a> の機能を使用できるようにする</span><span> UI </span><span>がすぐに提供される予定ですが、今のところは単純な設定変更を行う必要があります</span>！<span> HTTP/2 </span>は、すべての顧客に対して既定で無効になっていますが、サイトにオプトインして<span> HTTP/2 </span>を適用する場合は、次の手順を実行します。

&nbsp;

次のいずれかの手順を使用して<span> Azure </span>リソースエクスプローラー を参照します。<span>(</span><a href="https://resources.azure.com/">https://resources.azure.com/</a><span>)</span>

&nbsp;

Azure Portal で、<span>App Service </span>のメニューで「リソースエクスプローラー」を選択します。

&nbsp;

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/1.png" />

次に、<span>[</span>移動<span>]</span>を選択します。

&nbsp;

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/2.png" />

&nbsp;

または、リソースエクスプローラー（<span><a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fresources.azure.com%2F&amp;data=02%7C01%7Ckemura%40microsoft.com%7Cea468ce1da904cb6624d08d5a3fa0467%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636595216574302635&amp;sdata=%2B5qgriOO5VJn6F712q6IKUBgjFKRiaQEQQvZUkgzKWs%3D&amp;reserved=0">https://resources.azure.com/</a></span>）に直接アクセスしてください。

Azure Portal から利用する利点は、ブラウザがリクエストされたアプリの設定に自動的に移動することです。

リソースエクスプローラー に直接アクセスする場合は、次のパスを使用してツリー階層をサイトにドリル ダウンします。

サブスクリプション <span>&gt; </span>リソースグループ <span>&gt; </span>サイト名 <span>&gt; </span>プロバイダー <span>&gt; Microsoft.Web &gt; </span>サイト <span>&gt; </span>サイト名 <span>&gt; config &gt; web</span>

&nbsp;

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/3-206x300.png" />

ページの一番上が、<span> "read/write" </span>モードになっていることを確認してください：

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/4.png" />

編集を選択してください：

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/select-edit.png" />

HTTP/2のパラメータを検索してください：

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/6-300x34.png" />

&nbsp;

'false'の代わりに<span> '<strong>true</strong>'</span>と入力します。

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/7-300x32.png" />

上部にある「<span>PUT</span>」を選択します。

<img src="https://msdnshared.blob.core.windows.net/media/2018/03/8-300x60.png" />

設定完了です！

&nbsp;
<ul>
 	<li>Appサービス環境と<span>Azure National Clouds </span>での<span> HTTP/2 </span>のサポートはすぐに開始されます。</li>
</ul>
&nbsp;
<h2>HTTP / 2ブラウザのサポートには<span>SSL</span>が必要</h2>
最新のブラウザでは、<span>SSL  </span>経由の <span>HTTP/2 </span>プロトコルのみをサポートしており、非 <span>SSL </span>トラフィックは引き続き <span>HTTP/1.1 </span>を使用しています。<span> App Service</span>を使用すると、<span>SSL </span>を使用して簡単に稼動させることができます。<a href="https://docs.microsoft.com/ja-jp/azure/app-service/web-sites-purchase-ssl-web-site">アプリに新しい<span>SSL</span>証明書を設定する方法</a>、または<a href="https://docs.microsoft.com/en-us/Azure/app-service/app-service-web-tutorial-custom-ssl">既存の<span>SSL</span>証明書をアプリにバインドする方法</a>を確認してください。<span> App</span>サービスは、<span>* .azurewebsites.net </span>ドメインにバインドされた共通のワイルドカード<span>SSL</span>証明書を使用して、すべてのアプリに対してデフォルトの<span>SSL</span>機能を提供しています。どんなアプローチの場合も、最新のブラウザで <span>HTTP/2 </span>のメリットを享受するためには、アプリを<span>SSL</span>上で実行する必要があります。

&nbsp;
<h2>問題が発生したらどうなりますか？</h2>
HTTP / 2の更新に起因すると思われる問題が見つかった場合は、次の方法で警告できます。

&nbsp;
<ul>
 	<li>開発者フォーラムで質問する：<a href="https://social.msdn.microsoft.com/Forums/azure/en-US/home?forum=windowsazurewebsitespreview"><span>MSDN </span></a>または <a href="https://stackoverflow.com/questions/tagged/azure-web-app-service">Stack Overflow </a></li>
 	<li><a href="https://portal.azure.com/">サポート チケット</a>を開く</li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Azure App Service の Service Management APIs が廃止されます</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/azure-app-service-%E3%81%AE-service-management-apis-%E3%81%8C%E5%BB%83%E6%AD%A2%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99</link>
      <pubDate>Wed, 21 Mar 2018 00:00:14 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=1995</guid>
      <description><![CDATA[このポストは、2018 年 3 月 12 日に投稿された Deprecating Service Management APIs support for Azure App...]]></description>
      <content:encoded><![CDATA[このポストは、2018 年 3 月 12 日に投稿された <a href="https://blogs.msdn.microsoft.com/appserviceteam/2018/03/12/deprecating-service-management-apis-support-for-azure-app-services/">Deprecating Service Management APIs support for Azure App Services</a> の翻訳です。

&nbsp;

<a href="https://channel9.msdn.com/Events/Build/2014/2-607">Build 2014</a> にて、Azureは、呼ばれるリソース管理用の RESTful API である <a href="https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-overview">Azure  Resource Manager</a> と新しい <a href="https://portal.azure.com/">Azure Portal </a>を発表しました。<a href="https://azure.microsoft.com/en-us/services/app-service/"> Azure App Service</a> が Azure Resource Manager のサポートを実装して以来、すでに数年がたっています。ポータルや、REST API 、<a href="https://docs.microsoft.com/en-us/azure/#pivot=sdkstools">その他の SDK やクライアント ツール</a>を通してApp Service のリソースを管理や自動化をする場合や、<a href="https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-template-deploy">デプロイ用のテンプレート</a>を使用してリソースをデプロイを行う際には、すでにAzure Resource Manager が利用されております。 一方、従来のAzure Service Management API を利用して自動化のためのスクリプトが構築されている場合は、このアナウンスが影響します。

&nbsp;

Azure App Service のリソース管理は、Azure Resource Managerを介してのみサポートされるようになります。 Azure Service Management のサポートは <b>2018</b> <b>年</b> <b>6</b> <b>月</b> <b>30</b> <b>日に廃止されます</b>。 Service Management の API は古く、現代のクラウドにはあまり適していません。 Service Management API を利用したままでは、優れた開発者エクスペリエンスが提供できず、 プレーン スケールの操作もできなくなります。 現在Service Management APIを使用しているお客様は、Resource Managerに移行してください。 Azure Resource Managerには、堅牢な導入モデル、ロールベースのアクセス、既存の機能や新しい機能のAPIサポートなど、サービス管理に比べて多くの利点があります。 詳細については、<a href="https://blogs.technet.microsoft.com/meamcs/2016/12/22/difference-between-azure-service-manager-and-azure-resource-manager/">Azure Service ManagerとAzure Resource Managerの違い</a>を参照してください。

&nbsp;
<h5><strong>認証</strong></h5>
&nbsp;

Service Management では、Azure Active Directoryまたは管理証明書を使用した認証がサポートされています。 リソースマネージャの認証は、Azure Active Directoryアプリケーションと対話型ユーザーアクセスを中心に構築されています。 詳細については、<a href="https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-api-authentication">Resource Manager API Authentication </a>を参照してください。 オートメーションで管理用の証明書を使用する必要がある場合は、<a href="https://blogs.msdn.microsoft.com/tomholl/2015/06/18/authenticating-to-azure-resource-manager-using-aad-and-certificates/">Authenticating to Azure Resource Manager using AAD and certificates </a>を使用して自動化することができます。

&nbsp;
<h5><strong>リソースのデプロイメント</strong></h5>
&nbsp;

リソースマネージャには、宣言的なリソース記述を持つ堅牢なデプロイメントエンジンがあります。 両者のリソース デプロイメントの違いを理解するには、<a href="https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-deployment-model">Resource Manager Deployment Model </a>を参照してください。 リソースマネージャは、<a href="https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-create-first-template">デプロイ用のテンプレート</a>によるリソースのデプロイをサポートします。 また、Microsoft 2. Azure SDK for .NET 2.9以降、Visual Studioを使用したリソースの展開もサポートされています。 詳細については、Visual Studioを使用したリソースとコードの展開を参照してください。

&nbsp;
<h5><strong>API の呼び出し</strong></h5>
&nbsp;

Resource Manager REST APIを直接コーディングする場合は、<a href="https://docs.microsoft.com/en-us/rest/api/appservice/">Azure App Service REST API</a>のドキュメントを参照してください。 <a href="https://github.com/projectkudu/ARMClient">ARMClient</a>と<a href="https://resources.azure.com/">Azure Resource Explorer</a>は、App Service Resource Manager API がどのようになっているのか調べるための素晴らしいツールです。 ARMClientの詳細については、<a href="https://blog.davidebbo.com/2015/01/azure-resource-manager-client.html">ARMClient: a command line tool for the Azure API</a> を参照してください。

&nbsp;
<h5><strong>SDKとツール</strong></h5>
&nbsp;

Resource Managerは、SDK やツールを多数の言語、フレームワーク、プラットフォームで提供します。 これらには、.NET、Node、Java、Ruby、Python、Go、PowerShell、Azure CLIが含まれますが、これだけではありません。 詳細なドキュメント、チュートリアル、サンプルが<a href="https://docs.microsoft.com/ja-jp/azure/#pivot=sdkstools">ここ</a>にあります。

&nbsp;
<h5><strong>Appサービスリソースメトリック</strong></h5>
&nbsp;

自動化のためのスクリプトなどが App Service Resource Metrics API  を使用していた場合は、<a href="https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-overview-metrics">Azure Resource Manager Monitoring  API </a>に切り替えることをお勧めします。 App Service 固有のメトリックAPIは引き続き提供していますが、間もなくその API を廃止にする予定です。 Resource Manager Monitoring API は、Azure 内の任意のサービス上の任意のリソースでメトリックとやりとりする共通的な方法です。 詳細については、<a href="https://docs.microsoft.com/ja-jp/azure/monitoring-and-diagnostics/monitoring-supported-metrics">Azure Monitor でサポートされているメトリック</a>を参照してください。

&nbsp;

<b>2018</b> <b>年</b> <b>6</b> <b>月</b> <b>30</b> <b>日</b>より前に、すべての自動化ツールとデプロイメントツールを新しいAPIを使用するように移行すれば、サービスの中断を防ぎ、やAzure Resource Manager の優れたデプロイメントと管理機能の恩恵を受けるようにしましょう。

&nbsp;

補足:

<hr />

Service Management API を利用している例としては、Azure Service Management PowerShell Module 内のコマンドレットが挙げられます。

Get-AzureWebsite など、<a href="https://docs.microsoft.com/en-us/powershell/module/azure/get-azurewebsite?view=azuresmps-4.0.0">こちら</a>に記載されております Web Apps に関連するコマンドレットは利用できなくなる可能性がございますのでご注意ください。

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>[API Management] 2018年6月1日に管理エンドポイントのポートが変更されます</title>
      <link>https://docs.microsoft.com/archive/blogs/jpcie/api-management-2018%E5%B9%B46%E6%9C%881%E6%97%A5%E3%81%AB%E7%AE%A1%E7%90%86%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%AE%E3%83%9D%E3%83%BC%E3%83%88%E3%81%8C%E5%A4%89</link>
      <pubDate>Tue, 13 Mar 2018 13:34:26 GMT</pubDate>
      <dc:creator><![CDATA[JPCIE]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jpcie/?p=1935</guid>
      <description><![CDATA[このポストは、2018年2月28日に投稿された Upcoming change to management endpoint port on June 1...]]></description>
      <content:encoded><![CDATA[このポストは、2018年2月28日に投稿された <a href="https://blogs.msdn.microsoft.com/apimanagement/2018/02/28/upcoming-change-to-management-endpoint-port-on-june-1/">Upcoming change to management endpoint port on June 1</a> の翻訳です。

&nbsp;

もし仮想ネットワーク上に API Management サービスインスタンスを展開していましたら、下記ご確認ください。

&nbsp;

Azure Portal および PowerShell 用の管理エンドポイント向けのポートを 443 ポートから 3443 ポートに変更します。(こちらの<a href="https://docs.microsoft.com/ja-jp/azure/api-management/api-management-using-with-vnet#a-namenetwork-configuration-issues-acommon-network-configuration-issues"><span>ページ</span></a>または下記の表をご覧ください。) 今回の変更はお客様が受信管理トラフィックを分離したり、受信管理トラフィックを制御できるようにするために実施されます。6月1日に、今まで管理エンドポイントで使っていた 443 ポートの利用を停止します。<strong>よって、6月1日以降も引き続き確実にサービスをご利用いただくために、NSG の受信ルールにおいて、3443 ポートへのアクセスを許可してください。</strong>

ご質問や懸念点等がありましたら <a href="https://social.msdn.microsoft.com/forums/azure/ja-jp/home?forum=azureapimgmt&amp;forum=azureapimgmt">API Management forum</a> または<a href="https://stackoverflow.com/questions/tagged/azure-api-management"> Stack Overflow</a> を通じてご連絡ください。

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/03/Capture18.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/03/Capture18.png" alt="" width="1053" height="751" class="alignnone size-full wp-image-1945" /></a>]]></content:encoded>
    </item>
  </channel>
</rss>