Cosmos DBのChangeFeedをPythonで書こうとすると、デコレータ含めた定義はこんな感じになる。
@app.cosmos_db_trigger(arg_name="documents",
database_name="my_database",
container_name="my_container",
connection="COSMOS_CONNECTION",
lease_container_name="leases_my_container",
create_lease_container_if_not_exists="true")
def CosmosTrigger1(documents: func.DocumentList) -> str:
で、この”func.DocumentList”はPythonのdictライクに動作するのでつい忘れがちだけれど、当然dictそのものじゃないので、そのままdictを期待する関数に渡すとうまく動作しない。例えば以下のようなコード。
def CosmosTrigger1(documents: func.DocumentList) -> str:
con = CosmosContainer()
if documents:
for document in documents:
con.create_item(document)
to_dict()を使う。
def CosmosTrigger1(documents: func.DocumentList) -> str:
con = CosmosContainer()
if documents:
for document in documents:
con.create_item(document.to_dict())