基于专有云EDAS OpenAPI构建企业级云原生CICD——Series2:OpenAPI调用

简介: 基于专有云EDAS OpenAPI构建企业级云原生CICD——Series2:OpenAPI调用

前言

上期本文对基于专有云EDAS OpenAPI构建企业级云原生CICD的前期工作进行了介绍,本期将对调用EDAS OpenAPI拉取镜像部署应用进行详细介绍。

流程

Jenkins构建完项目可以按版本号把镜像上传到镜像仓库,调用EDAS OpenAPI拉取镜像部署应用、通知相关人员等。
CICD流程调用EDAS OpenAPI接口:
(1)调用GetK8sApplication接口获取容器服务Kubernetes中部署的应用镜像URL信息。
(2)调用DeployK8sApplication接口拉取应用镜像部署容器服务K8S应用。

准备工作

在专有云中调用EDAS的OpenAPI需要完成以下3件事:

  • 在JAVA项目工程中声明并引入EDAS-SDK。
  • 获取EDAS-OpenAPI对外的服务域名,即专有云EDAS-endpoint地址。
  • 在适配插件中拼装请求报文,完成API调用的指令。

在适配插件中引入EDAS-SDK

在IDE工具上打开Maven项目下的pom.xml文件,在文件中添加sdk:aliyun-java-sdk-core和sdk:aliyun-java-sdk-edas依赖。
图1:添加依赖 - 副本.png

图1:添加依赖

获取部门信息

登录Apsara Stack控制台,在左侧导航栏选择用户中心-->部门管理,选择对应的部门,单击“获取accesskey”。获取RegionId、AccessKey ID和AccessKey Secret。
图2:Apsara Stack控制台部门管理.png

图2:Apsara Stack控制台部门管理


图3:部门相关信息.png

图3:部门相关信息

获取EDAS API服务地址endpoint

登录天基平台,选择报表-->全部报表-->资源申请报表,全局搜索edas,如下图中Parameters详情界面domain即endpoint的值。
图4:天基获取EDAS API服务地址endpoint-1.png

图4:天基获取EDAS API服务地址endpoint-1


图5:天基获取EDAS API服务地址endpoint-2.png

图5:天基获取EDAS API服务地址endpoint-2

GetK8sApplication获取容器服务中部署的应用信息

获取容器服务Kubernetes中部署的应用信息。

  • 请求URL

/pop/v5/changeorder/co_application

  • 请求参数

3.请求参数.png

  • 返回参数

3.返回参数.png

  • 请求示例
public class GetK8sApplicationSimpleInfo {
    public String getK8sApplication() throws ClientException {
        //请填写要执行 API 调用的应用所在地域 ID.
        String regionId = "your_ regionId ";
        //请填写阿里云主账号或子账号 AccessKey ID.
        String accessKeyId = " your_accessKeyId ";
        //请填写阿里云主账号或子账号 AccessKey Secret.
        String accessKeySecret = " your_accessKeySecret ";
        String productName = "Edas";
        String domain = "edas-api.console.cn-neimeng-poc2-d01.cloud.poc2.com";
        DefaultProfile defaultProfile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        DefaultAcsClient defaultAcsClient = new DefaultAcsClient(defaultProfile);
        GetK8sApplicationRequest request = new GetK8sApplicationRequest();
        request.setAppId("f66a****-c***-4***-a***-c***********");
        request.setEndpoint("edas-api.console. your_regionId.cloud.poc2.com");
        GetK8sApplicationResponse response;
        String resp = "";
        try {
            response = defaultAcsClient.getAcsResponse(request);
            resp = "返回码:" + response.getCode() + "----" + "返回信息:" + response.getMessage()
            + "镜像URL:" + response.getApplcation().getImageInfo().getImageUrl();
            System.out.printf("返回码:" + response.getCode() + "----" + "返回信息:" + response.getMessage()
                    + "镜像URL:" + response.getApplcation().getImageInfo().getImageUrl());
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return resp;
    }
}

返回示例
图6:GetK8sApplication返回示例.png

图6:GetK8sApplication返回示例

DeployK8sApplication部署容器服务K8S应用

部署容器服务K8S应用。

  • 请求URL

/pop/v5/k8s/acs/k8s_apps

  • 请求参数

4.请求参数.png

  • 返回参数

4.返回参数.png

  • 请求示例
public class DeployK8sApplictionSimpleInfo {
    public String deployK8sApplication() {
        //请填写阿里云主账号或子账号 AccessKey ID.
        String aliyun_user_ak = "your_ AccessKey ID ";
        //请填写阿里云主账号或子账号 AccessKey Secret.
        String aliyun_user_sk = "your_ AccessKey Secret ";
        //请填写要执行 API 调用的应用所在地域 ID.
        String region_id = "your_regionid";
        DefaultProfile defaultProfile = DefaultProfile.getProfile(region_id, aliyun_user_ak, aliyun_user_sk);
        DefaultAcsClient defaultAcsClient = new DefaultAcsClient(defaultProfile);
        DeployK8sApplicationRequest request = new DeployK8sApplicationRequest();
        request.setAppId("f6******-c***-4***-a***-c***********");
        request.setEndpoint("edas-api.console. your_regionId.cloud.poc2.com");
        request.setImage("cr.registry.cloud.poc2.com/pdsa/k8s-nacos-consumer:v2");
        request.setImageTag("v2");
        request.setJDK("Open JDK 8");
        request.setEnvs("[{\"name\":\"updatetime\",\"value\":\""+ new Date() + "\"}]");
        DeployK8sApplicationResponse response;
        String resp = "";
        try {
            response = defaultAcsClient.getAcsResponse(request);
            resp = "返回码:" + response.getCode() + "----" + "返回信息:" + response.getMessage();
            System.out.printf("返回码:" + response.getCode() + "----" + "返回信息:" + response.getMessage());
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return resp;
    }
}
  • 返回示例

图7:DeployK8sApplication返回示例.png

图7:DeployK8sApplication返回示例

作者:刘伟业

阿里云智能混合云PDSA团队高级解决方案工程师

曾就职于新华三云做软件定义数据中心解决方案,负责多个省级云平台的架构设计和落地。现就职于阿里云智能混合云PDSA团队负责容器和云原生产品的方案设计、POC和最佳实践工作。

我们是阿里云智能全球技术服务-SRE团队,我们致力成为一个以技术为基础、面向服务、保障业务系统高可用的工程师团队;提供专业、体系化的SRE服务,帮助广大客户更好地使用云、基于云构建更加稳定可靠的业务系统,提升业务稳定性。我们期望能够分享更多帮助企业客户上云、用好云,让客户云上业务运行更加稳定可靠的技术,您可用钉钉扫描下方二维码,加入阿里云SRE技术学院钉钉圈子,和更多云上人交流关于云平台的那些事。

image.png

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
相关文章
|
13天前
|
Java API 微服务
【Spring Boot系列】通过OpenAPI规范构建微服务服务接口
【4月更文挑战第5天】通过OpenAPI接口构建Spring Boot服务RestAPI接口
|
11月前
|
JSON 前端开发 数据可视化
使用 OpenAPI 构建 API 文档
使用 OpenAPI 构建 API 文档
504 1
|
弹性计算 Kubernetes Cloud Native
云原生微服务应用平台 EDAS 2022 年度报告
最近一年来,随着我们的客户对于云技术的诉求从资源快速交付的服务,转变为对资源精益运用的服务。EDAS 团队结合公共云上所服务的企业类客户的几万个应用,选取了 8 个最具代表性的指标,进行了一次系统性的分析整理和总结,希望可以给当前正在从事软件架构的从业人员一个侧面的视角,来了解一些当下发生在身边的技术现象。
云原生微服务应用平台 EDAS 2022 年度报告
|
机器学习/深度学习 人工智能 自然语言处理
明略科技HAO图谱Open API:开放企业级知识图谱构建能力
首个语音实时生成图谱的企业级知识图谱开发工具包。
504 0
明略科技HAO图谱Open API:开放企业级知识图谱构建能力
|
弹性计算 应用服务中间件 微服务
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
|
5月前
|
监控 应用服务中间件
如下请问EDAS的这个问题怎么解决? 应用id:2b0e6935-47fb-40ec-a11d-7dac320aecc1 集群中的节点内存是足够的,部署跑不起来 可以帮忙看看吗,以前集群下应用发布都是正常的,最近集群下应用部署基本都报错跑不起来,提示节点不可用
如下请问EDAS的这个问题怎么解决? 应用id:2b0e6935-47fb-40ec-a11d-7dac320aecc1 集群中的节点内存是足够的,部署跑不起来 可以帮忙看看吗,以前集群下应用发布都是正常的,最近集群下应用部署基本都报错跑不起来,提示节点不可用
60 2
|
8月前
|
Kubernetes 负载均衡 Serverless
通过EDAS部署并访问应用
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ASK,掌握微服务应用的部署和访问。
255 1
|
8月前
|
Kubernetes Serverless 应用服务中间件
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ASK,体验微服务应用的部署、访问和高级发布能力。
248 0
|
弹性计算 Kubernetes Cloud Native
云原生微服务应用平台 EDAS 2022 年度报告
最近一年来,随着我们的客户对于云技术的诉求从资源快速交付的服务,转变为对资源精益运用的服务。EDAS 团队结合公共云上所服务的企业类客户的几万个应用,选取了 8 个最具代表性的指标,进行了一次系统性的分析整理和总结,希望可以给当前正在从事软件架构的从业人员一个侧面的视角,来了解一些当下发生在身边的技术现象。
343 1
云原生微服务应用平台 EDAS 2022 年度报告

热门文章

最新文章