問題タブ [ebextensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Elastic Beanstalk で github プライベート リポジトリ アクセス用の SSH キーを設定する
私の Node.JS プロジェクトには、github でホストされているプライベート NPM リポジトリへの参照が含まれています。これはローカルでは問題なく機能しますが、Elastic Beanstalk でこれを機能させるのに苦労しています。
-
私が必要としているのは、ソース管理に秘密鍵などを保存することなく、Elastic Beanstalk インスタンスで git 用に機能する SSH 構成をセットアップできることです。
明らかに、EB インスタンスには、プライベート github リポジトリにアクセスするために必要な SSH キーがありません。username:password@github.com
インラインでHTTPS スタイルの git URL を使用すると、正常に動作します。また、github が提供するoauth トークン メソッド(基本的には user:pass) を使用して動作します。しかし、資格情報をソース管理にチェックインさせたくないので、EB インスタンスで SSH 経由で github からクローンを作成しようとしています。
このブログ投稿npm preinstall
によると、スクリプトを含む何百万もの方法を試しました。これは、ツリーが構築された後に実行するように変更が preinstall される npm2 まで機能し、その問題を修正するための PR はまだ保留中です。
環境変数からの OAUTH トークンを使用して、git@github.com を HTTPS URL に配置する.ebextensions
ために呼び出すコマンド構成を試しました (この時点で環境変数が起動時に設定されていないため、それ自体がトリッキーです) $HOME の欠如は git config を混乱させます)。git config
insteadof
また、前述のブログ投稿のコメントからのこのソリューション.ebextensions
を含め、EB インスタンスで SSH をセットアップするために使用するさまざまな方法を試しました。これは基本的に私が今行き詰まっているところです。
- キー ペアを正常に作成し、それを github プロファイルに設定し、ローカル クライアントからプライベート キーを使用してリポジトリを複製できることを確認しました。
- 秘密鍵と ssh 構成ファイルをプライベート S3 バケットに配置しました
- この例に従って
.ebextensions
files
、これら 2 つのファイルを S3 バケットから にコピーする構成を作成しました。/tmp/.ssh/
commands
.ebextensions
/tmp/.ssh を一覧表示し、ファイルが S3 から正常にダウンロードされたことを示すデバッグ構成を作成しました。
/tmp/.ssh/config には以下が含まれます。
/tmp/.ssh/deploy_key には、ローカルで動作することが確認されている秘密鍵が含まれています。
ただし、git はまだエラーをスローします。
私は今、アイデアが不足しています。私の最善の推測では、/tmp/.ssh は git が ssh 構成ファイルを探すパスではありません。リンクされたソリューションが提案されたときだった可能性がありますが、後の AMI:s などで変更された可能性があります。使用される環境EBの起動時は少し制限されているようです。コマンドはユーザーとして実行されますnodejs
が、 $HOME がどこにも設定されていないにもかかわらず、 /tmp がホームディレクトリとして使用されているようです。
git に SSH 構成を取得させ、その結果として SSH キーを使用させるにはどうすればよいですか? git が SSH 構成ファイルを探す場所を見つけるにはどうすればよいですか? 通常は ~/.ssh にありますが、$HOME が設定されていないため、これは簡単なはずですが、気が狂いそうになります。
node.js - ノード JS - Elastic Beanstalk AWS - 書き込みアクセスを許可する
AWS Elastic Beanstalk にデプロイしている NodeJS アプリケーションがあります。これは、アプリケーション ディレクトリにある JSON ファイルに書き込むことができる必要があります。
これは現在ローカルで機能していますが、明らかに書き込み権限がないため、AWS にデプロイするときは機能しません。
EBEXTENSIONS に追加する必要があるものと、NodeJS Elastic Beanstalk アプリで書き込みアクセスを許可する方法を教えてください
ありがとう