長野エンジニアライフ

東京から長野に移住したエンジニアのブログです。🦒🗻⛰

Invalid URL 'URL': No schema supplied. Perhaps you meant http://URL?の対処方法

事象

AWSのlambdaをテスト実行していたら。 以下のエラーが発生。

Response:
{
  "errorMessage": "Invalid URL 'URL': No schema supplied. Perhaps you meant http://URL?",
  "errorType": "MissingSchema",
....
....

原因

urlの指定は問題なかったが、lambda新規作成時の環境変数がうまく読み込めていなかった。

import requests
import os

def lambda_handler(event, context):
    res = do()
    # APIのURL
    url = "https://chickenvoice.herokuapp.com/api/do_tweet"
    # APIを叩く
    r = requests.get(url)
    print('success', r)

def do():
    res = requests.get(os.environ.get('URL')) ←こいつでアウチ
    return res

対応方法

誤った環境変数を参照している部分をコメントアウトして修正

import requests
import os

def lambda_handler(event, context):
    # res = do()
    # APIのURL
    url = "https://chickenvoice.herokuapp.com/api/do_tweet"
    # APIを叩く
    r = requests.get(url)
    print('success', r)

def do():
    # res = requests.get(os.environ.get('URL'))
    return res