1. はじめに
1-1 ご挨拶
初めまして、井村と申します。
お仕事でAzure Loic Appsを利用することになりました。初めて触るリソースの為、動作確認と備忘録として投稿します。
1-2 対象読者
- Azureに興味がある
1-3 Azure Logic Appsとは?
Azure上で利用するローコード/ノーコードサービスです。ビジュアル デザイナーを使用してアプリ、データ、サービス、システムを統合および管理するワークフローをすばやく構築できます。基本的にコネクタと呼ばれるコンポーネントをつなぎ合わせて利用します。Azureにはたくさんのコネクタが用意されています。カスタムコネクタも作成できます。
1-4 システム構成と検証の流れ
上記がシステム構成図です。検証としては以下の通り。
- ユーザーがファイルをStorage account(コンテナー)へ格納
- Azure Logic AppsがStorage account(コンテナー)にファイルが格納されたことを検知
- Azure Logic AppsからSlackへメッセージ投稿&Outlookにメール
2. 構築
2-1 Slackのアカウント作成
こちらからSlackのアカウントを作成します。今回はフリープランで問題ございません。
案件でSlackを利用する事はありますが、個人でアカウント作成するのは初めてになります。なので、エビデンスを残します。
今回は「Google」アカウントで作成します。
続けます。

アカウントが作成されましたので、ワークスペースを作成します。
チーム名を決めます。
招待はスキップします。
チャンネル名を決定します。
無事にできました。
2-2 Outlookのアカウント作成
こちらからOutlookのアカウントを作成します。
2-3 Azure Storage Account及びAzure Logic Appsの作成
Azure portalからぽちぽちでも良いのですが、今回はTerraformで作成します。
main.tf
# プロバイダー定義
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=3.0.0"
}
}
}
provider "azurerm" {
features {}
}
# 変数宣言
locals {
common = "imura"
location = "japaneast"
date = formatdate("YYYYMMDD", timestamp())
}
# リソースグループの作成
resource "azurerm_resource_group" "rg" {
name = "rg-${local.common}"
location = local.location
}
# Logic Appsの作成
resource "azurerm_logic_app_workflow" "logic" {
name = "logic-${local.common}"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
identity {
type = "SystemAssigned"
}
}
# Storage Accountの作成
resource "azurerm_storage_account" "st" {
name = "st${local.common}${local.date}"
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
account_tier = "Standard"
account_replication_type = "LRS"
}
# コンテナーの作成
resource "azurerm_storage_container" "container" {
name = "container-${local.common}"
storage_account_name = azurerm_storage_account.st.name
container_access_type = "private"
}
# Azure Logic Apps→Storage Account (Storage Blob Data Reader権限)
resource "azurerm_role_assignment" "rbac" {
scope = azurerm_storage_account.st.id
role_definition_name = "Storage Blob Data Reader"
principal_id = azurerm_logic_app_workflow.logic.identity[0].principal_id
}
コードにコメント入れていますので、最低限の解説だけ入れます。
ストレージアカウント名は一意である必要があるため、サフィックスにとりあえずの日付関数を使用。
ファイルを格納するコンテナーはStorage account上に作成します。
一番下のリソースブロックはAzure Logic AppsがStorage accountにアクセスすための権限付与になります。
# Azureへログイン
az login
# Terraformの実行
terraform init
terraform plan
terraform apply
正常終了したら、リソースグループ配下にAzure Logic AppsとStorage accountが作成されます。
Storage account内のコンテナー確認。
権限確認。
2-4 ワークフローの作成
それではメインのAzure Logic Appsでワークフローを作成します。
左ペインの開発ツールから「ロジックアプリデザイナー」を選択します。
※各画面の文字が小さくてごめんなさい。
「空のロジックアプリ」を選択します。
検索窓に「Storage」と入力。トリガーから「BLOBが追加または変更されたとき」を選択します。
接続名は「AzureLogicAppsConnection(※任意)」、認証の種類は「Logic AppsのマネージドID」として、「作成」をクリックします。
「ストレージアカウント名またはBLOBエンドポイント」、「コンテナー」は作成したリソースを記述します。他の値は任意となります。今回は「項目を確認する頻度」は10分にします。各値を埋めたら、「新しいステップ」をクリックします。
検索窓に「Slack」と入力。アクションから「メッセージの投稿」を選択します。
「サインイン」をクリックします。
作成したSlackのURLを入力し、「続行する」をクリックします。

ご自身のアカウントでサインインします。

「許可する」をクリックします。

許可されるとロジックアプリデザイナーで変化があります。各情報を入力します。
「チャネル名」は作成したチャネルを選択します。「メッセージテキスト」はフリーフォーマットで記入でき、作成したBlobの情報も取得可能です。
「Add new parameter」にて「ボット名」を選択します。
上記完了したら、「新しいステップ」をクリックします。
検索窓に「Outlook」と入力。アクションから「メールの送信」を選択します。
「サインイン」をクリックします。
利用するアカウントを選択します。

必須事項を入力します。
必須事項を入力後、左上の「保存」をクリックします。
左上の「トリガーの実行」-「実行」をクリックします。
以上で構築完了です。
3. 検証
それでは検証を始めます。
「項目を確認する頻度」を10分にしたので10分毎にトリガーが動いています。
直近のトリガーは15時16分に動いていることが確認できます。
3-1 Storage accountへファイルのアップロード
ファイルをアップロードします。時間は15時17分です。
3-2 Azure Logic Appsの確認
最新の15時26分で成功が表示されました。
※15時26分のスキップ済みのログを調査しました。ストレージアカウントの情報を取得し、メール送信時に一部処理がスキップしたようでした。よくわからん。。
実行履歴の確認すると約1秒で完了しました。
3-3 Slackの確認
Slackにメッセージが投稿されていることが確認できました。受信日時は15時26分です。
3-4 Outlookの確認
メールも確認できました。受信日時は15時26分です。
最後にリソースグループを確認します。各リソースとのAPI接続リソースが作成されています。以上で検証完了です。
4. 終わりに
本記事を最後まで読んで頂きましてありがとうございます。
今まで食わず嫌いのAzure Logic Appsでしたが、簡単なアプリなら短時間で作成できますね。ノーコード/ローコード市場規模が毎年右肩上がりなのがうなずけます。