通过华为云SDK注册并纳管节点
引导式阅读
Go
通过华为云SDK注册并纳管节点
作者
C***
上架时间
2023-11-25 07:32:28

0. 版本说明

本示例基于华为云SDK V3.0版本开发。

1. 示例简介

华为云提供了智能边缘平台 IEF SDK,集成SDK来调用相关API,从而实现对智能边缘平台服务的快速操作。

该示例展示了如何使用IEF平台注册边缘节点并将您的边缘节点纳管到平台上。

2. 开发前准备

  • 已注册华为云,并完成实名认证。
  • 已在华为云控制台授权使用IEF服务。
  • 具备开发环境 ,支持go 1.16及以上版本。
  • 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见访问密钥。
  • 已获取IEF服务对应区域的项目ID,请在华为云控制台“我的凭证 > API凭证”页面上查看项目ID。具体请参见API凭证。
  • 准备一台满足IEF边缘侧组件操作系统要求的linux机器或华为云ecs虚拟机作为边缘节点

3. 安装SDK

智能边缘平台 IEF SDK支持go 1.14及以上版本。执行go version检查当前Go的版本信息。

使用go get安装华为云Go SDK,执行如下命令安装华为云Go SDK库以及相关依赖库,具体的SDK版本号请参见SDK开发中心

# 安装华为云Go库 go get github.com/huaweicloud/huaweicloud-sdk-go-v3

4. 代码示例

登录边缘节点的机器,注册边缘节点并下载并保存节点证书

以下代码展示如何在IEF平台注册边缘节点并下载节点证书:

package main import ( "encoding/base64" "fmt" "net/http" "os" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" ief "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ief/v1" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ief/v1/model" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/ief/v1/region" ) func main() { /* 以下部分请替换成用户实际参数 */ // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") // 华为云账号Access Key sk := os.Getenv("HUAWEICLOUD_SDK_SK") // 华为云账号Secret Access Key projectID := "<YOUR PROJECT ID>" // 华为云账号项目ID userRegion := "<YOUR REGION>" // 服务所在区域,eg: cn-north-4 nodeName := "<YOUR NODE NAME>" // 边缘节点名称 /* 主流程 */ auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectID). Build() fmt.Printf("Build auth successfully.\n") client := ief.NewIefClient( ief.IefClientBuilder(). WithRegion(region.ValueOf(userRegion)). WithCredential(auth). Build()) fmt.Printf("Build client successfully.\n") request := &model.CreateEdgeNodeRequest{ Body: &model.Node{ Node: &model.EdgeNode{ Name: nodeName, }, }, } /* 创建节点 */ response, err := client.CreateEdgeNode(request) if err == nil { fmt.Printf("Start to create node...\n") } else { fmt.Printf("Create node failed, error: %v\n", err) return } if response == nil || response.HttpStatusCode != http.StatusCreated { fmt.Printf("Create node failed with http code %d\n", response.HttpStatusCode) return } fmt.Printf("Create node success...\n") fmt.Printf("Start to save edge node package...\n") decodeBytes, err := base64.StdEncoding.DecodeString(response.Node.Package) if err != nil { fmt.Printf("Decode node package failed, error: %v\n", err) return } if err = os.WriteFile("<YOUR NODE NAME>.tar.gz", decodeBytes, 0666); err != nil { fmt.Printf("save edge node package failed, error: %v\n", err) return } }

在边缘节点保存 '<YOUR NODE NAME>.tar.gz' 证书文件后,下载IEF边缘组件安装程序edge-installer,根据边缘节点的操作系统内核架构替换 '<YOUR ARCH>' 为实际参数,支持输入x86_64,arm64和arm32

wget https://ief-agent-software.obs.<YOUR REGION>.huawei.com/edge-installer_1.0.10_<YOUR ARCH>.tar.gz

然后执行以下步骤将边缘节点纳管至IEF平台

a. 解压edge-installer

sudo tar -zxvf edge-installer_1.0.10_<YOUR ARCH>.tar.g -C /opt

b. 解压证书文件至/opt/IEF/Cert

sudo mkdir -p /opt/IEF/Cert; sudo tar -zxvf <YOUR NODE NAME>.tar.gz -C /opt/IEF/Cert

c. 执行安装命令

cd /opt/edge-installer; sudo ./installer -op=install

至此,注册和纳管节点完成,可以在IEF平台上查看已纳管的节点

5. 参考

更多信息请参考:智能边缘平台 IEF 文档

6. 修订记录

发布日期 文档版本 修订说明
2022-9-30 1.0 文档首次发布