Azure Logic App で Azure メトリックアラートを Slack に投稿する

Logic App は HTTP 要求の受信 → Slack メッセージ投稿 という2ステップで構成し、メトリックアラートの設定で「アクションの実行」にこの App を指定する。

# トリガーの設定

「HTTP要求の受信時」から作成する。

![trigger.png](https://qiita-image-store.s3.amazonaws.com/0/18365/d2c9f7e0-89c8-1ffb-3fec-23a953d34f02.png)

# 各ステップの最低限の設定

## HTTP要求の受信時

要求本文のJSONスキーマに次の内容を設定する。

![httpreq.png](https://qiita-image-store.s3.amazonaws.com/0/18365/bdc72380-a4aa-4cda-ce2b-8421388dc8d6.png)

```json
{
    "properties": {
        "context": {
            "properties": {
                "condition": {
                    "properties": {
                        "metricName": {
                            "type": "string"
                        },
                        "metricUnit": {
                            "type": "string"
                        },
                        "metricValue": {
                            "type": "string"
                        },
                        "operator": {
                            "type": "string"
                        },
                        "threshold": {
                            "type": "string"
                        },
                        "timeAggregation": {
                            "type": "string"
                        },
                        "windowSize": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "conditionType": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "portalLink": {
                    "type": "string"
                },
                "resourceGroupName": {
                    "type": "string"
                },
                "resourceId": {
                    "type": "string"
                },
                "resourceName": {
                    "type": "string"
                },
                "resourceRegion": {
                    "type": "string"
                },
                "resourceType": {
                    "type": "string"
                },
                "subscriptionId": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "properties": {
            "properties": {
                "$type": {
                    "type": "string"
                }
            },
            "type": "object"
        },
        "status": {
            "type": "string"
        }
    },
    "type": "object"
}
```

## アクションの追加

「Slack投稿メッセージ」を追加し、サインインを済ませる。

![addslack.png](https://qiita-image-store.s3.amazonaws.com/0/18365/e7fe14ad-4e7e-b088-e2f4-e6d6e83c1d48.png)

## Slackメッセージの投稿

チャネル名をプルダウンメニューから選択し、メッセージテキストに次の内容を設定する。
ロジックアプリを保存する。

![slack.png](https://qiita-image-store.s3.amazonaws.com/0/18365/48cf7532-0351-2613-f356-25fafa8e88ac.png)

```
@{triggerBody()?['context']?['description']}
@{triggerBody()?['context']?['condition']?['metricName']} was @{triggerBody()?['context']?['condition']?['metricValue']} @{triggerBody()?['context']?['condition']?['operator']} @{triggerBody()?['context']?['condition']?['threshold']} (@{triggerBody()?['context']?['condition']?['metricUnit']})
@{triggerBody()?['context']?['portalLink']}
```