解决SpringCloud Config结合github无法读取配置的问题

解决Spring Cloud Config结合GitHub无法读取配置的问题,可以按照以下完整攻略进行:

1. 配置GitHub Personal Access Token

首先需要在GitHub上配置Personal Access Token,用来在Spring Cloud Config中访问GitHub的私有仓库。具体步骤如下:

  1. 打开GitHub,进入Settings -> Developer settings -> Personal access tokens。

  2. 在Personal access tokens页面中,点击Generate new token按钮,填写Token description,勾选repo权限,点击Generate token按钮,生成新的token。

  3. 将生成的Token复制下来,备用。

2. 在配置文件中添加GitHub的Personal Access Token

在Spring Cloud Config的配置文件(application.yml或application.properties)中,需要添加GitHub的Personal Access Token,具体示例如下:

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/user/repo #GitHub仓库地址
          search-paths: '{application}' #搜索应用配置文件的目录
          default-label: main #默认分支
          username: user #GitHub用户名
          password: token #GitHub Personal Access Token

3. 创建GitHub账户密钥

为了实现Spring Cloud Config与GitHub的SSH通信,需要在本机生成一个密钥,并将公钥添加到GitHub帐户中。具体步骤如下:

  1. 打开Git Bash,输入以下命令生成密钥对:
ssh-keygen -t rsa -C "youremail@example.com"

其中,youremail@example.com修改为自己的邮箱。

  1. 生成的公钥和私钥分别存储在C:\Users\username.ssh目录下的id_rsa.pub和id_rsa文件中。

  2. 打开id_rsa.pub文件,将文件内容复制到GitHub中,具体步骤如下:

  3. 登录GitHub,进入Settings -> SSH and GPG keys。

  4. 点击New SSH key按钮。

  5. 将公钥内容粘贴到Key域中,填写Title,并点击Add SSH key按钮。

4. 本地运行Spring Cloud Config

配置完成后,可以运行Spring Cloud Config,并访问GitHub中的配置文件。具体示例如下:

  1. 创建一个Spring Boot项目,引入Spring Cloud Config和相关依赖。
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
  1. 在启动类上添加@EnableConfigServer注解。
@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
  1. 创建配置文件src/main/resources/application.yml,并添加配置。
server:
  port: 8888 #Spring Cloud Config Server端口

spring:
  application:
    name: config-server #应用名称

  cloud:
    config:
      server:
        git:
          uri: https://github.com/user/repo #GitHub仓库地址
          search-paths: '{application}' #搜索应用配置文件的目录
          default-label: main #默认分支
          username: user #GitHub用户名
          password: token #GitHub Personal Access Token
  1. 启动项目,访问http://localhost:8888/config-client-dev.yml,可以看到从GitHub中读取到的配置文件。

示例说明

示例1:使用了错误的Personal Access Token

假如在config-client-dev.yml配置文件中,使用了错误的Personal Access Token,启动Spring Cloud Config Server将会报错。具体步骤如下:

  1. 将config-client-dev.yml配置文件中的password值修改为错误的Personal Access Token。

  2. 启动Config Server,控制台输出如下错误信息:

Caused by: org.eclipse.jgit.api.errors.TransportException: Cannot connect to remote repository
        at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:244) ~[org.eclipse.jgit-5.11.0.202105071810-r.jar:5.11.0.202105071810-r]
        ... 23 common frames omitted
Caused by: org.eclipse.jgit.errors.TransportException: https://github.com/user/repo: not authorized
        at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:546) ~[org.eclipse.jgit.http.apache-5.11.0.202105071810-r.jar:5.11.0.202105071810-r]
        ... 28 common frames omitted
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.github.com/repos/user/repo/git/refs/heads
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1920) ~[na:1.8.0_191]
        ... 34 common frames omitted
  1. 根据错误信息可以看出,连接GitHub仓库时发生403错误,提示“not authorized”,即没有授权访问此仓库。可以根据提示重新检查Personal Access Token是否正确。

示例2:未添加GitHub账户密钥

假如在启动Spring Cloud Config Server前,未添加GitHub账户密钥,启动后将会报错。具体步骤如下:

  1. 删除本机的密钥文件,默认路径为C:\Users\username.ssh。

  2. 启动Config Server,控制台输出如下错误信息:

Caused by: org.eclipse.jgit.api.errors.TransportException: git@github.com:user/repo: git-upload-pack not permitted on 'repo'
        at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:262) ~[org.eclipse.jgit-5.11.0.202105071810-r.jar:5.11.0.202105071810-r]
        ... 23 common frames omitted
Caused by: org.eclipse.jgit.errors.TransportException: git@github.com:user/repo: git-upload-pack not permitted on 'repo'
        at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:262) ~[org.eclipse.jgit.ssh.apache-5.11.0.202105071810-r.jar:5.11.0.202105071810-r]
        ... 29 common frames omitted
  1. 根据错误信息可以看出,连接GitHub仓库时发生错误,提示“git-upload-pack not permitted on 'repo'”,即无法访问此仓库。此时需要先添加GitHub账户密钥,然后重新启动Spring Cloud Config Server。

以上就是解决Spring Cloud Config结合GitHub无法读取配置的问题的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决SpringCloud Config结合github无法读取配置的问题 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 开源鸿蒙 OpenHarmony Github 镜像库正式上线

    关于“开源鸿蒙 OpenHarmony Github 镜像库正式上线”的攻略,下面是详细的内容介绍。 如何使用OpenHarmony Github镜像库? OpenHarmony Github镜像库是指按照进口开源软件的要求,将Github上的OpenHarmony代码及附件复制到境内的开源镜像库上,这样能够更快捷地下载OpenHarmony开源项目。下面介…

    GitHub 2023年5月16日
    00
  • Pycharm操作Git及GitHub的步骤详解

    下面是详细的“Pycharm操作Git及GitHub的步骤详解”的完整攻略。 1. 安装Git和PyCharm 在 Windows 或其他操作系统上安装 Git 和 PyCharm 。安装完成后,打开 PyCharm。 2. 创建一个新项目 在 PyCharm 中,点击 “Create New Project” 创建一个新的项目。 3. 初始化Git仓库 在…

    GitHub 2023年5月16日
    00
  • spring源码下载、编译、debug的详细教程

    请看下面的详细讲解: Spring源码下载 打开Spring的GitHub仓库(https://github.com/spring-projects/spring-framework)。 选择你需要下载的版本,可以在右侧选择Tags下拉菜单中选择版本号,然后点击Download ZIP,即可下载对应版本的压缩包。 下载完成后,解压缩到本地文件夹。 Sprin…

    GitHub 2023年5月16日
    00
  • 程序员应该投资的10件事

    下面是“程序员应该投资的10件事”的完整攻略: 1. 学习新技术 技术在不断更新和发展,学习新技术是程序员必须的一项任务。可以通过参加培训班、线上学习平台、读技术书籍等多种途径来进行学习。需要注意的是要选择适合自己的学习方式和内容,避免浪费时间。 2. 保持身体健康 身体健康是程序员长期从事高强度工作的保证。建议程序员不要长时间连续工作,需要进行适时休息和运…

    GitHub 2023年5月16日
    00
  • Github代码常用指令(小结)

    Github代码常用指令(小结) 在Github上进行开发的过程中,代码常用指令是非常重要的,本文将会对Github代码常用指令进行介绍。 git clone 使用git clone可以将远程仓库克隆到本地。例如,我想将一个名为example的仓库克隆到本地的/path/to/dir目录下,可以使用以下指令。 git clone https://github…

    GitHub 2023年5月16日
    00
  • 安装不同版本的tensorflow与models方法实现

    让我为你讲解安装不同版本的 TensorFlow 和 Models 的完整攻略。 安装不同版本的 TensorFlow 步骤一:安装 conda 首先,你需要安装安装 conda 环境,你可以下载适合你系统的 Anaconda 或者 Miniconda。 步骤二:创建 conda 虚拟环境 你可以使用 conda 命令创建一个新的虚拟环境,以便你能在其中安装…

    GitHub 2023年5月16日
    00
  • 使用next.js开发网址缩短服务的方法

    下面就来详述一下使用Next.js开发网址缩短服务的完整攻略。 1. 准备工作 在开始Next.js开发之前,我们需要先安装好Node.js,以及npm包管理工具。具体安装方法可以通过官网进行了解。 2. 创建Next.js应用程序 使用以下命令创建一个新的Next.js应用程序: npx create-next-app url-shortener 即可在当…

    GitHub 2023年5月16日
    00
  • python 解决tqdm模块不能单行显示的问题

    问题描述: 在使用程序进行循环处理数据时,我们经常需要使用tqdm模块来实现进度条的显示。但是,在默认情况下,tqdm模块在每一次循环中都会输出一行信息,这样会导致输出非常臃肿。我们希望tqdm模块能够在同一行中实时更新进度条,以更好地提升用户体验。 解决方案: 使用tqdm中的update函数 update函数可以在每一次循环中手动更新进度条,因此可以在同…

    GitHub 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部