3. 安装SDK
智能边缘平台 IEF SDK支持go 1.14及以上版本。执行go version检查当前Go的版本信息。
使用go get安装华为云Go SDK,执行如下命令安装华为云Go SDK库以及相关依赖库,具体的SDK版本号请参见SDK开发中心。
Copied!
# 安装华为云Go库
go get github.com/huaweicloud/huaweicloud-sdk-go-v3
4. 代码示例
登录边缘节点的机器,注册边缘节点并下载并保存节点证书
以下代码展示如何在IEF平台注册边缘节点并下载节点证书:
Copied!
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 := os.Getenv("HUAWEICLOUD_SDK_AK")
sk := os.Getenv("HUAWEICLOUD_SDK_SK")
projectID := "<YOUR PROJECT ID>"
userRegion := "<YOUR REGION>"
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
Copied!
wget https://ief-agent-software.obs.<YOUR REGION>.huawei.com/edge-installer_1.0.10_<YOUR ARCH>.tar.gz
然后执行以下步骤将边缘节点纳管至IEF平台
a. 解压edge-installer
Copied!
sudo tar -zxvf edge-installer_1.0.10_<YOUR ARCH>.tar.g -C /opt
b. 解压证书文件至/opt/IEF/Cert
Copied!
sudo mkdir -p /opt/IEF/Cert; sudo tar -zxvf <YOUR NODE NAME>.tar.gz -C /opt/IEF/Cert
c. 执行安装命令
Copied!
cd /opt/edge-installer; sudo ./installer -op=install
至此,注册和纳管节点完成,可以在IEF平台上查看已纳管的节点
0. 版本说明
本示例基于华为云SDK V3.0版本开发。
1. 示例简介
华为云提供了智能边缘平台 IEF SDK,集成SDK来调用相关API,从而实现对智能边缘平台服务的快速操作。
该示例展示了如何使用IEF平台注册边缘节点并将您的边缘节点纳管到平台上。
2. 开发前准备
3. 安装SDK
智能边缘平台 IEF SDK支持go 1.14及以上版本。执行go version检查当前Go的版本信息。
使用go get安装华为云Go SDK,执行如下命令安装华为云Go SDK库以及相关依赖库,具体的SDK版本号请参见SDK开发中心。
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
然后执行以下步骤将边缘节点纳管至IEF平台
a. 解压edge-installer
b. 解压证书文件至/opt/IEF/Cert
c. 执行安装命令
至此,注册和纳管节点完成,可以在IEF平台上查看已纳管的节点
5. 参考
更多信息请参考:智能边缘平台 IEF 文档
6. 修订记录