Severless frameworkとwp rest APIを使ってブログの投稿数を表示する

みなさんこんにちは、個別指導塾コミット塾長、AWESOME開発担当の船津です。

一昨日くらいからpythonを触りはじめました。
今回はserverless frameworkとwp-rest-apiを使ってユーザ別のブログ投稿数を取得してみます。

WP REST APIとは

wordpressの記事をhttps://awe-some.net/wp-json/wp/v2/posts?page=1のような形で取得することが出来ます。
公開したくない部分まで公開されてしまうこともあるので、使用できないようにするプラグイン等もでていますが、今回はせっかくなので使ってみます。

serverless frameworkとは

AWSやAzureに対応したフレームワークです
今回はAWSのlambdaとAPIgatewayを用いて簡単にアプリケーションを作ってみましょう。

やりたいこと

  • serverless frameworkとpythonを使って、lambdaとAPI gatewayを連携させる
  • wp rest apiを使ってブログの投稿者と記事数を取得する
  • 結果をslackに投稿する。

セットアップ

基本的にはクラスメソッド様の記事通りです。

  • 作業ディレクトリに移動して以下を実行します。

npm install serverless -g
sls create --template aws-python --name Serverless-test

モジュールをまとめてimportする設定を書く

普段pythonでimportを頻繁に使うと思いますが、lambdaではpipが使えないので、
npm install --save serverless-python-requirements
を入力して依存関係のあるライブラリをまとめてデプロイできるように設定します。

  • serverless.ymlの中身を以下のように変更します。

requirements.txtとrequirements.pyを作成する

  • ドキュメントや参考記事を見るとsls requirements installで作成されると書いてありましたが、作成されないので、公式レポジトリを参考に自作して、プロジェクトの一番上に置きます。

get,postを使うので、requestsを使います。

  • requirements.txt
requests
  • requirements.py

とりあえず実行してみる

ここまで上手くいけば、とりあえず以下のコマンドが実行できるはずです。
sls invoke local -f hello

Severless frameworkとwp rest APIを使ってブログの投稿数を表示する

デプロイしてみる

  • sls deploy
    パッケージもまとめてインストールされているのがわかると思います。

Severless frameworkとwp rest APIを使ってブログの投稿数を表示する

デプロイが完了するとエンドポイントが表示され、アクセスすることができるようになります。

Severless frameworkとwp rest APIを使ってブログの投稿数を表示する

関数を自作してみる

handler.pyの中身を以下のようにします。 中身は適当です。

テストしてみる

sls invoke local -f helloを実行するとローカルで関数のテストをすることができます。

特にエラーが出なければ、再度デプロイしてみましょう。

Severless frameworkとwp rest APIを使ってブログの投稿数を表示する

はい、問題なく投稿されていますね。

おわり

なんとなく使ってみたくてserverless frameworkに手を出してみましたが、意外と簡単でびっくりしました。
間違いなく、これからもっと使われるようになってくるでしょう。
僕も頑張って使いこなします。

Instagram Feed

Load More

Instagram

専務取締役

funatsukeisuke

WEBと教育を組み合わせて何かおもしろいことをやってやろうと画策しています。AWESOMEでは開発を担当、個別指導塾コミットでは塾長と2足の草鞋を履きながら日々勉強しています。

他の投稿を見る →