風柳メモ

ソフトウェア・プログラミング関連の覚書が中心。

GAEでappidに余分な"s~"がついてしまう現象

このコメントの原因を調査している過程で、Google App Engineのappidを取得する際に注意しないといけない点に気がついたので、メモ書き。

現象と対策

appidを取得するためには、GAE/Pythonだと

import os
appid=os.environ.get('APPLICATION_ID','') # もしくは appid=os.getenv('APPLICATION_ID')

でよいと思っていたのだが、これだけだと、本来のappidに"s~"というプレフィックスがついて返ってくる場合があるので(s~appidになる)、アプリ中でappidとして使用するためにはこの"s~"を削除する必要が有る。

import os,re
appid=os.environ.get('APPLICATION_ID','') # もしくは appid=os.getenv('APPLICATION_ID')
# "s~"を削除
appid=re.sub(u'^s~',r'',appid) # 先頭にあることを気にしないなら appid=appid.replace('s~','') でもよい

"s~"が付くのはどんな場合か?

新規にアプリケーションを作成したとき、High Replication datastore (HRD) を選択した場合(デフォルトではそうなる)、"s~"がつくらしい。