Azure Container Appsの従量課金ワークロード プロファイルをbicepでプロビジョニング

最近は今後の開発作業を効率的に進めるために、CI/CD/IaC用の基盤(サンプル?)的なものを作ったしてます。今までやりたいなと思っていても、様々な理由で取り組めていなかったことも色々盛り込んでいるので、諸々知見が溜まってきました。今回は、その中からC…

Azure Database for PostgreSQLでCDCを試してみる

最近開発しているサービスがだんだん成長してきて、先々を考えるといくつかのサービスに分離したいなーと思いChange Data Capture (CDC)について色々と調べていました。 MySQLでの構築については、この記事DebeziumでCDCを構築してみたがとても丁寧に解説さ…

Github Actions で Azure Container Apps の B/G Deployを設定する

先日、現在開発をしているサービスのQueue workerの一部をAzure Container Appsに移行しました。とても使いやすいのでメインのAPIの移行準備として、Github Actions使用したB/Gデプロイの実験をしてみました。 サンプルコードの準備 今回実験用にデプロイす…

CakePHPのschemaからtypescriptのinterfaceを吐きだすプラグインをかいた

小ネタです。 最近は相変わらずCakePHPでAPIを書いて、nextjsでフロントのアプリを書くサイトばかり作っているのですが、API側で定義したAPIレスポンスデータをフロント側用にinterfaceを書くのがだるいのでプラグインを書いた話です。 TsExport plugin for …

Azure Web PubSubのnegotiateをPHPで実装してみる

最近書いているとあるサービスでリアルタイム更新をしたいと思い、Azure SignalR ServiceとAzure Web PubSubを試してます。 クイックスタートを参考にすれば、Azure Functionsで割と簡単に動作を試せます。 今回のサービスのバックエンドAPIはPHPで書かれて…

CakePHP4用のOpenApi bake theme pluginを公開しました

最近は久々にガッツリPHPのコードを書いているわたなべです。 このところ、仕事でもプライベートでもPHPでAPIを書いて、Next.jsでフロントのWebアプリを書くことがほとんどです。 この場合API仕様は以前ブログにも書きましたが、swagger-phpのアノテーション…

ExportしたApp Service 証明書にパスフレーズをつける

管理を手伝っている、友人のサイトでApp Service 証明書を移行する必要があってちょっとハマったので備忘録。 App Service 証明書のExport CloudShellから以下のコマンドで、Exportできます。 $ az keyvault secret download \ --file appservicecertificate…

CakePHP4でRoutingのテスト

最近React+TypeScriptばかりで、CakePHPのコードはあまり書いていないわたなべです。 Routingのテスト CakePHP1の頃の新原さんのブログ(なんと2009-05-25の記事、11年前!?)でも書かれているように、routes.phpの設定変更は、思わぬバグを出す可能性があるの…

Github ActionsでMultiContainerなAzure WebApp for Containersをデプロイする

友達に頼まれて、@kunyamiさんのスライド 堅牢&運用楽々な WordPress を Azure App Service でを参考に、WordpressをMultiContainerなAzure WebApp for Containersで構築してたのですが、いくつかハマったのでメモとして残します。 基本的な設定は、@kunyami…

PCOVでコードカバレッジ取得を高速化

この記事はCakePHP Advent Calendar 2019の21日目の記事です つい先日、ついにCakePHP 4.0がリリースされましたが、CakePHP 4.0で利用しているテスティングフレームワークはもちろんPHPUnitです。CakePHP3では、PHPUnit 6.0系を使っていましたが8.5.0に更新…

PHPでSAS tokenを使ってAzure Blob Storageにファイルをアップロードする

現在開発中の案件で、Shared Access Signature(SAS)を使ってBlobにデータを上げる必要があって、若干ハマったのでメモ。 先日プレビュー版がリリースされた user delegation SASってのもありますが、今回はストレージアカウントのキーを使う感じで。user d…

Azure DevOpsのself hosted agentを試してみた

暑いので快適な仕事部屋で、CodeCoverageと戦っているわたなべです... self hosted agent試すことになった理由 現在開発中の案件では、Azure DevOpsを利用して、CI/CD環境を構築しています。バックエンドはPHPで開発していて、UnitTestを結構しっかり書いて…

PHPでも簡単 Azure Application Insights

先月末に開催された、de:code 2019でMVP パーソナル スポンサーとしてPHP用のライブラリを公開しました。 Azure Application Insights docs.microsoft.com Application Insights は、上記のページにも書かれている通り、複数のプラットフォームで使用できる …

Azure Kubernetes Service (AKS)の構築とAzure DevOpsを使用したCI/CD pipelineの作成

昨年11/9,10に開催された寺田さん(https://twitter.com/yoshioterada)によるMVP受賞者向けAKSハッカソンに参加したご縁で、1/21-25にAKS/Azure DevOpsのワークショップを開催していただきました。 本日はCloud Developer Advocate @yoshioterada 氏によるMVP…

Azure DevOpsを使って、PHPコンテナをWeb App for Containersに簡単デプロイ

何度もつぶやいたことがある気がするけど、予定が詰まっているときに限って仕事と関係ないコードを書いてしまい、結局ブログまで書き始めてしまった渡辺です。 2019-03-03追記 記事執筆時点ではDeploy to slotが正常に動作しなかったのですが、Azure App Ser…

Git submoduleを含むサービスをAWS CodePipelineで扱う

新しい職場もあっという間に半年経ちますが、おかげさまで元気で毎日忙しい日々を過ごしているAWS初心者のわたなべです。 AWS CodePipeline 現在いくつかの案件を並行して進めているのですが、その中で知人が在籍している某スタートアップのインフラ改善支援…

Ansibleでプロビジョニング時にMackerelのグラフアノテーションを追加する

相変わらず、忙しいのに仕事と関係ないコード書いたり、ブログ書いたりしたくなって困っているわたなべです。弊社ではほとんどの案件でサーバーの環境設定にAnsible、デプロイにはCapistranoかAnsistrano、監視にはMackerelを使っています。で、表題の通りな…

basercmsコンテナをciecleciで自動ビルドするようにしました

先日の以下の記事でbasercmsのコンテナを作った話を書きました。 kaz29.hatenablog.com で、いくつか中の人に指摘された点をなおして一安心していたら、新しいバージョンがリリースされていました。 basercms.net ということで、baserCMS 4.0.9に対応させた…

baserCMSをdocker化したついでに、Web App for Containers + Azure Database for MySQLでも動くようにした話。

少し前に、baserCMSの中の人と飲みに行った時に、baserCMSをdockerで動くようにしたらいいよ!と言ったところ、じゃぁかずさんやってねヨロシク!と言われてしまったので、作りました。 https://hub.docker.com/r/kaz29/basercms/ github.com で、最近Web Ap…

Azure FunctionsをMacで動かせるようになったよ!

最近、仕事でもプライベートでも色々あってワタワタしているわたなべです。 めっちゃ忙しい最中だったのですが、昨日は以下のイベントに参加してきました。 www.meetup.com このイベントの中で、MSの牛尾さんがMacにインストールしたAzure Functionsでデモを…

Azure FuncsionsでChatworkへの書き込みをSlackに通知させてみた

今開発中の案件で、お客さんの使っているチャットツールがChatworkだった。前からお付き合いのある担当者さんは弊社のSlackに招待してそこでやり取りしているのですが、他のメンバーさんにSlackを強制するのが若干無理目な状況でした。Chatworkは常用してい…

SQL Server on Linuxを入れてみた

Linuxに対応したSQL Serverの時期バージョンがパブリックプレビューになったので早速入れてみた。SQL Server v.Next—SQL Server on Linux | Microsoft インストール環境 今回は手元のmacOS Sierra + Vagrant 1.8.7 環境に構築してみました。今後何かで使うか…

AlamofireのRequest Paramater エンコードをカスタマイズする

最近、PHP(CakePHP2,CakePHP3,Lumen)、iPhoneアプリ(Objective-C,Swift)とAndroidアプリの運用をしていて頭ん中がカオスになっているわたなべです。とある趣味アプリで、Alamofireを使って某APIを使おうとしてハマったのでメモっときます。 AlamofireのReque…

Ansible2.1がARMに対応したので"少しだけ"試してみた #2

先日、Ansible2.1でARMを試した記事を書きましたが、その後もう少し深くいじってみました。kaz29.hatenablog.com前回はリソースグループを作っただけでしたが、今回は、牛尾さん(id:simplearchitect)の以下の記事でTerraformを使ってやっていることをなぞっ…

Ansible2.1がARMに対応したので"少しだけ"試してみた

Ansible2.1が発表された記事がFacebookに流れてきたので、何気に眺めていたらARM(Azure Resource Manager)のサポートが追加されたらしいので少し試してみた。 Broader support for Microsoft Azure, expanding Ansible’s support for hybrid cloud deploymen…

swaggerでAPIドキュメントを書いたらめっちゃはかどった話

Swaggerは、REST APIの仕様とそれに関連するツール群の総称です。REST APIの仕様を定義したJSONファイル(Swagger Spec)を軸に以下のようなツールから構成されています。 Swagger UI - Swagger Spec から動的にAPIドキュメントを生成するツール Swagger Edito…

ErrorTypeをNSErrorにキャストするとuserInfoが消えてしまう問題の対策

Swiftを使い始めてそろそろ4w位経ちますが、まだまだ細かく引っかかることが多くて若干発狂気味なわたなべです。今開発中のアプリで使う為に、Swift2+Alamofire+PromiseKit3でアプリの基盤的なものを作っているのですが、ErrorTypeをNSErrorにキャストすると…

Xcode7にしてちょっと困ったこと

アプデ作業がようやく落ち着いたので、Xcode7を入れて実験中のアプリを動かそうと思ったら、ハマったのでメモ PromiseKitがコンパイルエラー Swift2になった影響で、PromiseKitのコンパイルがエラーになってしまいす。現在対応中のようでCocoapodsには対応バ…

CakePHPでもChatOps

ここ2週間ほど、追い込みで自宅に引きこもっていたわたなべです。 ChatOps 去年の夏ころから弊社でもSlackを使っていて、いま開発中の案件でも開発中の様々なイベントがSlackに流れてくるようになっています。いま連携してるのはこんな感じ。 Github Pivota…

「CakePHPで学ぶ継続的インテグレーション」- CakePHPを使って継続的インテグレーションを実践するながれを解説した書籍が出版されます

一部の方には事前にお話していましたが、わたしも共著で執筆に参加した「CakePHPで学ぶ継続的インテグレーション」という、CakePHPを使って継続的インテグレーションを実践するながれを解説した書籍が9/19にインプレスから出版されます!CakePHPで学ぶ継続的…