ホームページ  >  に質問  >  本文

AWS Aurora MySQL データベースはノード Lambda 関数でクエリできません

<p>Lambda 関数を使用して AWS Aurora MySQL データベースにデータを書き込もうとしています。 </p> <h3>コード</h3> <p>何らかの理由で機能しないようです。これまでのコードは非常に単純ですが、正しく実行されません。これは、ユーザーが Cognito に登録するときに呼び出される単純な Lambda 関数であり、ユーザーの認証情報を含む新しいエントリを SQL データベースに作成する必要があります。 </p> <pre class="brush:php;toolbar:false;">const mysql = require('mysql') const db = mysql.createConnection({ ホスト: "****"、 ポート: *****、 ユーザー: "*****", パスワード: "*****"、 データベース: "*****", }) import const lambdaHandler = async (event: any, context: any,) => { const ユーザー = { uid:event.request.userAttributes.sub、 ユーザー名:event.request.userAttributes.nickname、 電子メール:event.request.userAttributes.email、 } console.log("クエリ前") const query = `INSERT INTO users (Uid, Username, Email) VALUES (${user.uid}, ${user.username}, ${user.email})` await db.query(query, (err: any, result: any) => { if (err) console.error(err) console.log("クエリ応答: " 結果) }) console.log("クエリ後") リターンイベント。 };</pre> <p>関数の出力は次のとおりです。</p> <pre class="brush:php;toolbar:false;">START リクエスト ID: bb1d2143-97e4-4761-a48a-f482cf94f73b バージョン: $LATEST 2022-03-17T14:02:35.956Z bb1d2143-97e4-4761-a48a-f482cf94f73b クエリ前の情報 2022-03-17T14:02:35.961Z bb1d2143-97e4-4761-a48a-f482cf94f73b クエリ後の情報 終了リクエストID: bb1d2143-97e4-4761-a48a-f482cf94f73b REPORT RequestId: bb1d2143-97e4-4761-a48a-f482cf94f73b 初期期間: 0.14 ミリ秒 期間: 138.07 ミリ秒 請求期間: 139 ミリ秒 メモリ サイズ: 128 MB 最大使用メモリ: 128 MB</pre> <p>注: クエリ関数はログ レコードを見つけられませんでした (エラーをスローするか、応答をログに記録する必要があります)</p> <h3>戦略</h3> <p>Lambda 関数の実行ロールには次のポリシーが含まれています: <code>AWSLambdaVPCAccessExecutionRole</code> および <code>AWSLambda_FullAccess</code></p> <h3>その他</h3> <p>Lambda 関数と Aurora は、同じ VPC の異なるサブネットにあります。これが問題を引き起こすかどうかはわかりません。しかし、これにより関数がエラーをスローすることはないでしょうか? <code>missing authorization</code>のようなエラー? </p> <p>現時点では何が足りないのかわかりません</p>
P粉184747536P粉184747536421日前635

全員に返信(1)返信します

  • P粉960525583

    P粉9605255832023-08-26 13:59:33

    問題は、db.query が Promise スタイルではなくコールバック スタイルを使用していることです。 Promise を使用するには変換する必要があります。

    1 つの方法は、Util.promisify...

    を使用することです。 リーリー

    返事
    0
  • キャンセル返事