怎么在私有云上:使用 CLI 快速部署 EDAS 应用

怎么在私有云上:使用 CLI 快速部署 EDAS 应用

https://help.aliyun.com/document_detail/96025.html?spm=a2c4g.11186623.2.28.ca922e91jJCv1N

按照这篇文章的步骤做未能成功。文章似乎漏了什么,像endpoint在哪里配置。。。。

展开
收起
qq413881461 2018-12-24 21:18:59 1142 分享 版权
阿里云 AI 助理回答

在私有云环境中使用阿里云CLI快速部署EDAS(企业级分布式应用服务)应用时,确实需要特别注意一些关键配置,例如Endpoint的设置。以下是基于您提供的参考资料和问题的具体解答。


1. 确保环境准备完成

在开始部署之前,请确保以下前提条件已满足: - 安装并配置阿里云CLI:根据操作系统选择合适的安装方式,并完成CLI工具的安装。 - 配置AccessKey凭证:运行aliyun configure命令,输入您的AccessKey ID、AccessKey Secret、默认Region ID等信息。

aliyun configure
Configuring profile 'default' ...
Aliyun Access Key ID [None]: <Your AccessKey ID>
Aliyun Access Key Secret [None]: <Your AccessKey Secret>
Default Region Id [None]: cn-hangzhou
Default output format [json]: json
Default Language [zh]: zh
  • 创建ECS实例:确保您已在私有云环境中创建了目标ECS实例,用于部署应用。

2. 配置Endpoint

在私有云环境中,Endpoint的配置尤为重要。如果未正确设置Endpoint,CLI将无法找到对应的服务地址,导致部署失败。以下是两种常见的Endpoint配置方式:

2.1 自定义Endpoint

您可以在初始化客户端时直接指定Endpoint。例如,在调用EDAS API时,通过--endpoint参数显式指定服务地址:

aliyun edas InsertOrUpdateRegion --RegionTag cn-beijing:testheng --RegionName testheng --region cn-beijing --endpoint "edas.cn-beijing.aliyuncs.com"

2.2 使用RegionId自动映射Endpoint

如果您未显式指定Endpoint,CLI会根据传入的RegionId自动映射到对应的Endpoint。但前提是该RegionId必须存在于SDK的RegionIdEndpoint关系对象中。例如:

aliyun edas ListAliyunRegion --region cn-beijing

如果RegionId不在关系对象中,CLI会尝试根据拼接规则生成Endpoint

注意:在私有云环境中,可能需要手动配置Endpoint,因为默认的公共云Endpoint可能不适用。


3. 快速部署EDAS应用的步骤

以下是使用CLI快速部署EDAS应用的具体步骤:

3.1 创建集群

在私有云环境中,首先需要创建一个ECS集群。可以通过以下命令完成:

CLUSTER_ID=$(aliyun edas InsertCluster --ClusterName $CLUSTER_NAME --ClusterType 2 --NetworkMode 2 --VpcId $VPC_ID --logicalRegionId $REGION:$NAMESPACE --region $REGION --endpoint "edas.cn-beijing.aliyuncs.com" | sed -E 's/.*"ClusterId":"([a-z0-9-]*)".*/\1/g')
  • $CLUSTER_NAME:集群名称。
  • $VPC_ID:私有云中的VPC ID。
  • $REGION:区域ID,例如cn-beijing
  • $NAMESPACE:命名空间。

3.2 导入ECS实例

将目标ECS实例导入到刚刚创建的集群中:

aliyun edas TransformClusterMember --InstanceIds $ECS_ID --TargetClusterId $CLUSTER_ID --Password Hello1234 >> /dev/null
  • $ECS_ID:目标ECS实例的ID。
  • $CLUSTER_ID:上一步创建的集群ID。

等待实例导入完成:

for i in $(seq 300); do
    OUT=$(aliyun edas ListClusterMembers --ClusterId $CLUSTER_ID | grep EcuId) && break
    sleep 1
done
ECU_ID=$(echo $OUT | sed -E 's/.*"EcuId":"([a-z0-9-]*)".*/\1/g')

3.3 创建应用

在集群中创建应用:

APP_ID=$(aliyun edas InsertApplication --ApplicationName $APP_NAME --BuildPackId 51 --EcuInfo $ECU_ID --ClusterId $CLUSTER_ID --logicalRegionId $REGION:$NAMESPACE | sed -E 's/.*"AppId":"([a-z0-9-]*)".*/\1/g')
printf "An application is created by CLI, App ID:%s\n" $APP_ID
  • $APP_NAME:应用名称。
  • $ECU_ID:上一步获取的ECU ID。

3.4 上传部署包并发起部署请求

将应用的部署包上传至OSS,并发起部署请求:

# 上传部署包到OSS
ossutil cp -f $PACKAGE oss://$OSS_BUCKET/$PACKAGE >> /dev/null
PKG_URL=$(ossutil sign oss://$OSS_BUCKET/$PACKAGE | head -1)

# 发起部署请求
CO_ID=$(aliyun edas DeployApplication --AppId $APP_ID --PackageVersion $VERSION --DeployType url --WarUrl "$PKG_URL" --GroupId $GROUP_ID | grep '.*"ChangeOrderId":' | sed -E 's/.*"ChangeOrderId":\s"([a-z0-9-]*)".*/\1/g')

# 等待部署完成
for i in $(seq 300); do
    STATUS=$(aliyun edas GetChangeOrderInfo --ChangeOrderId $CO_ID | grep '.*"PipelineStatus":' | sed -E 's/.*"PipelineStatus":\s(.).*/\1/g')
    [[ 2 = ${STATUS} ]] && break
    sleep 1
done
  • $PACKAGE:本地部署包路径。
  • $OSS_BUCKET:OSS存储桶名称。
  • $VERSION:部署包版本号。
  • $GROUP_ID:分组ID。

4. 查看部署结果

部署完成后,您可以通过以下步骤查看应用的运行状态: 1. 登录EDAS控制台。 2. 在左侧导航栏,选择应用管理 > 应用列表。 3. 单击目标应用名称,进入应用基本信息页面。 4. 单击实例部署信息页签,检查应用实例的运行状态是否为“运行正常”。


5. 常见问题排查

如果部署失败,请参考以下建议进行排查: - Endpoint配置错误:确保Endpoint正确指向私有云环境的服务地址。 - 权限不足:检查AccessKey是否具有足够的权限。 - 网络问题:确保CLI能够访问私有云环境中的EDAS服务。 - 日志分析:通过GetChangeOrderInfo接口获取变更流程的详细日志,定位问题原因。


总结

在私有云环境中使用CLI快速部署EDAS应用时,Endpoint的正确配置是关键。请根据实际情况选择自定义Endpoint或通过RegionId自动映射的方式。同时,确保所有前置条件(如AccessKey配置、ECS实例创建等)已完成。如果仍有问题,可以参考官方文档或联系技术支持团队获取帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

为企业提供高效、稳定、易扩展的中间件产品。

收录在圈子:
+ 订阅
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
还有其他疑问?
咨询AI助理