[PYTHON] Eine Geschichte, die Qiita unbedingt in einer Proxy-Umgebung sehen wollte

Hintergrund

** In der Firma, für die ich arbeite, kann ich wegen eines Proxys nicht auf Qiita zugreifen. ** ** **

Wenn ich die Geschichte während einer Lernsitzung höre, höre ich, dass es ein Unternehmen mit einem unerwartet ähnlichen Umfeld gibt. Aber auf jeden Fall ** "Ich möchte Qiita in der Firma sehen !!" **

Eines Tages, als ich mich mit einer Person beriet, die an einer AWS-Studiensitzung teilnahm, kam mir eine gute Idee. Vor kurzem habe ich AWS studiert und es implementiert.

Gesamtbild

Der einfache Ablauf des erstellten Dienstes besteht darin, die Seiteninformationen der Qiita, die Sie anzeigen möchten, abzurufen und an einen Ort zu verschieben, auf den innerhalb des Unternehmens zugegriffen werden kann. Übrigens, wenn Sie in Ihrem Unternehmen nicht auf AWS zugreifen können, sind Sie unterwegs.

Service verwendet

Dieses Mal verwenden wir drei Hauptdienste in AWS. Eine ausführliche Erläuterung der einzelnen Dienste entfällt.

Verfassung

image.png

  1. GET-Anforderung an API, die die URL der Qiita-Seite akzeptiert, die Sie als Abfrageparameter anzeigen möchten
  2. Übergeben Sie die Abfrageparameter (Qiita-URL) an Lambda
  3. Greifen Sie von Lambda aus auf die Qiita-Seite zu und erhalten Sie den Markdown
  4. Markdown → In HTML konvertieren und als statischen Inhalt in S3 speichern
  5. Antwort mit der Ziel-URL des S3-Objekts als Umleitungsziel
  6. Weiterleiten zu S3

Die Anforderung lautet wie folgt, wenn der Artikel unter https://qiita.com/guromityan/items/5846fcefd87abcf76f7f angezeigt wird. Geben Sie unter "Ziel" die URL des Artikels an, den Sie sehen möchten.

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

Die Antwort sieht folgendermaßen aus:

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

Aufgrund von "sutatusCode": 301 "leitet der Browser, der ihn empfängt, zu der URL weiter, die im Header" Location "angegeben ist. Das Übergangsziel ist eine Seite, auf der das von Markdown in HTML konvertierte S3-Objekt als statischer Inhalt verfügbar gemacht wird.

Übrigens habe ich eine Chrome-Erweiterung erstellt und die URL zu Qiita neu geschrieben, um automatisch auf API Gataway zuzugreifen. Ich werde diese Geschichte eines Tages schreiben.

Weise

Worüber ich diesmal sprechen wollte, ist, dass ich eine solche Idee habe, daher werde ich die Erklärung zum Einrichten von AWS-Diensten weglassen.

Der Quellcode von Lambda wird unter [GitHub] guromityan / PreviewQiita veröffentlicht. Wenn Sie dies tun möchten, verwenden Sie ihn bitte.

** [Achtung] ** Um es mit Lambda zu verwenden, müssen Sie die abhängigen Bibliotheken zusammen komprimieren. Löschen Sie die abhängigen Bibliotheken also lokal mit "Docker-Compose Build".

Recommended Posts

Eine Geschichte, die Qiita unbedingt in einer Proxy-Umgebung sehen wollte
Eine Geschichte, die das Debuggen von Modellen in der Django + SQLAlchemy-Umgebung einfacher macht
Verwendung von pip3 in einer Proxy-Umgebung Hinweis
Eine Geschichte, von der ich bei np.where süchtig war
Docker unter Proxy-Umgebung
Erstellen wir eine Docker-Umgebung, in der Qiita-Trendinformationen gespeichert werden!
[Python] Eine Geschichte, die in eine Rundungsfalle zu geraten schien
Eine Geschichte, die ich süchtig danach war, Lambda von AWS Lambda anzurufen.
Ich habe versucht, eine Serverumgebung zu erstellen, die unter Windows 10 ausgeführt wird
Eine Geschichte, die Schwierigkeiten hatte, 3 Millionen ID-Daten in einer Schleife zu verarbeiten
Pip-Installation (Windows) unter Proxy-Umgebung
Wenn pip in einer Proxy-Umgebung ausfällt
Eine Geschichte, die von Azure Pipelines abhängig ist
Kurzreferenztabelle unter Proxy-Umgebung
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
Ein Hinweis, mit dem Sie die Python-Umgebung von Pineapple mit pyenv ändern können
Verwenden Sie den Befehl pip in einer HTTP-Proxy-Umgebung, für die eine Authentifizierung erforderlich ist
Eine Geschichte, die unter einem Unterschied im Betriebssystem litt, als sie versuchte, ein Papier zu implementieren