AWS DynmoDBでProvisionedThroughputExceededExceptionをpythonで検出するには?

ちょっとマニアックで癖のあるAWS DynmoDB。

ちょっとアクセス負荷をかけると以下のエラーがでてしまいます。少し間をおいて再操作で解消します。

上記はトラブルシューティング用に、pythonでexcept句で検出した内容を、ブラウザにまんま返してるんですが、これはエンドユーザさんが見てしまうと、ビックリして苦情になってしまいます。

なんとかProvisionedThroughputExceededExceptionを検出したいのですが、except句で、まんまProvisionedThroughputExceededExceptionを書いてみると、実行時エラーになってしまいます。

以下URLをみると、

https://botocore.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/exceptions/ProvisionedThroughputExceededException.html

「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を判定して、やんわりしたメッセージをだせば、ユーザを驚かすことなく、再操作を促せます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です