alibaba cloud

Alibaba CloudのFunction Computeに環境変数を設定する方法

Function Computeに環境変数を設定するためにはtemplate.ymlにEnvironmentVariablesセクションを追加します。 例えば、NODE_ENV=productionを追加したいときはtemplate.ymlに以下を追加します。 EnvironmentVariables: NODE_ENV: production 以下はtemplate.…

HTTPSに対応したAlibaba CloudのAPI GatewayがAndroidでNetwork request failedする問題

API GatewayをHTTPS化したらreact-nativeのAndroidアプリからfetchできなくなってしまいました。 HTTPへのリクエストは成功するのですがHTTPSへのリクエストを送ると以下のエラーが出てしまいます。 TypeError: Network request failed at XMLHttpRequest.xh…

Alibaba CloudのAPI GatewayをHTTPS化する

独自ドメインを設定したAPI GatewayのエンドポイントをHTTPS対応させます。なお、Function Computeをバックグラウンドで動かしています。 基本は以下の公式ドキュメントを参考にしました。 jp.alibabacloud.com SSL証明書の取得 私はさくらのRapidSSLで取得…

Alibaba CloudのAPI Gatewayに独自ドメインを紐付ける

API Gatewayはデフォルトの状態で使うと1日に1000回のリクエスト制限があります。これを回避するにはFunction Groupに独自ドメインを設定しなければなりません。 ここではAPI Gatewayに独自ドメインを設定する方法について書きます。 asmsuechan.hatenablog.…

Alibaba Cloud API Gatewayのアクセス制限に気をつけよう

最終的にはドキュメントちゃんと読めって話ですが、Alibaba CloudのAPI Gatewayを使っているときに403で悩まされました。 以下のリクエストを送った時、API Gateway + Function ComputeのAPIから突然403が返ってくるようになりました。 $ curl -i -H "Conten…

Alibaba Cloud OSSでリサイズされた画像を取得する方法

例えば3000x1500の画像を400x200にして返すようにします。 イメージ処理から新しいスタイルを作成します。 固定幅とオートフィット高さを選択したら可変高さとなります。 これだけです。あとは画像のURLにパラメーターとしてドメイン名/sample.jpg?x-oss-pro…

react-nativeからalibaba cloud OSSにファイルをアップロードする

react-nativeからOSSにファイルをアップロードする方法を調べました。 イメージしやすいようにアップロード画面のスクショを貼っておきます。Sendボタンを押したらアップロードされます。 なお、画像の選択にはreact-native-image-pickerを使っています。 選…

OSSにbase64エンコードされた画像を保存する

base64の画像データをOSSに保存します。 これは20x20ピクセルの正方形画像をbase64エンコードしたものです。 iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACNklEQVQ4EeWTz0tUURTHP+/xnN7kZAjZkIYllpX0uxYtLBAiqIWioVAglIt+yeAigvAfaNOuRW6UIkiCIFwEQWmrC…

AliEaters meetup #6 に参加した

8/29にあった Alibaba Cloud Developers Meetup #6に参加しました。 togetterにまとめがあります。これを見たら雰囲気はわかると思います。 8/29 AliEaters Meetup#6 - Togetter 会場は霞が関にあるWeWork日比谷パークフロントです。行く途中に国会議事堂が…

ApsaraDB for RDSへのマイグレーション

sequelizeを使ってApsaraDB for RDSにマイグレーションを流します。 ApsaraDB for RDSはちょっとお金がかかって、日本リージョンは1日120円くらいです。1ヶ月だと4000円ですね。個人利用だと地味に効いてくる値段です。 準備 準備として以下を行います。多分…

Function Compute + API GatewayでGraphQLのAPIを作成する

アリババクラウドのFunction Compute + API Gatewayの構成のAPIでGraphQLを使います。 GraphQLとは エンドポイントごとに機能を持たせるのではなく、一つのエンドポイントに命令をPOSTしてその結果を得るようにしたものです。 具体例だとこんな感じになりま…

Function Compute + API GatewayでPOSTのエンドポイントを作る

アリババクラウド のFunction Compute + API GatewayでPOSTのエンドポイントを作ってリクエストボディを拾うのが大変でした。 今回のソースコード // index.js const atob = require('atob'); const createMessage = (parameters) => { // データを保存する…

Function Computeの自動テスト

Function Computeに対するテストはfc-helperのtestを使って行います。 ここではアクセスがあったらhello world!\nというbodyと200のステータスを返すエンドポイントを想定します。 // index.js const { hook } = require('fc-helper'); exports.handler = ho…

serverless frameworkを使ってFunction ComputeとAPI Gatewayにデプロイする

serverlessを使う github.com serverlessはlambdaなどの各サービスの上へ簡単にサーバレスなアプリケーションを作成/デプロイできるCLIツールです。ロゴがカッコいいですね。 serverlessのプラグインとしてアリババクラウドが出しているserverless-aliyun-fu…

タイムトリガーでFunction ComputeからSlackに投稿する

やること この記事ではFunction ComputeからSlackに投稿する最小のコードを紹介します。 関数、トリガーの作成 まずFunction Computeでタイムトリガーの関数を作成します。 以下のコードがFunction ComputeからSlackに現在時刻を投稿する最小の(多分)コード…

Function ComputeとAPI GatewayにTravis CIからデプロイする

GitHubにpushしたFunction Compute用のコードをTravis CIからfunを使ってデプロイします。 やること Function Compute用のjsファイルをTravis CIからFunction ComputeとAPI Gatewayに自動でデプロイします。 準備 以下を参考にしてまずローカルからfunを使っ…

OSSにTravisCIから自動アップロードする

Alibaba CloudのOSSにTravisCIから自動でアップロードします。 やること vue-cliで作成されたVue.jsのプロジェクトを、GitHubにプッシュされたらtravisでビルド後ossutil cp dist/ oss://test-cli --recursive -i xxxxxxxxxxx -k xxxxxxxxxxxxxxx -e oss-cn-…

OSSを操作するCLIツールのossutilを使う

Alibaba CloudのOSSの操作をossutilというCLIツールから行います。 ossutilのインストール GOPATHとPATHが正しく設定されていたらgo getするだけでossutilコマンドが使えるようになります。 $ go get github.com/aliyun/ossutil $ ossutil Usage: ossutil [c…

Vue.jsのプロジェクトをOSSに静的ホスティングする

Vue.jsで作ったプロジェクトをAlibaba CloudのOSSに静的ホスティングします。 OSSにバケットを作る OSSを開いてバケット作成をします。ここではACLを非公開から公開読み取りにする事に注意してください。 Vue.jsプロジェクトの作成 vue-cliを使って新しくvue…

IoT Platformを日本版Alibaba Cloudで使う

2018年7月にAlibaba Cloud日本版に登場したIoT Platformを使いました。 ざっくり説明 IoT Platformで管理しているデバイスに対してプッシュ型の通信ができます。 IoT Platformで出来ること IoT Platformでは現在以下のことができます。 デバイス管理 MQTTでp…

aliyun-log-cliの使い方

AlibabaCloudのLog ServiceをCLIから操作するツールであるaliyun-log-cliを使ってみます。 aliyunlogの設定 ドキュメントを参考にaliyunlogを設定します。 なお、ドキュメントのエンドポイントは間違っています(2018/07/20)。エンドポイントはこちらを参考に…

aliyun-log-cliのインストール方法

Alibaba CloudのLog SserviceのCLIツールであるaliyun-log-cliというものがあります。 User Guide — Aliyun Log Service CLI 0.1.13 documentation しかしaliyun-log-cliを使おうと公式ドキュメントのインストールガイドに従ったところ以下のエラーが出まし…

Function ComputeのログをLogServiceに吐き出す

やること Function ComputeのログをLog Serviceに出すようにします。 公式ドキュメント(「FC と LogService」)を参考にしましたが、ちょっと情報が古い気がするので自分なりに少し読み替えました。 jp.alibabacloud.com Function ComputeとLog Serviceの設定…

Function ComputeとAPI Gatewayのデプロイツールであるfunを使う

Alibaba CloudのFunction ComputeとAPI Gatewayを使ってサーバレスAPIを構築するときに便利なfunというツールを使います。 公式ドキュメントを参考にしますが、いまいちよく分からない部分がありますので(2018/07/16)、合わせてGitHubのリポジトリも参考にし…

TableStoreで自動インクリメントする

Alibaba CloudのTableStoreのAUTO_INCREMENTオプションを使って自動インクリメントするようにします。 nodejsで自動インクリメントするプライマリキーを持ったテーブルを作成します。 const TableStore = require('tablestore') const instanceName = 'tests…

TableStoreでテーブル内の全てのオブジェクトを取得する方法

プライマリキーに対してgetRange()メソッドを実行します。この時プライマリキーの範囲をTableStore.INF_MIN以上TableStore.INF_MAXにすることで全てのオブジェクトを取得することができます。 実はドキュメント通り。 複数行操作 - 開発ガイド| Alibaba Clou…

Function ComputeでサーバレスなSlack Botを作る

作るもの Alibaba CloudのFunction ComputeでサーバレスなSlack Botを作ります。 /my_echo [TEXT]と入力すると作ったBotが[TEXT]を返すechoのコマンドを作ります。 LambdaとSlack Botの連携をする公式ドキュメントを参考にしています。Slack側の設定はこちら…

FunctionComputeとTableStoreでサーバレスAPIを作る

FunctionComputeとTableStoreを連携します。 作るもの スマートフォンから送信された位置情報をTableStoreに保存するPOST: /locationsというエンドポイントをFunctionComputeで作ります。 エンドポイントはswaggerだとこんな感じになります。 /locations: po…

TableStoreの使い方

Alibaba CloudのNoSQLであるTableStoreを使います。 目標 以下に示すTableStoreの基本的な操作をnodejsから行います。 テーブルの新規作成 テーブル一覧の表示 行の作成 行の表示 複数行の表示 TableStoreとは Alibaba CloudのNoSQLデータベースのサービスで…