Cloud Functionsの関数を繋いで実行したくてテストしてみた。
方法としては1つ目のCloud Functionsでpub/subを発行し、2つ目のFunctionを呼び出す。
ランタイムはpython3.7で作成。
1つ目の関数
HTTPアクセスをトリガーにして、pub/subメッセージを発行する関数。
from google.cloud import pubsub_v1
def post_pub_sub(request):
project_id = 'test-project'
topic_id = 'test-func'
publisher = pubsub_v1.PublisherClient()
# topicの指定
topic_path = publisher.topic_path(project_id, topic_id)
# メッセージ生成
data='post_to_pubsub'
data = data.encode('utf-8')
# pub/subを発行
future = publisher.publish(topic_path, data=data)
print('Published {} of message ID {}.'.format(data.decode(), future.result()))
return 'finished'
2つ目の関数
pub/subをトリガーにしてメッセージをログに書き出す。
import base64
def print_pubsub(event, context):
pubsub_message = base64.b64decode(event['data']).decode('utf-8')
print(pubsub_message)