LoginSignup
0
1

More than 3 years have passed since last update.

プロキシ環境下でどうしても Qiita が見たかった話

Last updated at Posted at 2020-02-02

背景

私が働く会社では、プロキシに阻まれて Qiita にアクセスすることができません。

勉強会なんかで話を聞いていると、意外と同じような環境の会社があることを聞きます。
でも、どうしても 「 会社でQiitaが見たい!! 」

こんな悩みをある日、AWS の勉強会に参加されていた方に相談をしたら、いいアイデアを頂きました。
最近、AWS の勉強もしていたので実装してみました。

全体像

作成したサービスの簡単な流れとしては、見たい Qiita のページ情報を抜いてきて、社内からでもアクセスできるところに配置し直す感じです。
ちなみに、社内から AWS にアクセスできない場合は、アウトです。

使用したサービス

今回、AWS で使うサービスは主に 3 つです。各サービスの詳細な説明は割愛します。

構成

image.png

  1. 見たい Qiita のページの URL をクエリパラメータとして受け付ける API に GET でリクエスト
  2. クエリパラメータ(Qiita の URL)を Lambda に渡す
  3. Lambda から Qiita のページにアクセスし、Markdown を取得
  4. Markdown → HTML に変換し、S3 に静的コンテンツとして保存
  5. S3 オブジェクトの保存先 URL をリダイレクト先としてレスポンス
  6. S3 にリダイレクト

リクエストは、https://qiita.com/guromityan/items/5846fcefd87abcf76f7f の記事を見る場合は以下のようになります。
target で、見たい記事の URL を指定します。

https://<API Gateway>.ap-northeast-1.amazonaws.com/previewQiita?target=https://qiita.com/guromityan/items/5846fcefd87abcf76f7f

レスポンスは以下のようになります。

{
  "statusCode": 301,
  "headers": {
    "Location": "https://<S3 Bucket>.s3-ap-northeast-1.amazonaws.com/guromityan/5846fcefd87abcf76f7f"
  }
}

"sutatusCode": 301 のため、これを受け取ったブラウザは Location ヘッダに指定された URL にリダイレクトします。遷移先は、Markdown から html に変換した S3 オブジェクトを静的コンテンツとして公開しているページです。

ちなみに私は、Chrome の拡張機能を作って Qiita への URL を自動的に API Gataway を叩くように書き換えています。その話もいつか書こうと思います。

やり方

今回話したかったのは、こんなアイデアもあるんだということなので AWS のサービスの設定方法の説明は割愛します。

Lambda のソースコードは [GitHub] guromityan/previewQiita で公開しておくので、やりたい方は使ってみてください。

[注意]
Lambda で使うには依存ライブラリもまとめて zip で固める必要があるため、docker-compose build などしてローカルに依存ライブラリを落としてきてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1