none
C言語のコンパイル済実行ファイルのAPI化について RRS feed

  • 質問

  • C言語で作成されたコンパイル済の実行ファイルがありますが、これをApp Serviceなどを使用してサービス稼働させたいのですが、方法はありますでしょうか?

    2020年8月30日 10:14

回答

すべての返信

  • 通常の App Service の API Apps では C (C++) はサポートされないので、カスタム コンテナーを実行する方法になるでしょう。


    Hebikuzure aka Murachi Akira

    • 回答としてマーク nishio99 2020年9月1日 14:59
    2020年8月30日 11:22
  • 個人的には、Web サービス化するなら「コンパイル済み実行ファイル」だと厳しいと思っています。
    普通に再設計・再開発も選択肢に含めるべきではないでしょうか。

    懸念されること
    ・デスクトップの存在を前提としていないか?(ウィンドウが生成されるなど)
    ・共有のファイル・リソースへのアクセスなど、同時・並列実行に支障がある仕様となっていないか?
    ・異なるユーザーの同時アクセスによって、他のユーザーの情報が露呈・漏洩・混信することが起きないか?
    ・Web ベースで長時間の処理を待たせるようなことにならないか?

    2020年8月30日 12:16
  • ご回答ありがとうございます。

    よく理解しておらず申し訳ないですが、懸念事項を踏まえた形で実行ファイルにコンパイル済であれば、問題ないだろうということになりますでしょうか?また、仮にコンパイル済でなく、Azure上でコンパイルする場合には異なる手段がとれるのでしょうか?

    2020年8月30日 14:21
  • よく理解しておらず申し訳ないですが、懸念事項を踏まえた形で実行ファイルにコンパイル済であれば、問題ないだろうということになりますでしょうか?

    理論上は「できる」かもしれませんが、現実的ではないのでは?
    API 化したいものが、「短時間(数秒以内)」「ステートレス」「セキュリティ」を満たすことは簡単ではなさそうなので。

    あと、私自身は詳しくないですが、App Service における Windows カスタムコンテナ は、Preview 段階…?
    参考1参考2参考3「事前構成済みの Windows コンテナー (プレビュー)」)

    また、仮にコンパイル済でなく、Azure上でコンパイルする場合には異なる手段がとれるのでしょうか?

    「Azure でコンパイルする」が C 言語のままなら、そういった方法はないという答えになりそうです。(Hebikuzure さんがすでに書いていますよね)
    再実装可能なら、Azure 上での融通が利く言語・フレームワークで対応した方がいろいろと選択肢が増えると思いますが…。

    2020年8月30日 22:08
  • Azure でサポートされているかどうかは分かりませんが、Node.js からコンパイル済みのバイナリを呼び出して実行することは可能のようですね(たぶん PHP でも可能)。敷居は高そうですが、ご参考まで。


    Hebikuzure aka Murachi Akira

    2020年8月31日 3:06