| サンプル集 |
|
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■WordPress ■PowerShell ■Python ■Flutter ■Rust ■other |
| Linuxコマンド |
| 用語集 |
| debian メモ |
| apache2 メモ |
| MySQL メモ |
| Oracle メモ |
| PostgreSQL |
| HOME |
API Gateway+LambdaでXML-RPCを使ってみます。
- API Gatewayの作成 (上手くいかなかった)
- Lambdaの作成
- クライアントの作成
- 実行
- アクセス権限変更
API Gatewayの作成
「APIを作成」をクリックします。

下にスクロールさせてREST API欄の「構築」をクリックします。

API名を入力し画面右下の「API を作成」をクリックします。

リソース欄の「リソース作成」をクリックします。

「リソースを作成」をクリックします。

メソッド欄の「メソッドを作成」をクリックします。

Lambda関数欄に関数名を入力したら無効というエラーが出ました。

先にLambda関数を作っておく必要がありそうです。
Lambdaの作成
Lambdaのページの「関数を作成」をクリックします。

「関数の作成」をクリックします。

Dismissをクリックします。

Lambdaが作成されました。
「+ トリガーを追加」をクリックします。

「追加」をクリックします。

エラーが出ました。

ステージを先に作っておかないとダメなようです。
「新規のAPIを作成」に変更します。

トリガーが作成されました。

トリガーのAPI Gatewayを開きます。

「APIの設定」をクリックします。

「バイナリメディアタイプを追加」をクリックし「text/xml」と入力し「変更を保存」をクリックします。

正常に更新されたようです。

「APIをデプロイ」をクリックします。

ステージを default を選択し「デプロイ」をクリックします。

正常にデプロイされたようです。

Lambdaでは受け取ったeventをbase64でデコードし処理します。
| lambda_function.py | ||
|
クライアントの作成
呼び元ではxmlrpc.clientを使ってXML-RPC呼び出しするようにしてみます。
| sendXmlRpc.py | ||
|
実行
Lambdaをデプロイしクライアントを実行してみます。
Result: Ohayou!!: Hello!!
期待通りに動作しました。
アクセス権限変更
API Gatewayのメソッドリクエストの設定の許可が「なし」になっているので「AWS IAM」に変更しておきます。
API Gatewayのリソースを選択しANYを選択しメソッドリクエストの設定の「編集」をクリックします。

メソッドリクエストの設定の許可の「AWS IAM」を選択し「保存」をクリックします。

API Gatewayをデプロイします。
再度クライアントを実行したところ403になりました。
Error: <ProtocolError for xxx.amazonaws.com/default/xmlrpc-lambda: 40
3 Forbidden>アクセスは遮断できているようです。
Copyright (C) 2025 ymlib.com
