当前位置: 首页 > 知识库问答 >
问题:

进程名称错误:未定义名称“monitoring_v3”[运行“pubsub未读消息-ptransform-32”时]

陆绍辉
2023-03-14

不能运行流数据流和获得未读消息的计数,我需要流数据流来监视未读消息,我的代码有任何问题。

import logging
import datetime
import argparse
import yaml
import apache_beam as beam
from apache_beam import Pipeline, ParDo, DoFn
from apache_beam.options.pipeline_options import PipelineOptions
from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import query

class unread(DoFn):
    def __init__(self, project, pubsub_subscription):
        self.project = project
        self.pubsub_subscription = pubsub_subscription

    def process(self, key_value):
        logging.info("Key_value {}".format(key_value))
        client = monitoring_v3.MetricServiceClient()
        result = query.Query(
            client,
            project,
            'pubsub.googleapis.com/subscription/num_undelivered_messages',
            end_time=datetime.datetime.now(),
            minutes=2,
            ).as_dataframe()
        if result.empty:
            logging.info("All Messages Read")
        else:
            logging.info(result['pubsub_subscription'][self.project][self.pubsub_subscription][0])
        return result

def run():
    pipeline_args = [arguments passed
                    ]
    logging.info("Pipeline Arguments: {}".format(pipeline_args))

    try:
        # Set `save_main_session` to True so DoFns can access globally imported modules.
        pipeline_options = PipelineOptions(
            pipeline_args, streaming=True, save_main_session=True
        )

        with Pipeline(options=pipeline_options) as pipeline:
            (
            pipeline
            | 'Initializing ' >> beam.Create(['1'])
            | 'PubSub Unread Messages' >> ParDo(unread(project, pubsub_subscription))
            )
    except Exception as e:
        logging.error("Failed to Deploy DataFlow Pipeline. Error {}".format(e))


if __name__ == "__main__":

    with open("input.yaml", 'r') as yamlfile:
        cfg = yaml.load(yamlfile, Loader=yaml.BaseLoader)

    logging.basicConfig(format='%(asctime)s %(levelname)s - %(message)s', datefmt='%y-%m-%d %H:%M:%S', level=logging.INFO)

    parser = argparse.ArgumentParser()
    known_args, pipeline_args = parser.parse_known_args()

    run()

共有1个答案

慕容宏毅
2023-03-14

在这里查看如何处理名称错误。

尝试在函数中导入模块,或者启用--save_main_session管道选项。

 类似资料:
  • 我得到一个错误,当我试图运行这个简单的脚本: 假设我输入“dude”,我得到的错误是: 我正在运行MacOSX10.9.1,我正在使用安装了Python3.3的PythonLauncher应用程序来运行脚本。

  • 我正在使用cogs来缩短和组织我的discord机器人。然而,在尝试“事件”cog时,我遇到了一个名称错误,即没有定义changePlaying,尽管它实际上是关于on_ready命令的 我忘了输入discord。ext并因此导入了该文件。B:我已经尝试过在changePlaying事件中更改可能状态列表的位置 嗯,我认为很明显预期的结果是什么,但要澄清机器人应该启动。它确实在线,并听取命令,但状

  • 问题内容: 我在自学Python,只是在“探索”。Google说datetime是一个全局变量,但是当我尝试在终端中查找今天的日期时,我在问题标题中收到NameError吗? 问题答案: 您需要先导入模块: 之后,它可以工作:

  • 问题内容: 我有以下代码,并在尝试运行它时收到以下错误消息: 我试图让Raspberry Pi在端口17上收到输入时运行HTML脚本: 问题答案: Python的布尔常量是大写的:与以大写字母和分别。 小写变体只是变量的有效免费名称,因此您可以将它们用于任何所需的变量,例如(不建议使用; P)。

  • 我试图做一个基于链接列表和节点的N-Ary树。但是每当我试图给树添加一个新值时,我总是得到: NameError:未定义名称“self” 我使用模块,所以我必须从其他文件导入类。 我在树代码的def addTree(self,value,parent=self.root)中遇到了这个错误 树代码 节点代码 链接列表代码 也谢谢你的帮助,我对Python有点陌生,我不知道我做错了什么。

  • 我对不和谐是新手。py并遵循有关齿轮的教程。我遵循了教程告诉我的所有内容,但在运行命令时出现了名称错误。 代码如下: 当我在discord消息框中键入时,我得到了这个回溯 回溯(最近一次调用):文件“C:\Users\bryan\source\repos\discord\u music\u bot\env\lib\site packages\discord\ext\commands\bot.py”