Как развернуть несколько функций с помощью командной строки gcloud? - PullRequest
0 голосов
/ 10 октября 2018

Я хочу развернуть несколько облачных функций.Вот мой index.js:

const { batchMultipleMessage } = require('./gcf-1');
const { batchMultipleMessage2 } = require('./gcf-2');

module.exports = {
  batchMultipleMessage,
  batchMultipleMessage2
};

Как я могу использовать gcloud beta functions deploy xxx для одновременного развертывания этих двух функций.

Ответы [ 2 ]

0 голосов
/ 14 августа 2019

Если кто-то ищет лучшее / более чистое / параллельное решение, это то, что я делаю:

# deploy.sh

# store deployment command into a string with character % where function name should be
deploy="gcloud functions deploy % --trigger-http"

# find all functions in index.js (looking at exports.<function_name>) using sed
# then pipe the function names to xargs
# then instruct that % should be replaced by each function name
# then open 20 processes where each one runs one deployment command
sed -n 's/exports\.\([a-zA-Z0-9\-_#]*\).*/\1/p' index.js | xargs -I % -P 20 sh -c "$deploy;"

Вы также можете изменить количество процессов, передаваемых с флагом -P.Я выбрал 20 произвольно.

Это было очень легко и экономит много времени.Надеюсь, это кому-нибудь поможет!

0 голосов
/ 10 октября 2018

Вариант 1:

Сейчас я пишу deploy.sh для одновременного развертывания этих двух облачных функций.

TOPIC=batch-multiple-messages
FUNCTION_NAME_1=batchMultipleMessage
FUNCTION_NAME_2=batchMultipleMessage2

echo "start to deploy cloud functions\n"
gcloud beta functions deploy ${FUNCTION_NAME_1} --trigger-resource ${TOPIC} --trigger-event google.pubsub.topic.publish
gcloud beta functions deploy ${FUNCTION_NAME_2} --trigger-resource ${TOPIC} --trigger-event google.pubsub.topic.publish

Это работает, ноесли gcloud поддержка командной строки развернет несколько облачных функций, это будет наилучшим способом.

Опция 2:

https://serverless.com/

...