お世話になっております。shopifyアプリのデプロイ後エラーが発生しており、解決の糸口を提供していただけたら幸いです。
【概要】
shopifyアプリをデプロイ後、開発ストアにインストールしようとするとインストール画面に遷移しないエラーが発生する。
→・ローカル環境では動作検証済み
・Viteのビルドも成功、ヘルスチェックも成功
【開発環境】
-
プロジェクトはshopify cli3.0で生成するひな形をほぼそのまま使用
- 一部カスタマイズしており、カスタマイズ項目を参照ください
-
言語
- Node.js
-
ライブラリ、パッケージ
- 以下package.jsonを参照ください
web/package.json
{
"name": "shopify-app-template-node",
"private": true,
"license": "UNLICENSED",
"scripts": {
"debug": "node --inspect-brk index.js",
"dev": "cross-env NODE_ENV=development nodemon index.js --ignore ./frontend",
"serve": "cross-env NODE_ENV=production node index.js"
},
"type": "module",
"engines": {
"node": ">=14.13.1"
},
"dependencies": {
"@shopify/shopify-api": "^6.2.0",
"@shopify/shopify-app-express": "^1.1.0",
"@shopify/shopify-app-session-storage-redis": "^1.1.1",
"@shopify/shopify-app-session-storage-sqlite": "^1.0.0",
"compression": "^1.7.4",
"cross-env": "^7.0.3",
"dotenv": "^16.0.3",
"nodemailer": "^6.9.1",
"serve-static": "^1.14.1",
"sqlite3": "^5.1.6"
},
"devDependencies": {
"nodemon": "^2.0.15",
"prettier": "^2.6.2",
"pretty-quick": "^3.1.3"
}
}
web/frontend/package.json
{
"name": "shopify-frontend-template-react",
"private": true,
"license": "UNLICENSED",
"scripts": {
"build": "vite build",
"dev": "vite",
"coverage": "vitest run --coverage"
},
"type": "module",
"engines": {
"node": ">= 12.16"
},
"dependencies": {
"@shopify/app-bridge": "^3.1.0",
"@shopify/app-bridge-react": "^3.1.0",
"@shopify/app-bridge-utils": "^3.1.0",
"@shopify/polaris": "^9.11.0",
"@vitejs/plugin-react": "1.2.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-query": "^3.34.19",
"react-router-dom": "^6.3.0",
"vite": "^2.8.6",
"dotenv": "^16.0.3"
},
"devDependencies": {
"history": "^5.3.0",
"jsdom": "^19.0.0",
"prettier": "^2.6.0",
"vi-fetch": "^0.6.1"
}
}
-
インフラ構成
-
AWS App Runner
- アプリ本体のデプロイ先
-
Elasticache for redis
- セッションストレージ
-
【設定関係】
-
shopifyアプリ
-
以下のように管理画面の方で設定されています。
-
アプリURL
- デプロイ先のURLを指定済み -
リダイレクト設定
- デプロイ先URL/auth/callback - デプロイ先URL/auth/shopify/callback - デプロイ先URL/api/auth/callback
-
-
-
App Runner 環境変数
-
以下それぞれ設定しています。
-
PORT
- 8080 -
SHOPIFY_API_KEY
-
SCOPES
-
SHOPIFY_API_SECRET
-
HOST
- デプロイ先URLを指定済み
-
-
【カスタマイズ】
- ビルドコマンドをカスタマイズしています。
"app-build": "npm --prefix ./web install & npm --prefix ./web/frontend install && SHOPIFY_API_KEY="APIKEY" npm --prefix ./web/frontend run build"
【エラーが発生している箇所について】
ログ出力の設定をdebug等に設定してログを追ったところ、以下の範囲内までエラー発生場所を特定しました。
-
発生箇所
-
shopify.ensureInstalledOnShop() (middlware)
-
debug(‘Checking if shop has installed the app’, {shop})
-
下記行数のデバッグまでの表示は確認できている
-
-
上記のデバッグ以降、何もログが出力されない
-
下記ログ出力を変更するとログ自体の出力が減り、上記のログ表示まで到達しない
-
logger: { level: LogSeverity.Error }
-
-
上記エラーが関数内のどの辺りの処理で発生しているのか、またその他ログの設定、アプリ設定等に誤りがあるとの指摘がございましたらご教授いただけますと幸いです。