2016-11-17 6 views
0

私たちはPHPアプリケーションを持っています。データベースとの接続の暗号化には、3つのファイルを公開する必要がありますが、 DB接続を作成する(https://www.cleardb.com/developers/ssl_connectionsGitを使ってAzure App Servicesで秘密のファイルを処理する方法

明らかに私たちはそれらをアプリケーションコードでSCMに保存したくないので、私の考えでは、デプロイ後のアクションフックを使用して、それらのファイルをストレージからフェッチするアカウント(アプリパラメータで提供されるキーとURIを使用)

これを実現するには、より洗練された方法がありますか? :)

はあなたが展開タスク中に追加のスクリプトやコマンドを実行するためにCustom Deployment Scriptを使用しようとすることができ、

答えて

0

、ありがとうございました。したがって、Blobストレージからサーバーファイルシステムの場所に証明書ファイルをダウンロードする機能を持つPHPスクリプトを作成できます。 PHPアプリケーションでは、DB接続でこれらのファイルを使用できます。続き

は、一般的な手順は次のとおりです。 enter image description here

  • は、詳細はhttps://docs.microsoft.com/en-us/azure/xplat-cli-installを参照し、npm経由azure-cliモジュールをインストールします。

    1. は、ポータル内composer拡張を有効にします。
    2. は、コマンドazure site deplotmentscript --php
    3. 実行コマンドcomposer require microsoft/windowsazure経由でPHP用の展開スクリプトを作成するには、ストレージSDKの依存関係を持つcomposer.jsonを持っていることを確認してください。
    4. ブロブストレージからハエをダウンロードするには、あなたのルートディレクトリにPHPスクリプトを作成します(例えばrun.phpを命名。):

      require_once 'vendor/autoload.php'; 
      
      use WindowsAzure\Common\ServicesBuilder; 
      use MicrosoftAzure\Storage\Common\ServiceException; 
      $connectionString = "<connection_string>"; 
      $blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString); 
      
      $container = 'certificate'; 
      $blobs = ['client-key.pem','client-cert.pem','cleardb-ca.pem']; 
      
      foreach($blobs as $k => $b){ 
          $blobresult = $blobRestProxy->getBlob($container, $b); 
          $source = stream_get_contents($blobresult->getContentStream()); 
          $result = file_put_contents($b, $source); 
      } 
      
    5. deploy.cmdスクリプトを修正し、ステップKuduSync下santence php run.phpを追加します。
    6. Gitを使用してアプリケーションをAzure Web Appにデプロイします。

    任意の更なる懸念は、私に知らせて自由に感じなさい。

  • 関連する問題