Posts

Rancher Desktop の設定について

  • POST
普段個人で開発している時は Docker Desktop を使用しているが仕事で使用する場合には従業員数等で有償となる そのため、代替ツールとして Rancher Desktop を調査した結果を備忘録として残しておく 設定について 以下の設定を変更することで動作が速くなる可能性がある Preference - Virtual Machine - Emulation Virtual Machine Type に、VZを指定する 右側に出る、VZ Option の Enable Rosetta support にチェックを入れる Rosetta で動作しているか確認 下記コマンドで ubuntu に入り、 ps -ef を実行して、/mnt/lima-rosetta/rosetta と表示されていることを確認 docker run -it --platform linux/amd64 ubuntu # ps -ef Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 445a6a12be2b: Pull complete Digest: sha256:aabed3296a3d45cede1dc866a24476c4d7e093aa806263c27ddaadbdce3c1054 Status: Downloaded newer image for ubuntu:latest root@0f03298c4ad5:/# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 3 03:46 pts/0 00:00:00 /mnt/lima-rosetta/rosetta /bin/bash root 9 1 0 03:46 pts/0 00:00:00 /usr/bin/ps -ef Preference - Virtual Machine - Volumes 「Preferences」ボタンを押下 Virtual Machine > Volumes > Mount Type を以下に変更する Mount Type: virtiofs Preference - Application - Administrative Access 「Preferences」ボタンを押下 Application > General > Administrative Access を以下に変更する Allow to acquire administrative credentials(sudo access) これにチェックをしないとユーザ権限で実行された際に docker.sock が unix:///Users/«User Name»/.rd/docker.sock に作成される そのため Docker Default の /var/run 配下に作成されなくてエラーになるパターンがある 確認のチェックは Without のためチェックを入れずに「OK」ボタンを押下する!

Visual Studio Code Dev Containers での開発環境構築について

  • POST
Visual Studio Code Dev Containers での開発環境構築について調査した結果を備忘録として残しておく Dev Containers について 以下のような構成になる Architecture Containers 引用元: https://code.visualstudio.com/docs/devcontainers/containers 以下のようなメリットがある プロジェクトごとのミドルウェアなどをコンテナに閉じ込めることができる ホスト環境を汚さない VS Code の Extention もコンテナに閉じ込められる 環境構築を自動化できる 新規に作成したり、別のPCでの作り直しが簡単 環境構築について 前提条件 VS Code で以下の Extention をインストールする Remote Development Dev Containers ※テンプレートを使用する場合 Docker Docker Desktop or Rancher Desktop 実際の例 新規で作成する場合 VS Code の左下の「><」ボタンを押下 「新しい開発コンテナー…」 を選択 ベースとなる設定を選択する 基本的には Dockerfile or Docker Compose の話になるのでそちらに慣れていれば問題なくできると思われる テンプレートの使用 コマンドパレットで「Add Dev Container Configuration Files…」を選択 「ワークスペースに構成を追加する」を選択 「すべての定義を表示…」を選択 以降は新規で作成する場合と同様 4-1. ℹ️を押下することでテンプレートの使い方やカスタマイズ方法が表示される Tips ホスト側の DB クライアントから接続したい場合 以下の2つのファイルの設定を修正する必要がある 参考

Amazon Cognito のユーザプールのバックアップおよびリストアを行う方法

  • POST
Amazon Cognito のユーザプールのバックアップおよびリストアを行う方法について調査した内容を備忘録として残しておく 方法 以下の2つの方法が考えられる Cognito User Profiles Export リファレンスアーキテクチャ Lambda でユーザプールの一覧を取得して csv で出力して S3 に保存する ※リストアはユーザ CSV インポート機能で行う 実際のコード const { stringify } = require("csv-stringify/sync"); module.exports = async (params) => { const csvString = stringify(params, { header: true, quoted_string: false }) return csvString; }; const { CognitoIdentityProvider } = require("@aws-sdk/client-cognito-identity-provider"); const cognito = new CognitoIdentityProvider(); module.exports = async (param) => { let cognitoUsers = new Array(); let cognitoData; try { let params = { UserPoolId: process.env.USER_POOL_ID, }; let paginationToken = ""; while (paginationToken !== undefined) { cognitoData = await cognito.listUsers(params); paginationToken = cognitoData.PaginationToken; params.PaginationToken = paginationToken; if (cognitoData.Users.length > 0) { cognitoData.Users.forEach((user) => { // ① を参照 let userAttributes = {}; userAttributes["email"] = (user["Attributes"].find(attr => attr["Name"] === "email") || {})["Value"] || ""; userAttributes["email_verified"] = (user["Attributes"].find(attr => attr["Name"] === "email_verified") || {})["Value"]; userAttributes["cognito:mfa_enabled"] = "FALSE"; userAttributes["cognito:username"] = userAttributes["email"]; cognitoUsers.push(userAttributes); }); } else { console.error("登録ユーザーが存在しません。"); return cognitoUsers; } } } catch (error) { console.error(error); return cognitoUsers; } return cognitoUsers; }; ※① CSV ファイルヘッダーのダウンロード (AWS CLI)で必要な項目を取得して設定する