谷歌云函数事件和上下文的 typescript 类型

标签 typescript function cloud publish-subscribe

我正在尝试使用 typescript 的谷歌云功能。我希望该功能由来自 PubSub 的消息触发。函数的一般格式如下

exports.readMessage = async (event, context): Promise<void> => {
  const message = event.data
    ? Buffer.from(event.data, "base64").toString()
    : "No Message";
  console.log(message);}

我有错误,因为 typescript 提示事件和上下文的任何类型。 package @google-cloud/PubSub 提到它导出了它的类型,但我没有看到任何与事件或上下文相关的类型。

关于我缺少什么以及我可以从哪个包导入类型的任何指示?

最佳答案

我没有使用这个库的经验,但我会尽力帮助你。

从代码来看,应该是接收来自Google Cloud Function (GCF)的消息,context实际上是GCF在Pub事件后返回的元数据。

事件应该是发布/订阅消息,所以类型是PubsubMessage

为了获取上下文类型,需要添加GCF库。

yarn add @google-cloud/functions-framework
or 
npm install @google-cloud/functions-framework
// context type
import { Context } from "@google-cloud/functions-framework/build/src/functions";

// event message type
import { PubsubMessage } from "@google-cloud/pubsub/build/src/publisher";

exports.readMessage = async (event: PubsubMessage, context: Context): Promise<void> => {
  // event.data can be Uint8Array|string|null, so need to cast it as string explicitly to allow base64 operations.
  const message = event.data
    ? Buffer.from(event.data as string, "base64").toString()
    : "No Message";
  console.log(message);
}

关于谷歌云函数事件和上下文的 typescript 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67458830/

相关文章:

cloud - 如何在云(AWS、heroku 等)中跨多个节点建立时钟同步?

visual-studio-2013 - 在 vs 2013 中使用 Jasmine 测试 typescript

reactjs - 在 useState Hook 中对状态使用类引用

python - 为azure python delete_by_id方法获取正确的api版本

c++ - 动态数组 C++

java - 如何从 url 下载 pdf 到内部存储并打开它 : Android studio using kotlin

java - 我们如何在cloudsim中创建具有不同MIPS数量的Vm?

javascript - typescript 打字 - 重复名称 promise /找不到名称 promise

javascript - Typescript:使 tsconfig 发出一个文件夹但不发出另一个文件夹

c++ - 试图编写一个递归函数来计算总和为该数字的序列数 C++