当前位置: 首页 > 面试题库 >

Google Cloud函数调用托管在Google App Engine上的URL

邵君植
2023-03-14
问题内容

我有一个firebase数据库,我希望创建一个云函数,该函数将在将子节点添加到父节点时触发,该函数应使用在父节点中添加的子节点的参数来调用url。

该网址将称为Google App Engine中托管的NodeJS Express应用程序。

如果可能的话,我该怎么办?


问题答案:

您可以使用node.js 请求库来执行此操作。

由于在Cloud Function内部,执行异步任务时必须返回Promise,因此需要使用接口包装来处理请求,例如request-
promise

您可以按照以下方式进行操作:

.....
var rp = require('request-promise');
.....

exports.yourCloudFucntion = functions.database.ref('/parent/{childId}')
    .onCreate((snapshot, context) => {
      // Grab the current value of what was written to the Realtime Database.
      const createdData = snapshot.val();

      var options = {
          url: 'https://.......',
          method: 'POST',
          body: ....
          json: true // Automatically stringifies the body to JSON
      };

      return rp(options);

    });

如果要将参数传递给所调用的HTTP(S)服务/端点,则可以通过请求的正文来完成,例如:

      .....
      const createdData = snapshot.val();

      var options = {
          url: 'https://.......',
          method: 'POST',
          body: {
              some: createdData.someFieldName
          },
          json: true // Automatically stringifies the body to JSON
      };
      .....

或通过一些查询字符串键值对,例如:

      .....
      const createdData = snapshot.val();
      const queryStringObject = { 
         some: createdData.someFieldName,
         another: createdData.anotherFieldName
      };

      var options = {
          url: 'https://.......',
          method: 'POST',
          qs: queryStringObject
      };
      .....


 类似资料:
  • 我试图使用托管标识从API管理实例调用Azure函数。我已为我的APIM实例设置了系统管理的标识。我已将参与者角色授予Azure Function应用程序上的此身份。我还将应用程序服务身份验证更改为AD。 现在我尝试从API调用该函数。 我有两个问题: 第一个:当我使用身份验证管理身份策略来获取令牌时,我得到了一个错误,当我使用受众https://myfunctionapp.azurewebsit

  • 问题内容: 我是JSF的新手(2)。 在Struts中,我们可以从类似的URL调用动作。这将调用一个操作并返回一个结果页面,例如JSP(最初没有JSP / HTML)。 在JSF中如何做同样的事情?(我知道如何从.xhtml调用操作),即直接从URL调用托管bean并获取结果页面。 问题答案: 您要询问的模式并不是JSF工作方式的真正本机。 像Struts和Spring MVC这样的基于请求的框架

  • 我有一个奇怪的问题,我似乎无法弄清楚。我的django项目是使用docker-comment建立的 dockerfile是 在Pycharm中,我启动了一个配置了docker compose的新Django项目,它创建得很好。当我试着调试它时,我得到了通常的结果: 警告:未找到使用cython的调试器加速。运行'"/usr/本地/bin/python""/0025/.pycharm_helpers

  • 我有一个小型开源图书馆的分叉,我正在github上工作。我想通过maven让其他开发人员可以使用它,但是我不想运行我自己的Nexus服务器,因为它是一个分叉,所以我不能轻松地将它部署到oss.sonatype.org. 我想做的是将它部署到github,这样其他人就可以使用maven访问它。最好的方法是什么?

  • 我需要一些上传图像的帮助。 我有两个不同的申请 在我的专用服务器上运行的Springstart应用程序 Angulal-6 Application-在我的云服务器上运行 我需要从我的spring boot应用程序上传一个图像到Angular-6资产文件夹(资产文件夹类似于spring boot应用程序的资源文件夹) 在application.properties我已经声明上传位置,如profile

  • 我有一个非常简单的设置,其中producer发布事件,并有一个订阅者来处理。这两个角色都托管在Azure中,使用存储队列作为传输。这是生产者配置: 这是订户配置: 和应用程序。配置: 事件的定义与往常一样: 此次活动的发布与其他活动一样: 因此,浏览IntelliSense流时,我可以看到以下消息输出到控制台: 控制台:“收到发件人发送的ID为0d46873c-102e-4d2a-b2a8-a32