Terraform-aws-github-runner: dev-usw2-scale-up 失败:“处理 SQS 事件失败”“PEM 例程:get_name:Sign.sign 处没有开始行”

创建于 2020-07-28  ·  7评论  ·  资料来源: philips-labs/terraform-aws-github-runner

概括

dev-usw2-scale-up 执行结果:失败

重现步骤

根据此 repo 中的文档/README 和https://040code.github.io/2020/05/25/scaling-selfhosted-action-runners,通过在配置的应用程序中提交必要的 github 应用程序来触发

当前的错误行为是什么?

错误错误:错误:0909006C :PEM例程:get_name
(请参阅下面的完整错误跟踪/输出)

什么是预期的正确行为?

提交到配置的 repo 会导致 lambda 函数执行和 AWS EC2 Spot 实例的必要扩展或部署。

相关日志和/或屏幕截图

提交到已配置的 github 存储库并将 github 应用程序配置为监视时的最新失败/错误
CloudWatch:CloudWatch 日志:日志组:/aws/lambda/dev-usw2-scale-up
可在此处的 github 要点中找到:

gist-file-aws-lambda-dev-usw2-scale-up-error

可能的修复

乍一看,似乎可能与证书/密钥错误有关?

谁能解决这个问题

请求验证和解决建议

其他链接/参考

谢谢

最有用的评论

谢谢@compiaff 。 似乎需要 README 中未指定的其他权限。
我现在在任何 lambda/cloudwatch 日志中都没有任何错误,并且可以看到 S3 存储桶中的 action-runners.zip 文件,并且能够按照自述文件查看预期的功能 _except_ 现场实例创建--似乎是我的最后一个问题。

参考:缩放-selfhosted-action-runners#putting-all-together

如果您构建的跑步者没有开始或注册。 您能做的最好的事情就是跟踪跟踪。 在 GitHub 应用程序中有一个高级设置页面,您可以在其中查看发送到 webhook 的事件。 当事件不被接受时,请仔细检查端点和秘密。 接下来,您可以检查 webhook 的日志并在 cloud watch 中扩展 lambda。 最后,您可以检查 EC2 用户数据记录。 通过 SSM 访问(MP:这应该是 ssh 吗?)默认启用。 只需选择连接到实例并检查日志 /var/log/user_data.log。

错误点在 lambda 和 cloudwatch 之后,下一个故障排除步骤是检查 EC2 用户数据(日志),但是,这有点困难,因为当 Spot 实例未部署时我没有实例。

谢谢您的帮助。

所有7条评论

如果您对 PEM 密钥进行 base64 编码而没有
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

看来您需要获取 .pem 文件的完整内容并对其进行 base64 编码。

谢谢@compiaff ! 那绝对是个问题。

在 README/docs 中有这样的内容肯定会有所帮助:

  • GITHUB_KEY=$(base64 ./myapp-aws-github-runner.2020-07-29.private-key.pem) ; cat $GITHUB_KEY > encoded_key.out now use this entire file as the github_app_key_base64 value

我已经重新部署,现在在 lambda 放大函数中看到以下 SQS 错误,'很好奇你以前见过这个吗?

2020-07-29T12:38:43.476-07:00 | 2020-07-29T19:38:43.476Z    e67a6201-6e39-50c8-94f7-359abc4954cd    ERROR   Invoke Error    {     "errorType": "Error",     "errorMessage": "Failed handling SQS event",     "stack": [         "Error: Failed handling SQS event",         "    at _homogeneousError (/var/runtime/CallbackContext.js:12:12)",         "    at postError (/var/runtime/CallbackContext.js:29:54)",         "    at callback (/var/runtime/CallbackContext.js:41:7)",         "    at /var/runtime/CallbackContext.js:104:16",         "    at /var/task/index.js:17333:16",         "    at Generator.throw (<anonymous>)",         "    at rejected (/var/task/index.js:17315:65)",         "    at processTicksAndRejections (internal/process/task_queues.js:97:5)"     ] }

谢谢你。

@cmcconnell1是的,我见过一个。 之前检查日志条目,它可能会显示对 Github 端点的 API 调用,响应为 403。

我必须向 Github 应用程序授予 Actions、Checks 和 Self-hosted Runners 的权限,但似乎不需要授予它对 Administration 的访问权限。

不要忘记进入组织或存储库上的安装并允许请求更多/不同的权限。

谢谢@compiaff 。 似乎需要 README 中未指定的其他权限。
我现在在任何 lambda/cloudwatch 日志中都没有任何错误,并且可以看到 S3 存储桶中的 action-runners.zip 文件,并且能够按照自述文件查看预期的功能 _except_ 现场实例创建--似乎是我的最后一个问题。

参考:缩放-selfhosted-action-runners#putting-all-together

如果您构建的跑步者没有开始或注册。 您能做的最好的事情就是跟踪跟踪。 在 GitHub 应用程序中有一个高级设置页面,您可以在其中查看发送到 webhook 的事件。 当事件不被接受时,请仔细检查端点和秘密。 接下来,您可以检查 webhook 的日志并在 cloud watch 中扩展 lambda。 最后,您可以检查 EC2 用户数据记录。 通过 SSM 访问(MP:这应该是 ssh 吗?)默认启用。 只需选择连接到实例并检查日志 /var/log/user_data.log。

错误点在 lambda 和 cloudwatch 之后,下一个故障排除步骤是检查 EC2 用户数据(日志),但是,这有点困难,因为当 Spot 实例未部署时我没有实例。

谢谢您的帮助。

仍然面临问题?

@npalm我们通过了这个我错过了证书的开始/结束。 但是,我们仍然被 v0.2.0 标记阻止,没有部署 Spot 实例,错误日志中也没有指示失败/问题的指示。 AIR,虽然我们没有看到任何权限错误,但最终效果与https://github.com/philips-labs/terraform-aws-github-runner/issues/104 中的相同。 我一直在度假,现在看到有一个 0.3.0 和 0.4.0 标记版本,我将开始测试。 谢谢你。

我遇到了同样的问题,我使用了开发分支/0.0.5,并且还进行了 base64 编码(包括 BEGIN 和 END 位)并将值保存在 variables.tf 文件中,如下所示,但仍然出现错误: . (错误:错误:0909006C :PEM例程:get_name :在 Sign.sign (internal/crypto/sig.js:105:29) 处没有开始行),紧接着 ERROR Invoke Error {"errorType":"Error"," errorMessage":"处理 SQS 事件失败"

image

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Kostiantyn-Vorobiov picture Kostiantyn-Vorobiov  ·  6评论

mkryva picture mkryva  ·  17评论

mcaulifn picture mcaulifn  ·  13评论

npalm picture npalm  ·  11评论

rjcoupe picture rjcoupe  ·  15评论