Remix

Remix版Shopifyアプリの運用 – 手動デプロイ

はじめにAmplify, Beanstalkで動かせなかった(経験不足、情報不足)ので、手動でデプロイすることにした本番環境ではなく、Shopifyと連携できることを確認するためのシンプルな環境を構築した1時間くらいでできるので、最初にこれをやってから、サーバレス系を試すべきだった関連https://www.s3lab.co.jp/blog/remix/2189/https://www.s3lab.co.jp/blog/remix/2145/手順EC2インスタンスの生成EIPの付与RDS Proxy経由でPostgresqlへ接続できるようにセキュリティグループを設定nginxのインストールRemixソースをgitからチェックアウトビルド、DBマイグレーション.envを設定npm installremix vite:buildnpx prisma generatenpx prisma migrate deployPubl

Remix

AWS BeanstalkでRemix版Shopifyアプリを運用<情報不足で中止>

はじめにDBマイグレーションはEC2からおこなうCIツールは取り扱わない結末情報不足で動かすことができなかったので一旦中止する参考https://tamotech.blog/2020/07/17/forever-pm2-express/https://remix.run/docs/en/main/start/quickstart開発環境での作業Shopify 関連Shopify Partnerへのデプロイ$ shopify app deploy --resetリリース準備環境での作業設定ファイルの更新.envにステージに応じた設定を入力SHOPIFY_API_KEY= # Shopify partner consoleSHOPIFY_API_SECRET= # Shopify partner consoleDATASOURCE_URL=SHOPIFY_APP_URL=ビルド実行buildディレクトリにデプロイ用のcli

Remix

AWS AmplifyでRemix版Shopifyアプリを運用<情報不足で中止>

はじめにRemixで作成したShopifyアプリをAWS Amplifyへデプロイし動かしてみたamplify.ymlでビルド時の指示ができる、これはAmplifyコンソール上のビルド指示を上書きするサーバーサイドとクライアントサイドを同時にデプロイできるメリットがあるAmplifyコンソールで設定する環境変数はビルド時のものなので、実行時は別で準備する必要があるサーバーサイドはLambda関数が自動で作られている、これに環境変数を渡すため、ビルド時に.envを作成し、実行時にdotenvで読み込むことにしたnode_modulesを含めたサイズが220MB以下になるエラーでハマったが、node-pruneで凌いだShopifyのセッション管理をsqliteはやめて、postgresqlに変更結末LambdaからRDSへの接続を解決できず、情報が少ないため断念参考https://richdevelops.dev/how-to-deploy-remix-apps-with-ssr-to-a

Amazon

API Gateway(REST) のセキュリティの検討

はじめにAPIキーAPIキーは、APIへのアクセスを認証するためにクライアントに割り当てられる一意の文字列です。APIキーは、APIリクエストの一部として送信され、API Gatewayや他のAPI管理システムでそのリクエストが許可されるかどうかを判断します。APIキーの機能と利点アクセス制御:APIキーを利用することで、APIにアクセスできるクライアントを制御できます。APIキーを持っているクライアントのみがAPIにリクエストを送信できるように設定できます。レート制限とクォータ管理:APIキーを使用すると、特定のクライアントごとにリクエスト数を制限するレート制限や、一定期間内のリクエスト数を管理するクォータを設定することができます。これにより、APIの過負荷を防止し、サービスの安定性を保つことができます。API使用のモニタリング:APIキーごとにリクエストをトラッキングすることで、どのクライアントがどれだけのリソースを使用しているかを監視できます。これにより、使用量に応じた課金やリソースの適切な割り当てが

Shopify

Shopifyのwebhookをslackで受信する設定

はじめに以下で、EventBridgeを使い、ShopifyイベントとLambdaを連動させる方法は説明している。https://www.s3lab.co.jp/blog/shopify/1882/ここでは、LambdaからSlackのWebhookを呼び出す方法を検討する。開発通知を受け取るためのSlackチャンネルを作成Slackでwebhook urlを作成slackにログインした状態で以下にアクセスするhttps://slack.com/services/new/incoming-webhookチャンネルを選択し、Incoming Webhookインテグレーションの追加を押すと、URLを入手できるこれは、slack app「Incoming Webhook」によるカスタムインテグレーションで実現している。登録済みのURLを確認するには、アプリ検索から「Incoming Webhook」を開き、設定を確認する。SlackのwebhookへメッセージをPOSTするLambd

Shopify

Shopifyアプリ – Remix版scaffoldのgraphqlの理解

はじめにcodegenでgraphqlの開発がどのように自動化できるのか調査するgraphqlのきれいなコードの収め方を考える参考https://shopify.dev/docs/api/shopify-app-remix/v2/guide-graphql-typeshttps://shopify.dev/docs/api/admin-graphql/2024-07/queries/orders?language=Remixhttps://shopify.dev/docs/api/shopify-app-remix/v2/apis/admin-apihttps://remix-docs-ja.techtalk.jp/ソース確認package.jsonの確認@shopify/api-codegen-presetがインストール済みスクリプトに、 graphql-codegenが設定済み追加で、npm add @shopify/admin-api-client @shopify/sto

Shopify

Shopifyカスタムアプリの開発 – ストア管理画面から作成

はじめに目標Shopifyのカスタムアプリは、Shopify Partner, Shopify appコマンド、Shopifyストア管理画面から作成できます。Shopify appコマンドで作成すると、Shopify Partnerで認識されます。これはRemixアプリとして開発手順を確認しました。今回は、もう一つの手法である、Shopifyストア管理画面から作成し、Shopify Partnerから作成する場合との手順の違いを確認します。前提カスタムアプリは、1つのストア限定でインストールできます。ただし、Shopify Plusプランの組織をもつ場合、Shopify Partnerで作成したカスタムアプリは開発用ストアと同じ組織に属しているストアにもインストールできます。カスタムアプリから、顧客名、住所、メールアドレス、電話番号のような個人識別用情報(PII)へのAPIアクセスは、Shopify, Advanced, Plusプランでのみ有効でです。管理画面から作成するアプリは、Storefront APIとAdmin A

Amazon

Amazon API GatewayによるREST APIの構築

はじめに以下の調査をもとに、REST APIを構築するhttps://www.s3lab.co.jp/blog/iaas/amazon/2053/https://www.s3lab.co.jp/blog/misc/2034/https://www.s3lab.co.jp/blog/iaas/amazon/2021/API Gatewayの種類API Gateway typeHTTP APIHTTP API は低価格で提供できるように最小限の機能で設計されています。WebSocket APIウェブブラウザとサーバー間でセッションを確立し、双方向通信を可能とします。REST APIAPI キー、クライアントごとのスロットリング、リクエストの検証、AWS WAF の統合、プライベート API エンドポイントなどの機能が必要な場合は、REST API を選択します。REST APIPrivateVPC内のみでアクセス可能なREST APIを生成します。A

Amazon

Lambda FunctionをCLIからデプロイ – TypeScript, Nodejs, Prisma, RDS Proxyの使用

はじめに参考https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/typescript-package.html#aws-cli-tshttps://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-intro-execution-role.htmlハマりポイントLambda関数からRDS Proxyに接続するには、LambdaをVPC内に設置する必要があるLambda関数のサブネット、セキュリティグループをRDS Proxyと合わせる必要があるVPC内のLambda関数からSecrets Managerに接続するにはVPCエンドポイントかインターネットアクセスが必要になるPrismaとProstgreSQLのテーブル名やENUMタイプ名は大文字・小文字や複数形まで名前をあわせる必要があるLambda関数のpermissionを設定する実行ロールには、EC2, CloudWatch, SecretsManage

その他

PostgreSQLの使い方メモ

search_pathsearch_path設定current_db=> SET search_path=users,orders,catalogs;SETsearch_path確認current_db=> show search_path; search_path ------------------------- users, orders, catalogsユーザーユーザー作成current_db=> create user {username};ユーザー更新current_db=> ALTER USER {username} WITH PASSWORD '{password}';ユーザー一覧current_db=> \du

Lang »