Azureの上のホストstrapi 3


私はもともと、公式のstrapiドキュメントのガイドとして、次の貢献が、彼らは今のところ、strapiのv 4に取り組んでいるように、私はまだそれはまだどこかに含めることが良いと考えたので、ここに私のブログにあります!その結果、内容のレイアウトは私の通常のブログスタイルではありません.
あなたが新しいならばStrapi , Strapiはどこかにホストし、アプリケーションにコンテンツをプルするAPIを使用して、あなたのお気に入りのJavaScriptフレームワーク、モバイルアプリケーション、または何か他のスパであることを見出しなしCMSです.
v 4が書き込み時にベータ版であるので、これらのガイドはStrapiのV 3リリースに対してテストされます.ここでカバーされている内容の多くがV 4に適用されることが多いでしょう.私が変更することを望む唯一のことは、ファイルアップロードプロバイダーを使用する方法です.

Azureインストール要件
  • あなたはAzure account これらの手順を実行する前に.

  • 目次
  • Create resources using the portal
  • Create using the Azure CLI
  • Create Azure Resource Manager template
  • Storing files and images with Azure Storage

  • 必要資源
    Apaureには3つのリソースがあります.AppService strapi WebアプリケーションをホストするにはStorage イメージ/アップロードされた資産とデータベースを保存するために、AzureはMySQLとPostgresを選択するように管理しました.

    Azureポータル経由でリソースを作成する
    この節では、Azureポータルを使用して、strapiをホストするために必要なリソースを作成します.
  • 移動するAzure Portal
  • 指定した検索ボックスからリソースを作成し、リソースグループを検索する
  • リソースグループの名前を指定します.my-strapi-app , 領域を選択する
  • をクリックします
  • リソースグループに移動し、リソースを作成する
    Webアプリの検索
  • サブスクリプションおよびリソースグループが正しいことを確認し、アプリケーションの次の構成を提供します
  • - _Name_ - `my-strapi-app`
    - _Publish_ - `Code`
    - _Runtime stack_ - `Node 14 LTS`
    - _Operating System_ - `Linux`
    - _Region_ - Select an appropriate region
    
  • アプリケーションサービスの計画を使用して、適切なSKUと規模のアプリのスケールのレベルを選択する必要がありますthe Azure docs 様々なskuとsizeについての詳細は
  • をクリックします
  • リソースグループに移動し、「作成」をクリックしてストレージアカウントを検索し、「作成」をクリックします
  • 購読とリソースグループが正しいことを確認し、ストレージアカウントに次の設定を提供します.
  • - _Name_ - `my-strapi-app`
    - _Region_ - Select an appropriate region
    - _Performance_ - `Standard`
    - _Redundancy_ - Select the appropriate level of redundancy for your files
    
  • をクリックします
  • リソースグループに移動し、[ MySQLのAzureデータベースの作成]をクリックし、[作成]をクリックします
  • サービスタイプの選択
  • 購読とリソースグループが正しいことを確認し、ストレージアカウントに次の設定を提供します.
  • - _Name_ - `my-strapi-db`
    - _Data source_ - `None` (unless you're wanting to import from a backup)
    - _Location_ - Select an appropriate region
    - _Version_ - `5.7`
    - _Compute + storage_ - Select an appropriate scale for your requirements (Basic is adequate for many Strapi workloads)
    
  • 管理者アカウントのユーザー名とパスワードを入力する

  • リソースの設定
    すべてのリソースが作成されると、MySQLとストレージアカウントのWebアプリケーションへの接続情報を取得するだけでなく、使用するリソースを設定する必要があります.

    ストレージアカウントの設定
  • ストレージアカウントリソース、データストレージ-コンテナに移動します
  • 新しいコンテナを作成し、名前を指定します.strapi-uploads , に設定し、Blob , をクリックします
  • セキュリティ+ネットワークにアクセス-アクセスキー、ストレージアカウント名とキー1をコピーします
  • あなたが作成し、設定に移動するWebアプリケーションに移動-設定
  • ストレージアカウント、ストレージアカウントキー、コンテナ名の新しいアプリケーション設定を作成します

  • MySQLの設定
  • MySQLリソースへの移動
  • セットAllow access to Azure services to Yes をクリックします
  • 概要とコピーサーバー名とサーバー管理名
  • 開けるAzure Cloud Shell にログインし、mysql CLI :
  • - `mysql --host <server> --user <username> -p`
    
  • 使用するstrapiのデータベースを作成するCREATE DATABASE strapi; それから雲シェルを閉じる
  • オプション-別の非サーバ管理者を作成します.this doc 指導のために
  • あなたが作成し、設定に移動するWebアプリケーションに移動-設定
  • データベースホスト、ユーザー名とパスワードのための新しいアプリケーション設定を作成します

  • Azure CLIを介してリソースを作成する
    このセクションでは、Azure CLI 必要なリソースを作成します.これは、AzureのCLIとどのように適切な値を見つける方法に精通していると仮定します.

  • 新しいリソースグループを作成する
    rgName=my-strapi-app
    location=westus
    az group create --name $rgName --location $location
    

  • 新しいLinuxアプリサービスプランを作成number-of-workers and sku あなたのスケールの要件を満たすために)
    appPlanName=strapi-app-service-plan
    az appservice plan create --resource-group $rgName --name $appPlanName --is-linux --number-of-workers 4 --sku S1 --location $location
    

  • ノードを実行しているWebアプリケーションを作成します.JS 14
    webAppName=my-strapi-app
    az webapp create --resource-group $rgName --name $webAppName --plan $appPlanName --runtime "node|10.14"
    

  • ストレージアカウントの作成
    saName=mystrapiapp
    az storage account create --resource-group $rgName --name $saName --location $location
    
    # Get the access key
    saKey=$(az storage account keys list --account-name $saName --query "[?keyName=='key1'].value" --output tsv)
    
    # Add a container to the storage account
    container=strapi-uploads
    az storage container create --name $container --public-access blob --access-key $saKey --account-name $saName
    

  • MySQLデータベースの作成
    serverName=my-strapi-db
    dbName=strapi
    username=strapi
    password=...
    
    # Create the server
    az mysql server create --resource-group $rgName --name $serverName --location $location --admin-user $username --admin-password $password --version 5.7 --sku-name B_Gen5_1
    
    # Create the database
    az mysql db create --resource-group $rgName --name $dbName --server-name $serverName
    
    # Allow Azure resources through the firewall
    az mysql server firewall-rule create --resource-group $rgName --server-name $serverName --name AllowAllAzureIps --start-ip-range 0.0.0.0 --end-ip-range 0.0.0.0
    

  • Webアプリケーションに設定値を追加する
    az webapp config appsettings set --resource-group $rgName --name $webAppName --setting STORAGE_ACCOUNT=$saName
    az webapp config appsettings set --resource-group $rgName --name $webAppName --setting STORAGE_ACCOUNT_KEY=$saKey
    az webapp config appsettings set --resource-group $rgName --name $webAppName --setting STORAGE_ACCOUNT_CONTAINER=$container
    az webapp config appsettings set --resource-group $rgName --name $webAppName --setting DATABASE_HOST=$serverName.mysql.database.azure.com
    az webapp config appsettings set --resource-group $rgName --name $webAppName --setting DATABASE_USERNAME=$username@$serverName
    az webapp config appsettings set --resource-group $rgName --name $webAppName --setting DATABASE_PASSWORD=$password
    

  • Azureリソースマネージャーテンプレートの配備
    Azureリソースマネージャーテンプレートを使用して展開するには、以下のBottonを使用しますthis template Azureのカスタム展開として.


    ファイルとイメージの保存
    AppServiceがPaaSホスティングモデルであるので、アップロードプロバイダーはアップロードされた資産をAzure Storageに保存することを要求されます.チェックアウトhttps://github.com/jakeFeldman/strapi-provider-upload-azure-storage アップロードプロバイダーとしてAzureストレージを使用する詳細については.

    地方開発
    ローカル開発の場合は、標準のstrapiファイル/イメージアップロードプロバイダー(ローカルディスクに格納されている)を使用することもできますAzurite emulator .

    strapiの配備と実行
    Azure AppServiceは、CI/CDパイプラインを使用するか、またはFTPS経由で展開することができますAzure docs あなたの好みの方法のためにこれをする方法.
    ノードを開始します.アプリケーションは、AppServicenpm start コマンド.シンボリックリンクが作成した保証がないのでnpm install ( Ci/CDパイプラインからのアップロードの場合)保存されましたnpm start コマンドは直接キーポイントエントリポイントを参照します.
    "scripts": {
        "start": "node node_modules/strapi/bin/strapi.js start"
    }
    

    結論
    これは、AzureのさまざまなPAA機能をホストのstrapiに使用する方法と、これらのリソースを設定できるさまざまな方法を見ることができました.私はリソースマネージャテンプレートを自分で使用し、将来の展開がスムーズに起こるように、GithubアクションをCI/CDパイプラインとして設定することを好みます.
    うまくいけば、これはまた、あなたがAzureで実行しているあなたのstrapiサイトを得ることをより簡単にします、そして、一旦strapi 4が出ているならば、私はAzureでホストをつとめているとき、あなたが意識する必要がある違いに関するいくつかの更新された内容を得ます.