AWS AppSync + Amplify JavaScript + CustomResourcesで、既存のDynamoDBなどをDatasourceとしたリゾルバーを作成する

Amplify JavaScriptを使ってAWS AppSync APIを作成する場合、 amplify add api した直後はDynamoDBのテーブルが新規作成されます。 既存のDynamoDBを使いたい場合は、 amplify push でAPIをデプロイ後にAppSync Consoleにて内容を編集することもできます。 …

AWS AppSyncのリゾルバで、AWS CognitoのグループやHTTPリクエストヘッダを使った認可処理を書いてみた

前回、Schemaで @aws_auth や @ aws_cognito_user_pools などを使って認可処理を書いてみました。 AWS AppSyncのSchemaで、認証・認可系ディレクティブの @aws_auth や @aws_cognito_user_pools などを試してみた - メモ的な思考的な ただ、複数認証時に @aw…

AWS AppSyncのSchemaで、認証・認可系ディレクティブの @aws_auth や @aws_cognito_user_pools などを試してみた

AWS AppSyncのSchemaには、簡単にユーザー認証・認可を行える @aws_auth @aws_api_key @aws_iam @aws_oidc @aws_cognito_user_pools などのディレクティブが用意されています。 そこで、実際に試してみた時のメモを残します。 目次 環境 長いのでまとめ 認証…

usernameAttributesを使って、aws-amplify-vueのamplify-sign-inにあるusernameを変更する

AWS Amplify Framework (JavaScript) には、Vue.jsで使える便利な Vue Componentが用意されています。 Vue - AWS Amplify JavaScript https://github.com/aws-amplify/amplify-js/tree/master/packages/aws-amplify-vue ここには SignIn ConfirmSignIn SignU…

#awsxon #jawsug AWS Expert Online at JAWS-UG長野 (AppSync編) に参加しました

7/4に開催された、AWS Expert Online at JAWS-UG長野 (AppSync編) に参加しました。 AWS Expert Online at JAWS-UG長野 - connpass 会場はギークラボ長野でした。 また、資料などは後日公開されるとのことです。 最近AppSyncをさわっていたので、タイムリー…

AWS AppSyncのPipeline Resolverを使って、複数のDynamoDBの値をマージして返すAPIを作成してみた

前回・前々回と、単一のデータソースから値を取得するAWS AppSync APIを作成しました。 Pythonで、 AWS AppSyncのquery・mutation・subscriptionを試してみた - メモ的な思考的な Pythonで、AWS Lambda をData sourceに持つ AWS AppSync API を呼んでみた - …

Pythonで、AWS Lambda をData sourceに持つ AWS AppSync API を呼んでみた

前回、Data sourceがDynamoDBである AWS AppSync APIをPythonで呼んでみました。 Pythonで、 AWS AppSyncのquery・mutation・subscriptionを試してみた - メモ的な思考的な ただ、AWS AppSync のData sourceでは、DynamoDBの他 Amazon Elasticsearch AWS Lam…

Pythonで、 AWS AppSyncのquery・mutation・subscriptionを試してみた

最近 AWS AppSync にふれる機会がありました。 そこで今回は、AWS AppSyncのGraphQLインタフェースを使って、Pythonでquery・mutation・subscriptionを試してみましたので、メモを残します。 目次 環境 長いのでまとめ AWS AppSyncでAPIを作る mutationの実…

SSHトンネル内にSSHトンネルを通して、踏み台2つを経由した多段ポートフォワーディングをしてみた

踏み台の奥に目的のサーバがある環境では、踏み台経由のSSHトンネルを作り、多段ポートフォワーディングにてアクセスすることがあります。 そんな中、SSHトンネル1つだけでは接続できない環境がありました。 そこで、SSHトンネル内にSSHトンネルを通して、踏…

LaravelでCRUDのあるToDoアプリを作ってみた

Laravelを理解するために、CRUDのあるToDoアプリを作ってみました。 そこで、後で思い出しやすいよう、慣れているDjangoでの作り方も併記する形で、メモを残しておきます。 目次 環境 プロジェクトの作成 モデルの作成 テーブル定義 モデルとマイグレーショ…

#gdg信州 #io19jp Google I/O Extended 2019 in Shinshuに参加しました

6/1に開催されたGoogle I/O Extended2019 in Shinshuに参加しました。 Google I/O Extended 2019 in Shinshu - GDG信州 Google I/O Extended 2019 in Shinshu - connpass #gdg信州 #io19jp 会場入り pic.twitter.com/DZshFiWD1H— thinkAmi (@thinkAmi) 2019…

DjangoCongress JP 2019で発表するまでの準備を振り返ってみた #djangocongress

前回書いた通り、DjangoCongress JP 2019にて発表しました。 DjangoCongress JP 2019 去年も同じようなことを書いたのが、当時の様子を振り返るのに役立ったため、今年も残しておきます。 なお、CfPを出した時点の、自分のスペックは以下の通りです。あまり…

DjangoCongress JP 2019 に参加 & 発表しました #djangocongress

5/18に開催された、DjangoCongress JP 2019に参加 & 発表しました。 DjangoCongress JP 2019 昨年同様、開催場所はサイボウズ株式会社の東京オフィスでした。 東京オフィス アクセスマップ | サイボウズ株式会社 今年も良い感じの雰囲気でした。 自分の発表…

Windows10 + pyinstallerで、Djangoをexe化して配布可能にしてみた

最近、Windows10 + pyinstallerで、 WindowsでDjangoアプリを開発 開発したDjangoアプリを、別のWindows端末に配布 別のWindows端末にて、Djangoアプリを実行 をしました。 pyinstallerのWikiに方法が記載されていますが、いろいろとハマったため、メモを残…

GitLab CI + docker-reviewを使って、Markdownをtextlintしてからpdf化するCI環境を作ってみた

最近、Markdownからpdfを作る機会がありました。 pdf化を都度行うのは手間だったため、何か良い方法がないかを探したところ、 Markdown > Re:VIEW > pdf という経路でpdfを作成できそうでした。 ただ、手動でpdfを生成するのが手間だったため、GitLab CIを使…

#stapy #glnagano みんなのPython勉強会 in 長野#3に参加しました

3/23にギークラボ長野で開かれた「みんなのPython勉強会 in 長野 #3」に参加しました。 みんなのPython勉強会 in 長野 #3 - connpass 今回は、トークセッションともくもく会の2本立てでした。資料は上記のconnpassにまとまっています。 長野県内はもちろん、…

Python3.4 & Django1.8な個人アプリを、Python3.7 & Django 2.1 へとアップデートした

以前、食べたリンゴの割合をグラフ化するHerokuアプリを作りました。 Python + Django + Highcharts + Herokuで食べたリンゴの割合をグラフ化してみた - メモ的な思考的な Python3.4 & Django1.8な環境で作成した2015年以降、食べたりんごの種類を記載してい…

HerokuのCedar-14に、Python3.7系アプリをデプロイしたらエラーになった

昔作成したHerokuアプリのPythonが3.4系だったため、Python3.7系で動作するようにアプリを修正し、Herokuへデプロイしたところ、 $ git push heroku feature/migrate-to-django2:master Enumerating objects: 171, done. Counting objects: 100% (171/171), …

pytestを4系にアップデートしたら、pytest-freezegun 0.2.0 でエラーが出た

Pythonで日付まわりをテストする場合、日付を固定できる freezegun が便利です。 spulec/freezegun: Let your Python tests travel through time また、pytestの場合、pytestのプラグインとして pytest-freezegun があります。 ktosiek/pytest-freezegun: Ea…

macOS + postgresqlでエラー「dyld: Library not loaded」が出た

macOS + PostgreSQLで環境構築したところ $ psql dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Referenced from: /usr/local が出たため、対応した時のメモです。 目次 環境 調査 対応 環境 macOS 10.13.6 (High Sierra) Hom…

Python + Zeep にて、SOAPの wsi:swaRef でファイルを送信する

前回、swaRef にて、SOAPでファイルを送信してみました。 Python + Zeep にて、SOAPのswaRef でファイルを送信する - メモ的な思考的な 今回は、wsi:swaRefという仕様でファイルを送信してみます。 仕様書 Attachments Profile - Version 1.0 (Final) Attach…

Python + Zeep にて、SOAPのswaRef でファイルを送信する

以前、SOAP with Attachments (SwA) にて、SOAPでファイルを送信してみました。 Python + Zeep にて、SOAP with Attachment (SwA) でファイルを送信する - メモ的な思考的な 今回は、SwAに似た swaRefという仕様でファイルを送信してみます。 仕様書:SOAP M…

WSDLのelementにattributeを追加し、Python + ZeepでSOAPのエンベロープを作成する

swaRefの仕様書を眺めていたところ、 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <claim:insurance_claim_auto id="insurance_claim_document_id" xmlns:claim="http://schemas.risky-stuff.com/Auto-Claim"> </claim:insurance_claim_auto></soap-env:body></soap-env:envelope>

Python + Zeep にて、SOAP with Attachment (SwA) でファイルを送信する

前回、inline (Base64エンコード) にて、SOAPでファイルを送信してみました。 Python + Zeepにて、SOAPのinline(Base64エンコード)でファイルを送信する - メモ的な思考的な 今回は、SOAP with attachments (以降、SwA) でファイルを送信してみます。実装に…

Python + Zeepにて、SOAPのinline(Base64エンコード)でファイルを送信する

SOAPでファイルを送信する方法を調べたところ、5つほど見つかりました。 inline (Base64 エンコード) SOAP with Attachments (SwA) swaRef wsi:swaRef MTOM 参考:SOAP Attachments and Files | SoapUI Zeepではどれが実装されているかを調べたところ、eleme…

2018年の振り返りと2019年の目標

例年通り、2018年の振り返りと2019年の目標っぽいものを書いてみます。 2018年の振り返り 2017年の振り返りと2018年の目標 - メモ的な思考的な で立てた目標を振り返ってみます。 Pythonを通じて、いろいろな分野の基礎固め Blogを振り返ってみると、いろい…

Python3で、bytes型の文字列にstr型の文字列を埋め込むため、%演算子 + %a を使う

Python3では、文字列表現として str型 bytes型 の2つの型があります。 通常はstr型を使うのですが、データ通信などではbytes型を使ったりします。 両者は別モノなので、 $ python Python 3.7.1 (default, Dec 19 2018, 21:58:12) [Clang 10.0.0 (clang-1000.…

GCP Cloud Functions + Python + Slack Outgoing WebHooks App + Zaim APIで、SlackからZaimへ登録する

最近、 Zaim を使って家計簿をつけています。 https://zaim.net/ ただ、時々入力を忘れたり、重複入力してしまうことがありました。 そこで、 日頃Slackを使っている ZaimにはWeb APIがある ということから、SlackからZaimのデータを登録する仕組みを作りま…

Python 3.6.4で、pip install python-memcached==1.58 したところ「tuple index out of range」エラー

python-memcachedの環境構築をする時に # 仮想環境を作る $ python -m venv env364 # アクティベート $ source env364/bin/activate # Pythonのバージョンを確認 (env364) $ python --version Python 3.6.4 # pipでインストール (env364) $ pip install pyth…

Python + msoffcrypto-toolで、Excelの読み取りパスワードを解除する

前回、Python + openpyxlで、ブックやシートの保護・解除を試しました。 Python + openpyxlで、ブックやシートの保護・解除を試してみた - メモ的な思考的な その際、openpyxlではExcelの読み取りパスワードを解除できませんでした。 ただ、読み取りパスワー…