【问题标题】:CircleCI job is failing, help troubleshootCircleCI 工作失败,帮助排除故障
【发布时间】:2022-01-06 00:59:49
【问题描述】:
PUBLIC_DNS=$(aws ec2 describe-instances --region ${AWS_DEFAULT_REGION} --filters 'Name=tag:Name,Values=udapeople-backend-ec2-*' --query "Reservations[*].Instances[0].PublicDnsName" --output text)
echo ${PUBLIC_DNS}
curl -H "Content-Type: text/plain" \
   -H "token: ${CIRCLE_WORKFLOW_ID}" \
   --request PUT \
   --data ${PUBLIC_DNS} \
   https://api.memstash.io/values/public_dns

curl:没有指定 URL! curl:尝试“curl --help”或“curl --manual”以获取更多信息

以代码退出状态 2 退出

CircleCI 收到退出代码 2

【问题讨论】:

  • 经过一些故障排除后,我发现以下代码不起作用PUBLIC_DNS=$(aws ec2 describe-instances --region ${AWS_DEFAULT_REGION} --filters 'Name=tag:Name,Values=udapeople-backend-ec2-*' --query "Reservations[*].Instances[0].PublicDnsName" --output text)
  • 其实这一行curl -H "Content-Type: text/plain" -H "token: ${CIRCLE_WORKFLOW_ID}" --request PUT --data ${PUBLIC_DNS} https://api.memstash.io/values/public_dns

标签: amazon-cloudformation circleci


【解决方案1】:

您的错误不在于 Circle CI,而在于您的 curl 命令。错误消息是说它没有要放置的 URL。我确实看到您在 curl 命令中包含了一个 URL,所以问题可能出在您的行尾。尝试删除行尾并再次运行您的循环 CI 作业。您也可以尝试从本地命令行运行该命令。

【讨论】:

    【解决方案2】:

    这是因为 memstash.io 没有作为网站或 web 服务运行,您的代码中没有问题,memstash 正在作为 CD 作业的内存缓存,因此您可以找到另一个 CD 缓存服务,或者您有一个好的使用circle ci缓存本身的选项,尝试搜索circleCI docs

    【讨论】: