Azure Database for PostgresSQLとPower Appsを連携してノーコードアプリ開発

クラウド化へ

Microsoft Azureを利用して、既存のDBをクラウド上に移行したい、そんな夢を抱いて、テストをしています。

Amazon AWSにするか、MicrosoftAzureにするかはまだ、全く判断基準がないのですが、まずは親しみのあるMicrosoft製品を使ってみます。Microsoft製品なら、Power Appsを利用してノーコードでプログラム開発するのも良いかと。

Microsoft Azureって?

Microsoft Azureは、マイクロソフトの管理するデータセンターを通して提供されるクラウドコンピューティングサービスです。

Power Apps でローコード・ノーコード開発

Power Automate で、RPA化して

Power BI でたまったデータを解析できます。

たくさんのツールが準備されています。

バーチャルマシーンを稼働させるだけではなくて、様々なサービスが準備されていて、全体像が捉えにくいのが欠点かなと思います。

Azure Database for PostgreSQLを利用する

オープンソース、無料で利用できるPostgreSQLが、MicrosoftのリソースAzure上で利用できます。Azureでサービス展開するためには有料になりますけど、既存システムをPostgreSQLで構築されている企業にとっては、クラウド化する際の選択肢になりますよね。

単一サーバを構築しようと思ったら、

フレキシブルサーバの作成を求められました

フレキシブルサーバの作成を開発目的で行うと、利用料金がぐっと下がり月額16.25ドルくらいでいけそうです。

Azure計算ツールによれば、時間課金で表示されているので、1か月使ったときの費用目安だと思います。

リージョンでも、East Japanを選択すると20ドルを超えました。リージョンでも費用は変わります。

とりあえず、ネットワーク構成などどのように決めていけばよいか分からなかったので、デフォルトのままです。

ネットワークは、パブリックアクセス

パブリック アクセス (許可されている IP アドレス)

に設定してあるので、許可したIPアドレスからの接続可能という事だと思います。

自分が利用しているプロバイダのIPアドレスを許可しておきました。

作成ボタンを押すと「デプロイが進行中です」と表示されます。

デプロイ完了

作成されたサーバにアクセス

サーバ名にアクセスしてみます。

使い慣れたPgAdminを利用してみました。

Create Serverでサーバにアクセスできるよう作成してみます。

設定は

サーバー名:azureの管理画面に表示されています。

サーバ管理者ログイン名とパスワード:デプロイ時に設定したログイン名とパスワードを設定します。

ポート:デフォルトの5432です。

接続できました。

テストデータベースを作成

ここまで来てしまえば、Pgadminの操作でテストデータベースを作成したり、テーブルを作成したりと思い通りです。

PgAdmin4でCSVエクスポート・インポート

Azure Database for PostgreSQLの使い方とは関係ありませんが、PgAdmin4でCSVファイルを利用して簡単にデータをアップロードする事ができます。

現在ある、顧客名簿テーブルでテストデータを作成し、必要レコードをCSVエクスポートして、CSVでインポートさせます。

エクスポートした際には、1行目にカラム名が入りますが、インポートする際には必要ありません。1行目を削除します。

null値にNULL という文字列が入っているのですが、これも不要なのでテキストエディタなどで編集して削除したらうまく取り込みできました。

  • CSVのカラム名削除
  • NULLを削除

Power Appsにて接続

コネクタにPostgreSQLを選択し、必要事項を入力します。

うまく接続できると、テーブルの選択に移行します。

無事にアプリケーション構築画面に移行しました。

アプリケーション完成しました。

Power Appsからの接続エラー

プロバイダーからデータを読み取り中にエラーが発生しました: ‘A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond’
inner exception: プロバイダーからデータを読み取り中にエラーが発生しました: ‘A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond’
clientRequestId:

レスポンスが返ってこないようです。あ、そういえば、許可するIPアドレスにPowerAppsをいれていませんでした。

Azure Database for PostgreSQL のファイヤーウォール設定にて

「Azure内の任意のAzureサービスにこのサーバーへのパブリックアクセスを許可する」

にチェックを入れます。

デプロイとは

配備する、配置する、展開する、配置につくという意味から、VMなどを実際に使える状態にすることをデプロイといいます。

発生費用

まだ、1日稼働させていないし、開発目的で作成しているのであんまり費用はかからなそうです。いまのところの実際のコストは3円でした。