最后更新2022/03/19
这是这节最后一个实验了,加油!
照例先enable service,然后下载repository,再build一下。
再开一个cloud shell(点一下头部标识中的+),下载另一个用于debug的repository。在本地(cloud shell)安装一下dependency,然后本地测试,看看是否正常,这是一个摄氏华氏温度转换的小网页程序。测试OK后要转为app engine部署,照例先创建app engine,再deploy有(通过省缺的app.yaml)
转到app engine->dashboard去查看部署。时间比较长,要耐心。我暂时没等到dashboard刷新,继续往下走了,转到debugger
首先要consent收集你的cookie,当然接受,不接受不行啊!点authorize之后,会显示要跳转到github登录授权,用你得的github账号登录之后(不知道干了啥。。。)就正常通过了。
此时在左侧可以看到程序代码树,选择main.py,在想要加snapshot行前的数字行号点一下,会出现让你创建snapshot还是logpoint选项,我们创建一个snapshot,最后是这样:
在web界面输如一些数字做测试,在console右侧会看到抵达设置snapshot点时一些参数信息。按retake使程序准备好接受下一次中断显示。在web输如-40, 在中断的信息能看到string没能正常转换为数值。
屏幕太紧凑,看起来很费劲,用这个做debug,聊胜于无吧。下面再看加log
在第31行创建logpoint,if ture的强制操作设置为log input和 fahrenheit两个变量,把log level从info转为warning,然后add。在右侧把下面的信息往上拉一点,可以看到view logs,然后点view logs,应该能看到一些log,但我没发现,总之,不太好用。。。
不管这个问题了,进行下一个实验,debug cloud run的app。回到第一个deployment,在cloud run选择hello-logging,看一下web地址,然后访问一个非法位置/uncaught
,这会导致ReferrenceError错误。
回到console,error reporting(这一类一般都在operation子项里),根据错误信息,可以看到index.js有问题。但这个source在github,所以要搞个本地的repository,先创建出来。再回到debug点击index.js会进到debugger页面,但没有source,
翻一翻current source code这部分,其它可用的select source,选择我们刚创建的repository。
这样我们有有源代码了,可以直接修改。
下面转到Tracer,tracer自动对每次交互进行时间跟踪,但是如果在程序内部,就不会详细显示,所以要在程序里显式地设置trace入口和出口项,以便产生trace跟踪。方式是添加warp代码,前面用:
const span1 = tracer.createChildSpan(‘xxxx’})…
结束用:
span1.endSpan();
其中括号引号对应关系还没研究通,只能以后详细研究了。