AWS API Gateway CLI
実行環境
Ubuntu 16.04 LTS
1. 新しい API を test という名前で作成
code:invoke01.sh
API_NAME="test"
code:invoke02.sh
aws apigateway create-rest-api \
--name $API_NAME \
--region ap-northeast-1
code:response02.txt
{
"apiKeySource": "HEADER",
"name": "test",
"id": "vaz7da96z6",
"createdDate": 1552024023,
"endpointConfiguration": { "types": "EDGE" } }
code:invoke03.sh
REST_API_ID="vaz7da96z6"
2. 作成された API の root のリソース ID を取得
code:invoke04.sh
aws apigateway get-resources \
--rest-api-id $REST_API_ID \
--region ap-northeast-1
code:response04.txt
{
"items": [
{
"path": "/",
"id": "begaltmsm8"
}
]
}
code:invoke05.sh
ROOT_RESOURCE_ID="begaltmsm8"
3. root 直下に hoge という名前で新しいリソースを追加
code:invoke06.sh
NEW_RESOURCE_NAME="hoge"
code:invoke07.sh
aws apigateway create-resource \
--rest-api-id $REST_API_ID \
--region ap-northeast-1 \
--parent-id $ROOT_RESOURCE_ID \
--path-part $NEW_RESOURCE_NAME
code:response07.txt
{
"path": "/hoge",
"pathPart": "hoge",
"id": "6sxz2j",
"parentId": "begaltmsm8"
}
code:invoke08.sh
RESOURCE_ID="6sxz2j"
4. 作成されたリソースに GET メソッドを追加する(誰でもアクセス可能 & テンプレートマッピングの指定なし)。
code:invoke09.sh
aws apigateway put-method \
--rest-api-id $REST_API_ID \
--resource-id $RESOURCE_ID \
--http-method GET \
--authorization-type "NONE" \
--region ap-northeast-1`
code:response09.sh
{
"apiKeyRequired": false,
"httpMethod": "GET",
"authorizationType": "NONE"
}
5. API を削除する
code:invoke10.sh
aws apigateway delete-rest-api \
--rest-api-id $REST_API_ID
まとめ
code:create-rest-api.sh
API_NAME="test"
aws apigateway create-rest-api \
--name $API_NAME \
--region ap-northeast-1 \
| jq ".id" \
| sed 's/"//g' \
${API_NAME}.rest-api-id.txt
code:get-root-resource.sh
API_NAME="test"
REST_API_ID=cat ${API_NAME}.rest-api-id.txt
aws apigateway get-resources \
--rest-api-id $REST_API_ID \
--region ap-northeast-1 \
| sed 's/"//g' \
${API_NAME}.root.resource-id.txt
code:create-resource.sh
API_NAME="test"
NEW_RESOURCE_NAME="hoge"
REST_API_ID=cat ${API_NAME}.rest-api-id.txt
ROOT_RESOURCE_ID=cat ${API_NAME}.root.resource-id.txt
aws apigateway create-resource \
--rest-api-id $REST_API_ID \
--region ap-northeast-1 \
--parent-id $ROOT_RESOURCE_ID \
--path-part $NEW_RESOURCE_NAME \
| jq ".id" \
| sed 's/"//g' \
${API_NAME}.${RESOURCE_NAME}.resource-id.txt
code:put-method.sh
API_NAME="test"
NEW_RESOURCE_NAME="hoge"
REST_API_ID=cat ${API_NAME}.rest-api-id.txt
ROOT_RESOURCE_ID=cat ${API_NAME}.root.resource-id.txt
aws apigateway put-method \
--rest-api-id $REST_API_ID \
--resource-id $RESOURCE_ID \
--http-method GET \
--authorization-type "NONE" \
--region ap-northeast-1
code:delete-rest-api.sh
API_NAME="test"
REST_API_ID=cat ${API_NAME}.rest-api-id.txt
aws apigateway delete-rest-api \
--rest-api-id $REST_API_ID
rm ./${API_NAME}.*
関連ワード