跳转至

This pages has been obseleted.

newest version is here

script-api-resource-method

  • 每个 api 的每个 resource 的每个 method 都需要单独通过命令行启用“tlsConfig/insecureSkipVerification”,通过这个脚本简化工作
#!/bin/bash

if [[ $# -ne 1 ]]; then
  echo "$0 API_ID"
  exit 99
fi

export AWS_PAGER=""

API_ID=$1

RESOURCE_FILE=/tmp/${API_ID}.json
aws apigateway get-resources --rest-api-id ${API_ID} >${RESOURCE_FILE}
if [[ $? -ne 0 ]]; then
  echo "api id error"
  exit 99
fi

# get resource ids
RESOURCE_ID=$(cat ${RESOURCE_FILE} |jq -r '.items[].id' |xargs)
for i in ${RESOURCE_ID}; do
  # get method
  METHOD=$(cat ${RESOURCE_FILE} |jq -r '.items[] | select (.id=="'$i'") | .resourceMethods|keys[]' |xargs)
  for j in ${METHOD}; do
    METHOD_FILE=${API_ID}-$i-$j.json
    # save all resource/method json
    aws apigateway get-method --rest-api-id ${API_ID} --resource-id $i --http-method $j > ${METHOD_FILE}
    # if file has specific string, print aws cli to enable tlsConfig
    egrep -ql 'connectionType.*VPC_LINK' ${METHOD_FILE}
    if [[ $? -eq 0 ]]; then
      echo "aws apigateway update-integration --rest-api-id ${API_ID} --resource-id $i --http-method $j --patch-operations \"op='replace',path='/tlsConfig/insecureSkipVerification',value=true\""
    fi
  done
done

refer