Google Apps Scriptを使ってみた

以前から気になっていましたが、個人的に今一番注目しているサービス、「Google Apps Script(以下GAS)」を使ってみたのでまとめておきます。 Google Apps Scriptとは Googleドライブ上で実行されるScriptで、様々なGoogleサービスと連携したり外部サービスにFetchできる。 また、その実行に関してはトリガーイベントやスケジューリングの設定が可能 コードはJavascriptがベース(npmは残念ながら非対応、Node.jsは使えない) 制約 主な制約については以下の記事に大変見やすくまとめられています。 https://shunsuk.com/gas-quotas/ 個人的に気になっていたのは、無料アカウントでの以下の点 URL Fetch コール数 20,000 / 日 URL Fetch レスポンスサイズ 50MB / コール URL Fetch POST サイズ 50MB / コール 無料枠でこれだけあれば十分、制約なんてあってないようなもんですね。 事前準備 Chromeでウェブストアから拡張機能を追加 https://chrome.google.com/webstore/detail/google-apps-script/eoieeedlomnegifmaghhjnghhmcldobl?hl=ja コードから実行まで https://script.google…

続きを読む

【AWS】S3へファイルアップロード(PHP)

以前書いた FuelPHPでファイルアップロード の続きで、Amazon S3へアップロードする部分をまとめます。 SDKセットアップ composerを使ってインストールします。 以下をcomposer.jsonに追加してcomposer installを実行 "aws/aws-sdk-php": "^3.99" S3へアップロードする処理 名前空間 use \Aws\Credentials\CredentialProvider; use \Aws\S3\S3Client; use \Aws\S3\Exception\S3Exception; 処理 // ①認証情報を取得 $provider = CredentialProvider::defaultProvider(); // ②S3Clientを生成 $s3client = new S3Client([ 'region' => 'ap-northeast-1', 'version' => '2006-03-01', 'credentials' => $provider, ]); foreach (Upload::get_files() as $file) { // ③URLを決定 $filename = 'images/'.$file['saved_as']; …

続きを読む

【PHP】多言語のデータをCSVに出力する

多言語のテキストを含むデータをCSVファイルに出力して、さらにエクセルで開いて編集したいという要件があったのでその時の対応メモ データのイメージとしては以下 $data = [ array( 'id' => 1, 'name_ja-JP' => 'テスト', 'name_en-US' => 'test', 'name_zh-CN' => '测验', 'name_ko-KR' => '테스트', ), array( 'id' => 2, 'name_ja-JP' => '茄子', 'name_en-US' => 'eggplant', 'name_zh-CN' => '雄狮', 'name_ko-KR' => '가지', ), ]; ダメなケース 処理 最初は以下のようなコードだった。 エクセルで編集という要件から、Shift-JISに変換して出力している。 $handle = fopen('data.csv', 'w'); foreach($data as $row){ array_walk($row, function(&$item){ $item = mb_…

続きを読む

Visual Studio CodeでSAMアプリケーション開発

Visual Studio Code(以下vscode)でSAMアプリケーション開発をする手順をまとめます。 前提条件 AWS-CLIインストール済み SAM-CLIインストール済み vscodeにAWS Toolkitをセットアップ vscodeを立ち上げてサイドメニューのEXTENSIONSからAWS Toolkitを検索 AWS Toolkit for Visual Studio CodeをインストールコレサイドメニューにAWSボタンが出てくればOK! 新規のSAMアプリケーションを作る サイドメニューのAWSをクリック 上段メニューから「Create new SAM Application」 Runtimeを選択(せっかくだからPython3.7を選択する) アプリケーションを配置する場所を選択 (→sam-test-2) アプリケーションの名前を入力 (→sam-test) SAMアプリケーションの作成が完了すると、template.yamlが開く AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > sam-test Sample SAM Template for sam-test # More info about Globals: http…

続きを読む

SAM-CLIでサーバーレスアプリケーション② - Lambda関数のデプロイ -

SAMアプリケーションのデプロイは ビルド → テスト(省略可) → パッケージング → デプロイ の順に行います。 ビルド $ sam build Building resource 'HelloWorldFunction' Running NodejsNpmBuilder:NpmPack Running NodejsNpmBuilder:CopyNpmrc Running NodejsNpmBuilder:CopySource Running NodejsNpmBuilder:NpmInstall Running NodejsNpmBuilder:CleanUpNpmrc Build Succeeded Built Artifacts : .aws-sam/build Built Template : .aws-sam/build/template.yaml Commands you can use next ========================= [*] Invoke Function: sam local invoke [*] Package: sam package --s3-bucket [yourbucket] .aws-sam/ にビルドされたモジュールが生成される 次に必要なコマンドを教えてくれる。(Commands you can use next) が、Invoke Functionはビルドした…

続きを読む

SAM-CLIでサーバーレスアプリケーション① - プロジェクトの作成とローカルでテスト実行 -

サーバーレスアプリケーションとは バックグラウンドで処理をするアプリケーション(いわゆるLambda関数) SAM-CLIとは AWSの提供するクライアント用SAMコマンド(Serverless Application Model - Client) ローカルでサーバーレスアプリケーションの作成やAWSへのデプロイができる また、Dockerと組み合わせればローカルでのテスト実行が可能 公式の詳細は以下 https://aws.amazon.com/jp/serverless/sam/ Qiitaの参考記事 https://qiita.com/te20/items/5a28cef4966c75886218 この記事ではSAM-CLIを使ってLambda関数をローカルで実行する手順を紹介します。 プロジェクト作成 $ sam init 以下のような構成でファイルが作られる。 sam-app/ ├── README.MD ├── event.json ├── hello-world │ └── app.js │ └── package.json │ └── tests │ └── unit │ └── test-handler.js ├── template.yaml ※もちろんオプションによりプロジェクトの細かい設定が可能 ※デフォルトで言語はnode.jsが選択される(この記事でもnode.jsを使用) 言…

続きを読む

【Bootstrap4】画面サイズによってスタイルを変更する

Bootstrapにより画面レイアウトが変わったら、適用するCSSも変更したい場面があるので、その方法です。 CSS @media only screen and (max-width: 991px) { /* 幅991px以下 */ body{ background: #0FF; } } @media only screen and (max-width: 766px) { /* 幅766px以下 */ body{ background: #F0F; } } @media only screen and (max-width: 575px) { /* 幅575px以下 */ body{ background: #FF0; } } media only screen … はメディアクエリと言ってCSS3で追加になった記述方法で、デバイスにあった書き分けを行うことができる。 ここでは max-width を指定して、それぞれの画面幅で専用のCSSをオーバーライドしている。 画面幅が1024pxのとき 画面幅が870pxのとき 画面幅が625pxのとき 画面幅が470pxのとき

続きを読む

スポンサーリンク