Spring 云配置服务器 Git-AWS ECS 上的后端

Spring cloud-config-server Git-Backend on AWS ECS

到目前为止,我可以在我的本地系统中使用简单的 username/password 从 gitlab 中提取 config-repo 文件,并且效果很好。现在我正在将东西转移到 AWS-ECS(Fargate)。

native 配置文件运行良好,但我想使用 git-uri,为此我必须提供连接凭据。

    spring:
      profiles: dev
      cloud:
        config:
          server:
              git:
                uri: https://gitlab.com/<group>/<project>.git
                clone-on-start: true
                default-label: gitlabci-test
                searchPaths: '{profile}'
                username: ${gitlab-username}
                password: ${gitlab-password}

如何配置配置服务器以从 AWS Parameter store 或 secret-manager 中提取凭证?任何帮助将不胜感激。

  1. 创建一个名为 GetParameters 的新策略并将其附加到当前任务角色。

IAM -> 创建策略 -> select 'System Manager' 作为服务 -> 'GetParameters' 作为操作(只读类型) -> 所有资源并创建策略。

  1. 转到系统管理器 -> Parameter Store 以将敏感详细信息存储为 SecureString

  2. 转到任务 -> 容器定义 -> 环境变量: 提供

  3. 该值应采用 arn:aws:ssm:<your-aws-acccount-region>:<aws-user-id>:parameter/name

    的形式
  • GITLAB_USERNAME, ValueFrom , arn:aws:ssm:::parameter/dev/my-config-server/GITLAB_USERNAME
  • GITLAB_PASSWORD, ValueFrom , arn:aws:ssm:::parameter/dev/my-config-server/GITLAB_PASSWORD

按照约定 Name 应采用 /<environment>/<service>/<attribute-name>

的形式

就是这样。你完成了。等待配置任务,配置服务器将能够连接到您的远程仓库。

        spring:
          profiles: dev
          cloud:
            config:
              server:
                  git:
                    uri: https://gitlab.com/<group>/<project>.git
                    clone-on-start: true
                    default-label: gitlabci-test
                    searchPaths: '{profile}'
                    username: ${GITLAB_USERNAME}
                    password: ${GITLAB_PASSWORD}