ちょっとマニアックで癖のあるAWS DynmoDB。
ちょっとアクセス負荷をかけると以下のエラーがでてしまいます。少し間をおいて再操作で解消します。
上記はトラブルシューティング用に、pythonでexcept句で検出した内容を、ブラウザにまんま返してるんですが、これはエンドユーザさんが見てしまうと、ビックリして苦情になってしまいます。
なんとかProvisionedThroughputExceededExceptionを検出したいのですが、except句で、まんまProvisionedThroughputExceededExceptionを書いてみると、実行時エラーになってしまいます。
以下URLをみると、
「boto3.dynamodb.Clients.exceptions.ProvisionedThroughputExceededException」かな?と試してみるとダメです。他WEBのHowTo記事にも情報がない。色々試すと以下の方法でできました。
client = boto3.client('dynamodb') : : try: 中略 except client.exceptions.ProvisionedThroughputExceededException as e: return { 'statusCode': 503, "headers": {"Content-Type": "text/html"}, 'body':'Server busy' }
これで、WEBページ側で、HTTPステータス:503を判定して、やんわりしたメッセージをだせば、ユーザを驚かすことなく、再操作を促せます。