[GCP]Cloud FunctionsからCloud Functionsを呼び出す

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)

参考

#PythonでCloud Pub/Subのトピックとサブスクリプションを作成し、同期、非同期でpullする

Pub/Sub Client Libraries

Python Client for Google Cloud Pub / Sub

コメントを残す

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

9 + 10 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください