如何在Azure Cloud Shell中放置并运行YAML文件部署ASP.NET Core应用
Azure Cloud Shell 识别本地YAML文件的有效路径方案
报错根因
出现the path "sample.yaml" does not exist错误的核心逻辑是:Azure Cloud Shell是运行在Azure云端的隔离Shell环境,无法直接读取你本地Windows 10设备硬盘上的存储文件。当你在Cloud Shell中输入相对路径sample.yaml时,它只会在自身挂载的云端工作区内检索对应文件,自然无法匹配到你本地硬盘上的文件。
你之前关于“文件需要存到关联Azure存储账户才能被识别”的推测是完全正确的。
可被正常识别的存放路径与操作步骤
Azure Cloud Shell启动时会自动关联一个专属的Azure文件存储账户,这个账户下的文件共享会被永久挂载到Cloud Shell的固定目录,所有放在这个挂载目录下的文件,都会被Cloud Shell正常识别。
常用的操作路径有两种:
- 方案1:通过Cloud Shell内置上传功能快速导入文件
- 打开Azure Cloud Shell窗口,点击顶部工具栏的“上传/下载文件”图标
- 在本地文件选择弹窗中,选中你Windows 10硬盘上的
sample.yaml,确认上传 - 上传完成后,文件会默认存放到Cloud Shell的持久化根目录,执行
ls命令就能直接看到列出的sample.yaml文件,此时再运行kubectl apply -f sample.yaml就不会出现路径不存在的报错。
- 方案2:长期存放到关联Azure存储的对应位置
Cloud Shell关联的Azure文件共享,挂载到Shell环境的固定路径为/home/<你的Cloud Shell用户名>/clouddrive/。你可以直接在Azure门户找到Cloud Shell绑定的存储账户,打开对应的文件共享目录,将本地的sample.yaml上传到文件共享的根路径下。后续不管什么时候打开Cloud Shell,只要进入clouddrive目录就能直接访问这个文件,不需要每次重新上传。
常见避坑提示
- Cloud Shell是基于Linux的运行环境,完全不识别Windows格式的盘符路径(比如
C:\Users\xxx\sample.yaml),所有路径都要遵循Linux的路径规则 - 注意区分持久化目录和临时目录:只有存放在
clouddrive挂载目录下的文件会永久保留,存在/tmp这类临时目录的文件,在Cloud Shell会话断开重连后会被自动清空 - 执行kubectl命令前,可以先通过
ls命令确认目标YAML文件确实在当前工作目录下,避免因为切换路径导致的相对路径匹配失败
内容的提问来源于stack exchange,提问作者nam
相关产品推荐
相关产品推荐

