• [问题求助] 开发软件
    怎么购买软件APP,我有个软件需要开发
  • [问题求助] API Explorer关于RDS的代码实例报DefaultHttpClient ConnectionException
    代码如下,除了改动了示例代码的AK和SK其他都没动,而且我的AK和SK绝对没错啊,为什么连接不上呢???public class ExploerTest { @Test public void test(){ // String ak = EncryAnddecryUtils.decryptByAES(AccessConfig.HUAWEI_CLOUD_IAM_AK); // String sk = EncryAnddecryUtils.decryptByAES(AccessConfig.HUAWEI_CLOUD_IAM_SK); String ak = "我的ak"; String sk = "我的sk"; ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); RdsClient client = RdsClient.newBuilder() .withCredential(auth) .withRegion(RdsRegion.valueOf("cn-east-2")) .build(); ListApiVersionRequest request = new ListApiVersionRequest(); try { ListApiVersionResponse response = client.listApiVersion(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }完整的报错如下:com.huaweicloud.sdk.core.exception.ConnectionException: DefaultHttpClient ConnectionException at com.huaweicloud.sdk.core.impl.DefaultHttpClient.syncInvokeHttp(DefaultHttpClient.java:283) at com.huaweicloud.sdk.core.HcClient.syncInvokeHttp(HcClient.java:164) at com.huaweicloud.sdk.core.HcClient.syncInvokeHttp(HcClient.java:139) at com.huaweicloud.sdk.core.auth.BasicCredentials.processAuthParams(BasicCredentials.java:115) at com.huaweicloud.sdk.core.ClientBuilder.build(ClientBuilder.java:122) at com.example.middle_platform.utils.ExploerTest.test(ExploerTest.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1257) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: java.net.ConnectException: Failed to connect to iam.myhuaweicloud.com/43.254.0.77:443 at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297) at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207) at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226) at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106) at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74) at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255) at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at com.huaweicloud.sdk.core.impl.DefaultHttpListener.intercept(DefaultHttpListener.java:68) at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) at com.huaweicloud.sdk.core.impl.DefaultHttpClient.syncInvokeHttp(DefaultHttpClient.java:275) ... 74 more Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128) at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295) ... 92 more
  • [使用说明] CodeArts IDE华为云API第二章-华为云API实战演练
    在上一篇中,给大家介绍了CodeArts中华为云API的功能和用法。本文将通过实战演练的形式,带着大家一块体验下整个API开发过程。那么话不多说,Let's go!这里以一个大家经常遇到的应用场景举例:文字识别。面对日常生活中涉及到的各种票证--身份证、驾驶证、银行卡、火车票、发票等等,甚至是核酸检测记录—各种票据凭证识别工作耗费大量人力物力,尤其现在大多数都是电子版,这里我们通过华为云文字识别OCR服务提供的API快速实现一个发票识别应用,来体验下CodeArts以及华为云API的强大能力。一、打开华为云插件,搜索想要实现的功能:发票识别,查看搜索出的API,可以看到华为云为发票识别提供了丰富的API,点击打开API详情,挑选出符合需求的API这里我们挑选增值税发票识别,通过查看API的详细文档,可以了解到此API可以直接将图片的base64编码作为参数直接传入,也可以支持传入远程服务器中图片的url路径,方便对接自己公司的票务系统,这些参数都将作为http post请求中的body体发送给华为云OCR服务。注:图片转base64的方法可以直接用JDK提供的Base64.getEncodeer().encodeToString(data)实现。点击在线体验API,此时跳转到了API调测平台API Explorer,在这里可以将图片的base64编码填入Body体重的image参数,点击调试,右下的响应结果会将接口的返回体打印出来。二、体验完了API,就要开始写代码了先来学习下一个API调用的完整流程,点击文档右侧的SDK示例代码,可以看到一个API完整调用流程:通过BasicCredentials鉴权,然后开始组装HttpClient模型,之后将参数封装到request模型中,并作为参数传入到client发送的API请求中。注意调用API的几个必填参数:ak/sk:access key和secret access key,用于鉴权。region:云服务资源所在的区域projectId:你要操作的region中的项目ID。如果projectId不填,SDK会自动获取region下第一个projectId将刚刚的base64编码拷贝到参数中,这时右侧示例代码同步生成对应的参数模型。可以将SDK代码拷贝到自己的工程中,进行调试。注1:通过CodeArts新建初始化工程可以参考CodeArts使用说明文章,这里就不再赘述,本教程工程模板附在本文末尾注2:由于image字符串较长,这里没有直接拷贝到方法中,而是抽取了一个参数image传入注3:如果是内网用户通过代理访问API,则需要配置代理,如没有Certificate证书,则可以http代理类关闭SSL校验。三、如果仅仅是copy代码是不是还太初阶了?CodeArts华为云API还提供华为云SDK代码补全功能,通过右键菜单或者命令行打开开关(默认关闭),在用户输入代码时会提供API联想提示,并插入SDK代码,API代码一键生成!SDK代码补全支持以下场景:识别上下文中的鉴权、client信息,如果用户已实现鉴权、client封装等,则会直接获取对应的引用调用API如果SDK代码中的声明变量名称重复,则会自动加上后缀识别用户已经声明的日志类,并替换到SDK代码中自动安装SDK的依赖包到pom中,并刷新maven dependency样例工程中已经将鉴权、client封装好,这时在方法中插入代码,选中recognizeVatInvoice,将直接复用上面声明的myClient变量,将剩余代码插入到方法中。此时再将image封装到请求的body体中,就完成了整个API调用代码。启动调试,查看结果。注:当前还不支持参数模型代码自动生成,该功能将在下个版本上线。大家是否也跃跃欲试了呢,欢迎大家申请试用CodeArts,抢鲜体验华为云API!
  • [使用说明] CodeArts IDE华为云API第一章-玩转华为云API
    华为云当前有120+云服务提供4000+API供广大开发者调用,本篇文章主要为您讲解CodeArts上如何使用华为云API,包括华为云API检索、API文档查看、API调试,提供SDK示例代码供开发者学习如何使用API。同时,在开发者实际编程过程中,提供SDK代码自动补全功能助你快速集成开发。华为云API介绍打开CodeArts后,点击左侧侧边栏中的华为云API图标,则可打开华为云API插件主面板,如果是第一次进入,右侧会弹出华为云服务API全景图,为您介绍此插件丰富的能力。你也可以通过点击右上角的API全景图按钮打开全景图。API检索打开的华为云API,可以在搜索框中搜索华为云发布的所有云服务、API、SDK、错误码等。同时下面的热门推荐会为你展示最近有哪些热门的API。查看API文档根据搜索结果选择满足诉求的API,右侧panel将会打开API文档,可以查看此API的详细信息包括接口说明、URL、参数说明及示例、返回结果说明及示例等,方便你全方位的了解此API功能。API调试在API文档上方,点击“在线体验API”按钮,会跳转到API调测工具APIExplorer的页面,你可以在此调试该APISDK示例代码在API文档右侧,点击切换到“SDK示例代码”页签,这里的示例代码会指导你如何通过华为云SDK代码来调用API,并且在左侧编辑此API参数时,右侧面板会同步将参数模型的封装插入到示例代码中。SDK代码自动补全华为云API插件还提供代码补全功能,辅助开发者在编程过程中,通过识别用户上下文,将SDK代码片段补全,使调用华为云API更方便。SDK代码补全功能默认关闭,开发者可以通过鼠标右键中的菜单栏或者命令行-启用华为云SDK代码补全助手来打开开关。这时在编辑器中输入代码时,插件会联想出匹配的华为云API。开发者选中后,会对此时代码插入位置的上下文进行分析,将SDK代码插入到该位置。Talk is cheap,show you the code!实际编码过程中更加详细的玩法,请见CodeArts华为云API第二章-华为云API实战演练。
  • 【华为云Stack ManageOne 】订单执行结果查询没有资源id
    通过订单申请资源后,查询订单执行详情没有返回创建的资源的id,那应该如何查询创建的资源的详情?
  • [问题求助] 接口对接问题请教
    好望云获取token值,这个userID是哪个?IAM用户ID和用户ID,我都实验过了,但是都不正确,请大佬给指点下post地址:https://api-ivm.myhuaweicloud.com/v1/05ebb5b0b70026090f9fc00e94198c60/enterprises/access-tokenIAM用户ID:05ebb5b1c50010e71f52c00e0660aed8,账号ID:05ebb5b0b70026090f9fc00e94198c60{  "ak" : "3DQVHTDH4EQUFVJVW6PP",  "sk" : "2EKSWPY7J5UcbzVSfYqJk9r7iLMMQQrIIrdeker1"} 
  • [API使用] Fastai中的API映射
    考虑到Fastai应用的广泛,想问下MindSpore有没有与Fastai库相对应的API映射,就像MindSpore与PyTorch和TenserFlow对应的文档一样。
  • [技术干货] 将Graph Explorer搬上JupyterLab:使用GES4Jupyter连接GES并进行图探索
    GES4Jupyter是一款可以在JupyterLab中连接访问GES并可视化的工具。工具中封装了部分GES业务面接口,并提供对返回数据的可视化能力。基于该工具在Jupyter上进行图探索,可以大大降低编码成本,丰富JupyterLab的数据表现力。详情参考:https://bbs.huaweicloud.com/blogs/361607
  • [教程] 将Graph Explorer搬上JupyterLab:使用GES4Jupyter连接GES并进行图探索
    GES4Jupyter是一款可以在JupyterLab中连接访问GES并可视化的工具。工具中封装了部分GES业务面接口,并提供对返回数据的可视化能力。基于该工具在Jupyter上进行图探索,可以大大降低编码成本,丰富JupyterLab的数据表现力。本文截选自华为云社区《将Graph Explorer搬上JupyterLab:使用GES4Jupyter连接GES并进行图探索》 ,欲查看详情,请点击链接查看博文:https://bbs.huaweicloud.com/blogs/361607
  • [热门活动] 【HCSD华为云实践营·成都东软学院站】实践篇:体验5分钟完成文字转定制化语音,赢取华为耳机、周边等好礼
    语音合成,是一种将文本转换成逼真语音的服务。用户通过实时访问和调用API获取语音合成结果,将用户输入的文字合成为音频。通过音色选择、自定义音量、语速,为企业和个人提供个性化的发音服务。毕业季将至,快快体验华为云API Explore语音合成接口,为即将离开校园的学长学姐送上最真挚的祝福吧!按照【操作指导】完成操作即可抽奖!操作指导步骤一:访问API Explorer的AI语音合成接口点击链接进入API Explorer页面,选择【语音合成接口】,(注意:要登录自己的账号哦,没有账号请注册账号)步骤二:体验接口调试功能在text参数里随意输入想合成的文本,发起调试注:改变property的参数即可切换不同音色步骤三:将语音编码转成音频文件复制步骤二调试成功的响应体,复制按键如图所示注:如响应结果提示“响应体内容长度超出显示限制,下载查看完整内容”,则需要先下载查看完整内容并进行复制点击【预览代码】进入新页面,并点击右上角【在CloudIDE上】打开(若未开通CloudIDE,进入CloudIDE产品页面点击【立即体验】免费开通即可)进入CloudIDE双击json文件将之前复制的响应体粘贴到json文件预置的空数组中(提示:若要拼凑多个转语音编码,可生成多个语音编码的响应体,复制到数组中,用逗号隔开)点击运行到Explorer下,选择mp3文件,右键,选择download,即可下载生成音频文件来听啦体验抽奖完成上述【操作指导】内容并在本贴反馈体验截图(必须包含生产的MP3文件及右上角华为云账号,如下图所示)即可抽奖>>抽奖链接说明:必须先完成体验方可进行抽奖,如先进行抽奖再完成体验则不发放奖品!
  • [交流吐槽] 快速入门 - 开始使用 Azure Digital Twins Explorer 中的示例场景
    在本快速入门中,你将使用 Azure Digital Twins Explorer 来探索预生成的 Azure 数字孪生图形。 通过此工具,你可在 Azure 门户中将 Azure 数字孪生数据可视化并与之交互。通过 Azure 数字孪生,可创建真实环境的实时模型并与之交互,这些模型可以成为更广泛的 IoT 解决方案的一部分。 首先,将单个元素建模为“数字孪生”。 然后将它们连接到一个知识图,该图可以响应实时事件并查询信息。你将完成以下步骤:创建一个 Azure 数字孪生实例,并在 Azure Digital Twins Explorer 中连接到该实例。上传预生成的模型和图形数据来构造示例方案。探索已创建的方案图形。对图形进行更改。回顾你从体验中学到的知识。你将使用的 Azure 数字孪生示例图表示具有两个楼层和两个房间的建筑。 Floor0 包含 Room0,Floor1 包含 Room1。 该图形将如下图像所示:必备知识要完成本快速入门,你需要一个 Azure 订阅。 如果还没有 Azure 订阅,可立即免费创建一个。对于在快速入门中使用的示例图形,你还需要下载相关资料。 使用以下说明下载三个必需的文件。 稍后,你将按照更多说明将其上传到 Azure 数字孪生。Room.json:这是一个模型文件,表示建筑中的房间。 导航到链接,右键单击屏幕上的任意位置,然后在浏览器的右键单击菜单中选择“另存为”。 使用下面的“另存为”窗口将文件保存在计算机上的某个位置,文件名为“Room.json”。Floor.json:这是一个模型文件,表示建筑中的楼层。 导航到链接,右键单击屏幕上的任意位置,然后在浏览器的右键单击菜单中选择“另存为”。 使用下面的“另存为”窗口将文件保存在 Room.json 所在的位置,文件名为“Floor.json” 。buildingScenario.xlsx:此文件包含房间和楼层孪生体以及它们之间的关系的图。 根据你的浏览器设置,选择此链接可能会将 buildingScenario.xlsx 文件自动下载到您的默认下载位置,或者它可能会在您的浏览器中打开该文件并提供下载选项。 以下是该下载选项在 Microsoft Edge 中的外观:设置 Azure 数字孪生要使用 Azure 数字孪生,第一步是创建一个 Azure 数字孪生实例。 创建服务的实例后,可在 Azure Digital Twins Explorer 中连接到该实例。在本快速入门中,从前到后你都要使用 Azure Digital Twins Explorer 来操作该实例。本部分的余下内容将演练该实例的创建。创建 Azure 数字孪生实例在本部分中,将使用 Azure 门户创建新的 Azure 数字孪生实例。 导航到门户,并使用凭据登录。登录门户后,首先在 Azure 服务的主页菜单中选择“创建资源”。在搜索框中搜索“Azure 数字孪生”,并从结果中选择“Azure 数字孪生”服务。将“计划”字段设置为“Azure 数字孪生”,并选择"创建按钮以开始创建服务的新实例。     3.填写安装程序的“基本信息”选项卡上的字段,包括订阅、资源组、新实例的资源名称和区域。 选中“分配 Azure 数字孪生数据所有者角色”框,以便为你自己授予管理实例中数据的权限。     4.选择“查看 + 创建”以完成实例创建。     5.你将看到一个摘要页,其中显示了输入的详细信息。 确认这些信息,然后选择“创建”以创建实例。随后你会转到“概述”页,可在其中跟踪实例的部署状态。等待页面显示部署已完成。在 Azure Digital Twins Explorer 中打开实例部署完成后,使用“转到资源”按钮导航到门户中该实例的“概述”页。接下来,选择“打开 Azure Digital Twins Explorer (预览版)”按钮。这将在新选项卡中打开 Azure Digital Twins Explorer。如果这是你第一次使用 Explorer,你将看到一个总结其主要功能的欢迎模式。上传示例材料接下来,需要将示例模型和图导入到 Azure Digital Twins Explorer 中。 你将使用在先决条件部分中下载到计算机的模型文件和图文件。模型Azure 数字孪生解决方案的第一步是为你的环境定义词汇。 你需要创建自定义模型,这些模型用于描述环境中存在的实体类型。每个模型都是用 JSON-LD 这样的语言编写的,这种语言称为数字孪生定义语言 (DTDL)。 每个模型根据属性、遥测、关系和组件来描述单个类型的实体 。 稍后,你将使用这些模型作为表示这些类型的特定实例的数字孪生的基础。通常,在创建模型时,需要完成 3 个步骤:编写模型定义。 在本快速入门中,此步骤已作为示例解决方案的一部分完成。验证它以确保语法正确。 在本快速入门中,此步骤已作为示例解决方案的一部分完成。将它上传到 Azure 数字孪生实例。本快速入门已为你编写和验证了模型文件。 它们包含在你下载的解决方案中。 在本部分中,你需要将两个预先编写的模型上传到实例,以定义构建环境的这些组件:Floor会议室上传模型(.json 文件)按照以下步骤上传模型(之前下载的 .json 文件)。在“模型”面板中,选择“上传模型”图标,该图标显示一个指向上的箭头。在显示的“打开”窗口中,导航到包含之前下载的 Room.json 和 Floor.json 文件的文件夹 。选择 Room.json 和 Floor.json,然后选择“打开”来将其上传 。Azure Digital Twins Explorer 会将这些模型文件上传到 Azure 数字孪生实例。 它们应在“模型”面板中显示,并显示其易记名称和完整的模型 ID。可以为任一模型选择“查看模型”以查看其背后的 DTDL 代码。孪生和孪生图现在,一些模型已上传到 Azure 数字孪生实例,你可以根据模型定义添加数字孪生。数字孪生表示你的商业环境中的实际实体。 它们可以是诸如农场上的传感器、汽车上的灯,或者(在本快速入门中)建筑楼层上的房间等实体。 你可以创建任意给定模型类型的许多孪生,例如都使用“房间”模型的多个房间。 将它们与关系连接到表示完整环境的“孪生图形”。在本部分,将上传预先创建的孪生体,这些孪生体已连接到预先创建的图中。 该图包含两个楼层和两个房间,并通过下列布局连接:楼层 0包含 Room0楼层 1包含 Room1导入图(.xlsx 文件)按照以下步骤导入图(之前下载的 .xlsx 文件)。在“孪生图”面板中,选择“导入图形”图标,该图标显示一个指向云的箭头 。在“打开”窗口中,导航到之前下载的 buildingScenario.xlsx 文件。 此文件包含示例图的说明。 选择“打开” 。几秒钟后,Azure Digital Twins Explorer 将打开“导入”视图,其中显示了要加载的图形的预览。若要完成图形导入,请选择图形预览面板右上角的“保存”图标。Azure Digital Twins Explorer 将使用上传的文件来创建所请求的孪生体及其相互关系。 在继续之前,请确保显示以下对话框,指示导入成功。       选择“关闭” 。         现在,图形已上传到 Azure Digital Twins Explorer,并将重载“孪生图”面板。 它将显示为空。    5.若要查看该图,请在 Azure Digital Twins Explorer 窗口顶部附近的“查询资源管理器”面板中选择“运行查询”按钮 。该操作将运行默认查询以选择并显示所有数字孪生。 Azure Digital Twins Explorer 将从服务中检索所有孪生和关系。 它将在“孪生图”面板中绘制它们定义的图形。浏览图现在,你可看到已上传的示例方案图形。这些圆(图形“节点”)表示数字孪生。 这些线条表示关系。 Floor0 孪生包含 Room0,Floor1 孪生包含 Room1 。如果使用的是鼠标,可在图形中单击并拖动来移动元素。查看孪生属性可选择一个孪生体,在“孪生属性”面板中查看其属性及其值的列表。查询图形在 Azure 数字孪生中,可以使用 SQL 样式的 Azure 数字孪生查询语言查询孪生图以回答环境相关问题。查询图中孪生的一种方法是按其属性进行查询。 基于属性的查询可以帮助回答环境相关问题。 例如,可以在你的环境中找到需要注意的离群值。在本部分中,你将运行一个查询来回答你的环境中有多少孪生的温度高于 75。若要查看答案,请在“查询资源管理器”面板中运行以下查询。SELECT * FROM DIGITALTWINS T WHERE T.Temperature > 75回想一下之前查看过的孪生属性,Room0 的温度为 70,Room1 的温度为 80。 Floor 孪生没有 Temperature 属性。 因此,此处的结果中仅显示 Room1。编辑图中的数据在完全连接的 Azure 数字孪生解决方案中,图形中的孪生体可以从实际 IoT 设备接收实时更新,并更新其属性,以与实际环境保持同步。 也可使用 Azure Digital Twins Explorer 或其他开发接口(如 API 或 Azure CLI)在图形中手动设置孪生体的属性。为简单起见,你将使用此处的 Azure Digital Twins Explorer 将 Room0 的温度手动设置为 76。首先,重新运行以下查询以选择所有数字孪生体。 这将在“孪生图”面板中再次显示完整的图。SELECT * FROM DIGITALTWINS选择“Room0”,在“孪生属性”面板中调出其属性列表。此列表中的属性是可编辑的。 选择温度值 70 来输入新值。 输入 76,然后选择“保存”图标更新温度。成功更新属性后,你将看到“补丁信息”框,其中显示了在后台使用 Azure 数字孪生 API 进行更新的补丁代码。关闭补丁信息。查询以查看结果若要验证该图是否已成功将更新内容注册为 Room0 的温度,请重新运行先前进行的查询,获取环境中温度高于 75 的所有孪生。SELECT * FROM DIGITALTWINS T WHERE T.Temperature > 75现在,房间 0 的温度已从 70 更改为 76,因此两个孪生都应出现在结果中 。回顾所学内容并将其置于上下文中进行理解在本快速入门中,你创建了一个 Azure 数字孪生实例,并在 Azure Digital Twins Explorer 中使用示例方案对其进行了填充。然后,你探索了图,方法是:使用查询以回答有关方案的问题。编辑数字孪生上的属性。再次运行查询,查看答案如何因更新而发生变化。本练习的目的是演示如何使用 Azure 数字孪生图回答有关环境的问题(即使在环境持续变化时)。在本快速入门中,你手动更新了温度。 在 Azure 数字孪生中,经常会将数字孪生连接到实际的 IoT 设备,以便它们能够根据遥测数据自动接收更新。 通过这种方式,你可以构建始终反映环境真实状态的实时图。 你可以使用查询来实时获取环境中正在发生的事情的信息。清理资源若要在本快速入门完成后进行清理,请根据接下来要做的事情选择要删除的 Azure 数字孪生资源。如果你计划继续学习 Azure 数字孪生快速入门和教程,可将本快速入门中使用的实例重复用于那些文章,无需将它们删除。如果要继续使用本文中设置的 Azure 数字孪生实例,但想要清除其部分或全部模型、孪生体和关系,可在 Azure Cloud Shell 窗口中使用 CLI 命令 az dt 来删除要移除的元素。如果你不再需要 Azure 数字孪生实例,可以使用 Azure 门户将其删除。在门户中导航回实例的“概述”页。 (如果已关闭该选项卡,可以在 Azure 门户搜索栏中搜索该实例的名称再次找到它,然后从搜索结果中选择该实例。)选择“删除”以删除实例,包括所有模型和孪生体。
  • [热门活动] 【已结束】体验5分钟完成文字转定制化语音,赢取手环、帆布包、运动汗巾等好礼
    活动已结束,如有问题可加群反馈活动说明:需要将文字转不同方言、不同情景对话场景等个性化的语音,自写程序应对多样个性化的需求门槛高,成本高?华为云语音接口给你解决,简单几步就可实现文字转个性化语音编码甚至音频文件,快来康康,现在体验还有机会赢手环、帆布包、运动汗巾等好礼!体验指导书>>> 活动时间:即日起至礼品放完为止激励概览:心得文章投稿须知>>>注意事项:1、请务必使用个人账号参与活动(IAM、企业账号等账号参与无效);2、华为云新用户定义:2022年5月16日后注册华为云账号的用户;3、一个新用户最多获取一次“新用户体验有奖”奖项,不能再获得其他三个活动的该奖项,但可以参与其余三个同期体验活动的体验抽奖(其余三个活动可进群了解);4、只有完成产品体验并截图回帖后再进行问卷抽奖才算有效。否则并不具备获奖资格,将不会发放奖品;5、用户回帖只会仅楼主可见,以防冒用截图;6、截图务必包含华为云账号;7、获奖名单将于每月底统一公布直至礼品发放完毕,届时将发布兑奖方式。8、本活动最终解释权归华为云所有。获奖公示:奖品公示(截至5月30日):如有异议请加入体验群进行反馈,谢谢!恭喜以上获奖小伙伴,请获奖小伙伴(抽奖奖项获奖已填写收件小伙伴无需重复填写)2022年6月10日之前点链接>>>填写领奖信息,逾期将自动视为放弃,礼品将于15个工作日内安排发放,请耐心等待~奖品公示(6月1日-6月30日):如有异议请加入体验群进行反馈,谢谢!恭喜以上获奖小伙伴,请获奖小伙伴2022年7月15日之前点链接>>>填写领奖信息,逾期将自动视为放弃,礼品将于15个工作日内安排发放,请耐心等待~活动答疑群:
  • [问题求助] 新人求助
    因为学校作业需要刚注册的,我现在是要完成设计一个Android app去获取物联网云平台的数据(硬件上报的),将这些数据在app上可视化。我就在API Explorer调试了获取设备属性的API,调试也成功了,但是找了半天没找到怎么下载这个示例工程,请问哪里可以下载啊,半天都没找到
  • [问题求助] 云平台获取的设备的数据
    数据如何提取到安卓上来我详细看了api explorer 没找到设备数据提取的api,只有设备属性 
  • [问题求助] 【ABC产品】【数据服务】应用导航中不存在API Explorer
    【功能模块】最近项目需要开发数据统计的相关功能模块查看到平台提供数据服务的相关功能,但是在我们的开发环境并没有查看到API Explorer该项目还有具体调用的相关地址也需要华为相关人员提供一下租户:Hi-hstc123【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)