yaml: line 18: did not find expected key

Ubuntu 22.04 Netplan 网络配置:从传统 interfaces 到 YAML 的 3 个关键迁移步骤 本文详细介绍了在Ubuntu 22.04中将传统interfaces网络配置迁移到Netplan YAML格式的3个关键步骤,包括理解Netplan优势、分步迁移指南和常见问题排查。通过YAML声明式配置,Netplan提供了更统一、灵活的网络管理方案,特别适合现代云环境和自动化运维需求。 阅读详情

时报错:yaml: line 18: did not find expected key

2018年11月06日 11:35:10 东坡子 阅读数:2590

在学习持续集成开发时,镜像打包报错:yaml: line 18: did not find expected key

看了一下并不是什么key的问题,真正的原因是空格不对
tags:
  - latest
  dockerfile: Dockerfile
这是改错之前的,网上百度了一下,有人说是空格的问题,我就返回来看自己的,发现dockerfile多空了两个格,实际上dockerfile和tags是同一级别的
我将空格去掉
tags:
  - latest
dockerfile: Dockerfile
然后就成功了

YAML配置语法全解析:从基础语法到云原生实战应用 数据序列化是计算机科学中数据持久化与交换的基础技术,其核心原理是将数据结构或对象状态转换为可存储或传输的格式。YAML作为一种人类友好的数据序列化格式,通过简洁的缩进语法和直观的结构表示,在可读性与机器可解析性之间取得了卓越平衡。其技术价值在于显著提升了配置文件的编写与维护效率,尤其适用于需要人工频繁编辑的复杂配置场景。在云原生和DevOps领域,YAML已成为Kubernetes资源定义、Docker Compose服务编排及CI/CD流水线配置的事实标准。本文将深入解析YAML的映射、序列与标量等核心数 阅读详情

相关推荐

用自然语言生成Kubernetes YAML:GPT-3提示工程实战

Kubernetes YAML 是一种强约束、高嵌套的领域特定语言(DSL),其语法严谨性与人类直觉存在天然鸿沟。理解其声明式原理是基础,但工程师真正痛点在于将业务意图高效转化为合规配置——这正是自然语言处理与Kubernetes自动化融合的技术价值所在。通过少样本提示工程(Few-Shot Prompting)与温度参数调优,大语言模型可稳定输出经客户端和服务端双重校验的生产级YAML,显著降低新人学习门槛、提升中高级运维交付效率。典型应用场景包括快速搭建测试环境、标准化多集群部署、SRE架构验证等。本文

weixin_30892763的博客 407

yaml 格式错误 did not find expected key

持续集成或者在k8s master节点上执行yaml脚本部署时报错。看报错信息,描述的是yaml转json失败导致。 解决思路: 格式是否有错,真的是yaml格式错误,可以把内容复制到http://www.yamllint.com/或者找一个yaml校验工具进行调试 如果yaml格式正确,则是逻辑上的问题,例如:k8s上对象依赖关系,是否嵌套的正确,典型案例就是volumes应该放在和containers平级的位置,不要放在任意一个container中,惯例放在最后且和containers平级。 ..

nickDaDa的博客 6万+

Metricbeat Ubuntu 18.04 系统指标采集实战指南

系统指标采集是可观测性基础设施的核心能力,其本质是通过稳定、低侵入的方式获取 CPU、内存、磁盘 I/O、网络连接等底层运行时数据。原理上依赖对 Linux /proc 文件系统(如 /proc/stat、/proc/diskstats)的直接读取,确保数据源权威且不受用户态命令变更影响。技术价值在于以轻量级代理实现高可信度、毫秒级精度的指标落地,显著降低运维盲区。典型应用场景包括服务器性能瓶颈定位、容器资源异常诊断及中小规模生产环境快速监控上线。本文聚焦 Metricbeat 在 Ubuntu 18.04

weixin_30411239的博客 328

持续集成时报错:yaml: line 18: did not find expected key

在学习持续集成开发时,镜像打包报错:yaml: line 18: did not find expected key 看了一下并不是什么key的问题,真正的原因是空格不对 tags: - latest dockerfile: Dockerfile 这是改错之前的,网上百度了一下,有人说是空格的问题,我就返回来看自己的,发现dockerfile多空了两个格,实际上dockerfile和tags是同一...

wshicainiao的博客 4万+

GitLab/Gitee/GitHub部署报错根因分析与跨平台修复指南

CI/CD部署失败本质是环境、权限、配置三重错位:平台默认镜像不预装Node.js/Python/Java等运行时,导致'command not found';SSH密钥或Token未正确注入与授权,引发'Permission denied'或'401 Unauthorized';YAML语法不规范或变量跨平台误用,触发静默解析失败。其技术价值在于将模糊的'构建失败'转化为可定位、可验证、可复用的病理诊断逻辑。典型应用场景包括前端静态站点发布(Gitee Pages、GitHub Pages)、Java/P

weixin_30536513的博客 394

OpenClaw自定义技能开发实战:SKILL.md规范与openclaw.json配置

OpenClaw技能不是传统CLI脚本,而是一种‘目标驱动’的AI协作单元——它将‘要什么结果’(SKILL.md)与‘如何达成’(Python/Shell)彻底分离。其核心原理在于:通过YAML前言声明元信息(name、description、依赖),由Agent基于语义理解自动调度;通过openclaw.json集中管理敏感凭证与沙箱策略,实现安全可控的环境注入;再依托ClawHub完成版本化分发与协作。这种设计显著降低LLM调用歧义、规避运行时权限失控,并支撑本地文件处理(如Jupyter转Word)

weixin_30699955的博客 376

msg="Error loading config" err="error parsing config file: yaml: line 2: did not find expected key"怎...

这个错误消息表明在加载配置文件时出现了错误,具体的错误原因是在解析配置文件时遇到了错误,具体的错误是在第 2 行没有找到预期的键。 解决这个问题的方法是检查配置文件的第 2 行,确保该行包含了预期的键。如果键确实不存在,请添加相应的键;如果键存在但格式不正确,请修正格式错误。 ...

weixin_42596011的博客 3354

命令行驱动PaaS生产力:doctl实战指南

PaaS(平台即服务)是一种将应用运行时环境全托管的云服务模式,其核心价值在于屏蔽基础设施复杂性,让开发者聚焦业务逻辑。实现这一价值的关键前提是‘可编程性’——而命令行接口(CLI)正是最轻量、最一致、最易集成的编程入口。DigitalOcean App Platform 作为面向中小团队的现代化PaaS,通过 doctl CLI 提供了跨IaaS、PaaS、DaaS资源的统一操作语言,支持自动化部署、环境变量动态注入、实时日志诊断等工程刚需。相比Web控制台的手动点击或Terraform的重型编排,doc

weixin_30266885的博客 403

YAML文件执行时报错

k8s执行.yaml文件时报错 error: yaml: line 15: did not find expected key 问题出现在kubectl执行编排文件时,后来排查发现并不是什么key的问题,是由于yaml格式的文件对缩进要求非常严格,而错误提示中line:15附近多空格或者少空格。 去掉空格之后,执行成功。 ...

qq_35076663的博客 3997

Codex CLI输出优化:构建AI工作流的管道友好型输出体系

CLI工具是开发者日常工程实践的核心接口,其输出设计直接决定自动化集成效率与人机协作体验。从Unix哲学出发,真正的命令行智能体必须兼顾人类可读性与机器可解析性,支持结构化格式(如JSON/NDJSON)、上下文自适应、管道直通与安全可控的数据流。Codex CLI通过agents.md声明式契约、context_rules环境感知策略及post-processor可编程后处理,将AI工作流输出升级为可验证、可测试、可编排的工程资产。本文聚焦输出优化三大核心挑战——上下文错配、格式幻觉与管道失能,并提供生产

weixin_33730836的博客 469

西门子【Automation Framework V1.2】AF架构:从软件栈到高效自动化项目的构建蓝图

本文深入解析西门子Automation Framework V1.2 (AF架构) 的核心价值与实施蓝图。该框架通过定义标准化的软件栈(如TIA Portal V19、STEP7、WinCC Unified)和严格的安装配置流程,将自动化项目开发从依赖个人经验的“手工作坊”模式,转变为高效、可复制的工业化模式。遵循此架构,工程师能快速构建稳定可靠的项目基础,规避环境冲突,从而专注于核心工艺与逻辑设计,大幅提升团队协作与项目交付效率。

weixin_29230059的博客 431

did not find expected key while parsing a block mapping at line 2 column 1的解决方法

did not find expected key while parsing a block mapping at line 2 column 1的解决方法

masteryi-0018的博客 2085

【全开源】旅行吧旅游门票预订系统源码(FastAdmin+ThinkPHP+Uniapp)

此外,系统还会根据我的旅行计划和喜好,为我推荐合适的景点和门票,让我的旅行更加丰富多彩。旅游门票预订系统的出现,不仅简化了门票预订的流程,还提高了旅行的便捷性和效率。一款基于FastAdmin+ThinkPHP+Uniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。如今,有了旅游门票预订系统,这些问题都能迎刃而解。智能推荐:系统还会根据你的旅行计划和喜好,为你推荐合适的景点和门票,让你的旅行更加丰富多彩。

2401_84413757的博客 1302

本地部署OneAPI+FastGPT强强联手,打造专属智能企业级知识库

大家好!今天我们将为大家带来一篇技术实操文章,教大家如何利用开源项目OneAPI和FastGPT,通过Docker安装方式,轻松实现企业级的知识库。以下是详细步骤,快来一起学习吧!OneAPI:一款强大的API管理工具,帮助企业统一管理内外部API,提高开发效率。FastGPT:基于GPT模型的自然语言处理框架,为企业提供智能问答、文本生成等强大功能。 cd opt mkdir oneapi cd oneapi oneapi目录下创建docker-compose.yml文件 version: '3

2403_88996352的博客 769

一个大屏掌握港口全部信息的数字孪生技术

智慧港口就是通过整合港口全部数据,将数据通过iot设备与大屏连接,再通过自研3D渲染引擎模拟港口全貌,打造智慧港口大屏,整个系统分为四个模块,分别为港口概览、环境监测、设备运维和安防管理,各个模块独立运行,分别展示港口不同信息,各个模块的数据通过山海鲸内置数据源接口与港口管理系统进行对接。数据源支持实时刷新,模块内容支持自定义修改和定制化开发。接下来带大家详细了解一下各模块情况。

m0_69539341的博客 3064

行为验证码 AJ-Captcha 使用文档

AJ-Captcha验证码系统集成指南:需添加captcha-spring-boot-starter和Redis依赖,配置Redis连接。核心实现包括Redis缓存服务类CaptchaCacheRedisImpl(含设置、查询、删除验证码等方法)、SPI配置文件及Spring Boot配置类(配置验证码属性和Redis模板)。系统支持验证码生成、校验、防刷等安全功能,适用于Web应用安全验证场景。

千层冷面的博客 2119

did not find expected key

持续集成时报错:yaml: line 18: did not find expected key 2018年11月06日 11:35:10东坡子阅读数 4967 在学习持续集成开发时,镜像打包报错:yaml: line 18: did not find expected key 看...

4077

Linux下基于AHCI controller模块实现SATA Platform驱动附代码详细流程

本文主要是针对ARM A55集成了AHSATA controller模块开发sata驱动,通过Platform的形式在linux识别到SSD,本文详细讲述整个开发过程,同时对SATA Platform驱动进行讲解。1、配置SATA Phy的初始化;2、打开SATA Platform相关编译开关;3、配置设备树;4、linux启动识盘。

Luckiers的博客 2497

error parsing deployment-nginx.yml: error converting YAML to JSON: yaml: line 19 问题解决

error: error parsing deployment-nginx.yml: error converting YAML to JSON: yaml: line 19: did not find expected key 报错解决

我是小bā吖的博客 2979

51-14 Retentive Network,RetNet 多尺度保留机制序列建模论文精读

RetNet 提出了多尺度保留机制序列建模,该机制支持三种计算范式,即并行、循环和分块循环。RetNet有更好的全局注意力建模、高效的计算效率、对遮挡的鲁棒性、支持基于注意力的图像生成、与置信度相关的门控机制和多任务学习等特点,对不同视觉任务可以共享历史注意力记忆,可以同时进行分类、分割、检测等任务。RetNet在视觉领域应该有广阔的应用前景。

AIgraphX 1616

板蓝根挥发油微胶囊化技术及其在抗菌织物整理中的应用研究

微胶囊技术是一种通过成膜材料将具有反应活性或挥发性的液体或固体包封成微小颗粒的技术。该技术因其优异的缓释保护和物态改变性能,已在医药、食品、化妆品等多个领域得到广泛应用。本研究采用复凝聚法制备板蓝根挥发油的微胶囊,利用明胶和阿拉伯胶作为壁材,旨在提升其稳定性和抗菌性能。

qq_62634009的博客 585

prometheus 部署过程中出现的问题

1、level=error ts=2021-07-20T08:43:06.984Z caller=main.go:727 err="error loading config from \"prometheus.yml\": couldn't load configuration (--config.file=\"prometheus.yml\"): parsing YAML file prometheus.yml: yaml: line 29: did not find expected key" 出现原

wuzhi222的博客 7060

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

远程修改静态IP

2018年4月26日,ubuntu 18.04发行,第一时间下载安装了SERVER版本。使用VM14版本的虚拟机,开始使用DHCP获得IP地址,没有意外,可以直接上网。然而在更改VM的网络模式为桥接模式时,想把虚拟机设为固定IP时,出现故障,一直不能获得地址,也上不了网。经常无数次测试,有以下经验可供参考。

sinat_35773915的博客 281

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Ubuntu 18.04 上用 CircleCI 实现安全可控的自动化部署

CI/CD 是现代软件交付的核心实践,其本质是将代码变更自动、可靠、可审计地转化为线上服务。实现这一目标需兼顾环境一致性、权限最小化与系统兼容性——尤其在长期支持(LTS)的 Ubuntu 18.04 这类生产基线上,工具链选择直接影响稳定性与维护成本。CircleCI 凭借 Docker 执行器对宿主机内核和 systemd 的隔离能力,以及官方预构建的 cimg 镜像对 Ubuntu 18.04 的原生适配,显著规避了 Jenkins 插件冲突与 GitHub Actions self-hosted r

weixin_33824363的博客 487

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Ubuntu 16.04 部署 Drone 1.x CI 流水线实战指南

持续集成(CI)是现代软件工程的核心实践,其本质是通过自动化构建、测试与反馈,保障代码质量与交付效率。Drone 作为轻量级容器化 CI 工具,依托 Go 语言单二进制特性与 Docker 原生集成,在资源受限或环境陈旧的场景中展现出独特优势。尤其在 Ubuntu 16.04 这类已停止官方支持但仍在嵌入式、工控及教学环境中广泛使用的系统上,Drone 1.x 成为少数能绕过 Java 运行时依赖、规避 glibc 兼容性风险、并直连 Docker daemon 实现低延迟构建的可行方案。它不仅解决基础自动

weixin_33978044的博客 435
上一篇: Docker无法启动 error initializing graphdriver: driver not supported
下一篇: k8s-calico
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值