TypeError: “Only absolute URLs are supported”が出た時の対処法

技術メモ

AWS AmplifyのFunctionsでバッチ処理を実装していたところ、Lambda実行時に以下のエラーが発生しました。

TypeError: "Only absolute URLs are supported"

URLが絶対パスになっていないから怒られているようです。urlをハードコードしろということ??

原因を探ってみると、ソースコード上に記載の環境変数がLambdaコンソールに設定した環境変数と異なっていたことが分かりました。

const { GraphQLClient, gql } = require('graphql-request')
    const graphqlClient = () => {
      return new GraphQLClient(
        process.env.API_GRAPHQLAPIENDPOINTOUTPUT,//LEARNIBOTAPI_が抜けている!!
        {
          headers: { 'x-api-key': process.env.API_LEATNBOTAPI_GRAPHQLAPIKEYOUTPUT },
        }
      )
    }

Lambdaコンソール

ソースコードで存在しない環境変数を参照しているため、URLを取得できずエラーが発生していたということですね。

以下のようにソースコードを修正し、Lambdaコンソールの環境変数(Amplifyが自動で設定してくれた)を誤字脱字なく指定するとエラーは解消しました。

const { GraphQLClient, gql } = require('graphql-request')
    const graphqlClient = () => {
      return new GraphQLClient(
        process.env.API_LEANRBOTAPI_GRAPHQLAPIENDPOINTOUTPUT,//抜けていたLEARNIBOTAPIを追加!!
        {
          headers: { 'x-api-key': process.env.API_LEATNBOTAPI_GRAPHQLAPIKEYOUTPUT },
        }
      )
    }

あとがき

環境変数の指定ミスによるエラーが多いため、自戒の念も込めてメモを残しておきます。

コメント

タイトルとURLをコピーしました