Mryqu's Notes


  • 首页

  • 搜索
close

学习使用Minikube

时间: 2019-06-13   |   分类: Cloud     |   阅读: 1076 字 ~6分钟
在管理容器化应用方面,Kubernetes是目前最好的工具之一。而Minikube能够在macOS、Linux和Windows平台上实现一个本地Kubernetes集群,用于Kubernetes的学习。 Minikube是由Go语言实现,当前支持如下Kubernetes特性: DNS NodePort ConfigMap和Secret 仪表盘 容器运行时: Docker、rkt、CRI-O和containerd 使能容器网络接口 Ingres 由上图可知,要使用Minikube,需要安装Minikube、kubectl和虚拟机。好在有Katacoda提供浏览器内的带有Kubernetes环境的免费虚拟终端,省却了安装这一步骤。 按照Kubernetes的Hello Minikube教程走了一遍。 minikube version; minikube start $ $ minikube version; minikube start minikube version: v0.28.2 Starting local Kubernetes v1.10.0 cluster... Starting VM... Getting VM IP address... Moving files into cluster... Setting up certs... Connecting to cluster... Setting up kubeconfig... Starting cluster components... Kubectl is now configured to use the cluster. Loading cached images from config file. $ $ minikube --help Minikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for development workflows.
阅读全文 »

玩一道正则表达式练习题

时间: 2019-06-02   |   分类: Tech     |   阅读: 115 字 ~1分钟
前一段时间在网上碰到一道题,要求进行用户名检查: 用户名长度要求最短6字符,最长16字符; 用户名可以由字母、数字和可选的一个连字号(-)组成; 用户名首字符必须为字母,末字符不可以是连字号。 这道题属于送分题,很容易写出下面的Java代码: public class Username { public static int MIN_LEN = 6; public static int MAX_LEN = 16; public static boolean validate(String username) { if(username==null || username.length()<MIN_LEN || username.length()>MAX_LEN || !Character.isLetter(username.charAt(0))) return false; int hyphenNum = 0; for(int i=1;i<username.length();i++) { char ch = username.charAt(i); if (!Character.isLetterOrDigit(ch)) { if (ch=='-') { if(i== username.length()-1 || ++hyphenNum>1) return false; } else return false; } } return true; } public static void main(String[] args) { String[] tests = new String[] { null, "mryqu123", "mryqu-123", "mryqu 123", "mryqu123-", "mryqu-123-bj", "123mryqu", "MryQu-123" }; for(String test:tests) { System.
阅读全文 »

使用Postman动态调试Salesforce API

时间: 2019-05-27   |   分类: Tool     |   阅读: 44 字 ~1分钟
在使用Postman调试Salesforce API时,觉得每次输入Access Token很low,应该充分利用它的脚本能力进行自动化。 创建环境变量 创建新环境变量: 设置环境变量: 选择环境变量: 创建OAuth集合 创建OAuth Collection: 创建Password Authorization请求: Password Authorization请求头: Password Authorization请求体: Password Authorization响应脚本: 脚本用于将响应中信息写入ACCESS_TOKEN和INSTANCE_URL环境变量以用于后继API调用。 Server Authorization请求: 创建Export集合 创建Export Collection: 编辑Export Collection: 主要是让集合内请求共用Bearer Token。 获取版本: 脚本用于将响应中信息写入LATEST_VER_PATH环境变量以用于后继API调用。 注: 通过快捷键(CMD/CTRL + ALT + C)可以打开Postman应用的控制台。 获取资源: 获取对象列表: 获取对象元数据: 获取对象列信息: 脚本用于通过响应信息生成QUERY环境变量以用于SOQL查询API调用。 执行SOQL查询: 查询限额: 最后将环境变量和两个请求集合导出成JSON文件,可以共享给其他人使用。

体验Salesforce API

时间: 2019-05-21   |   分类: DataBuilder     |   阅读: 99 字 ~1分钟
继前一博文[Salesforce dataLoader一览](/post/Salesforce dataLoader一览),这次就开始体验一把Salesforce API了。 准备工作 通过developer.salesforce.com/signup获得Salesforce开发版 确保激活了API权限 创建connected app:scnydqTest1 获取scnydqTest1的sonsumer key和secret OAuth鉴权 Salesforce的OAuth鉴权支持三种流程: web服务器流程:适用于服务器可以保存consumer secret 用户代理流程:适用于应用无法安全保存consumer secret 用户密码流程:应用使用用户凭证直接访问 OAuth鉴权之web服务器流程 验证按照Understanding the User-Agent OAuth Authentication Flow进行。 https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id={scnydqTest1_appConsumerKey}&redirect_uri=https%3A%2F%2Flogin.salesforce.com%2Fservices%2Foauth2%2Fsuccess 鉴权: 通过跳转URL获取code: 通过code、consumer key和consumer secret获取access token: OAuth鉴权之用户代理流程 验证按照How Are Apps Authenticated with the Web Server OAuth Authentication Flow?进行。 https://login.salesforce.com/services/oauth2/authorize?response_type=token&client_id={scnydqTest1_appConsumerKey}&redirect_uri=https%3A%2F%2Flogin.salesforce.com%2Fservices%2Foauth2%2Fsuccess 认证: 鉴权: 通过跳转URL获取access_token: 返回URL为: https://login.salesforce.com/services/oauth2/success#access_token=00D2v000000R9tt%21AXXXXXi.&instance_url=https%3A%2F%2Fap15.salesforce.com&id=https%3A%2F%2Flogin.salesforce.com%2Fid%2F00D2XXXXXC%2F005XXXXXL&issued_at=1XXXXX8&signature=iXXXXXI%3D&scope=id+api&token_type=Bearer OAuth鉴权之用户密码流程 验证按照Understanding the Username-Password OAuth Authentication Flow进行。 REST调用 此处走一下Salesforce官方的快速入门示例。 获取Salesforce版本 关于版本的介绍详见Apex Code Versions。 使用Salesforce版本获取可用资源 使用一个资源获取可用对象列表 获取一个对象的元数据描述 获取一个对象的列信息 执行SOQL查询获取Account记录的某些指定列的值 限额 REST API与SOAP API使用相同的数据模型和标准对象。REST API遵循SOAP API的限额。
阅读全文 »

Salesforce Data Loader一览

时间: 2019-05-20   |   分类: DataBuilder     |   阅读: 82 字 ~1分钟
最近研究一下如何从Salesforce抓取数据,所以找到了dataloader.io和dataloader这两款软件进行学习。 dataloader.io dataloader.io是salesforce AppExchange上的应用。它分为免费版、专业版和企业版。 入口 认证 授权 主界面 导出 - 浏览对象 导出 - 选择列 导出 - 设置 导出 - 运行结果邮件 Data Loader Data Loader是Salesforce开源的一款桌面版数据连接器,基于Java语言,底层依赖Force Wsc和Patner API。 Data Loader有两种登陆方式:OAuth和Password Authentication。 OAuth认证 认证 授权 登陆成功 密码认证 注: 假设用户密码为mypwd,此处要输入的密码为用户密码和下面提到的Salesforce 安全标记组合,即mypwdXXXXXXXXXXXX。 此处Salesforce登陆URL为用户所在的实例地址。如果使用沙箱的话,则使用https://test.salesforce.com。 导出 导出 - 浏览对象 导出 - 选择列 导出 - 运行 导出 - 查看结果 其他Salesforce Data Loader Jitterbit Cloud Data Loader for Salesforce Salesforce Connector - Mule 4 参考 Data Loader Guide Data Loader help
阅读全文 »

初探Salesforce API

时间: 2019-05-17   |   分类: DataBuilder     |   阅读: 19 字 ~1分钟
最近研究一下如何从Salesforce抓取数据,首先看了一下几个ODBC driver。 DataDirect 文档 easysoft devart cdata 怎么没有Salesforce自家的驱动,都是第三方的。 再找找看,找到了Salesforce SOAP API Developer Guide和REST API Developer Guide。 既然有了SOAP/REST API,何必再看ODBC driver了。

升级Idea IntelliJ

时间: 2019-02-21   |   分类: Tool   IntelliJ     |   阅读: 8 字 ~1分钟
上次重装机器时,看看自己用的IntelliJ是ideaIU-2016.3.5,而可以升级的最新版本是ideaIU-2018.3.3。犹豫了一下,害怕万一将来跟公司的插件、设置冲突没法用,就没敢升级那么大,只升到ideaIU-2016.3.8而已。 结果从已有项目导入Idea,不仅报错"Failed to notify progress listener.",而且依赖库也找不到。上网查了查才发现ideaIU-2018.2之前的版本不支持Gradle 5。 好吧,升级到ideaIU-2018.3.4了。

使用了Widnows包管理器Chocolatey

时间: 2019-01-14   |   分类: Tool     |   阅读: 5 字 ~1分钟
系统由于升级微软安全补丁起不来了,在IT同事的帮助下重装了系统。 然后就开始重装大量软件,看到有些软件可以用Widnows包管理器Chocolatey安装,一时轻浮,按捺不住对新事物的向往,就装了Chocolatey。 通过Chocolatey安装了Gradle,后来IntelliJ问我Gradle装哪里了,我一时就蒙了。 想想Linux下的软件都不问,为啥到Windows就不成了?估计还是Linux下包管理是主流,判断依赖软件装没装直接先问deb/apt-get。 估计Windows下用Chocolatey的太少,不但人而且软件的习惯都还没培养起来。这是我的不对,赶紧自己搜出来“C:\ProgramData\chocolatey\lib\gradle\tools\gradle-5.1.1”应付交差了。

使用Packer创建基于Ubuntu的Vagrant Box

时间: 2019-01-04   |   分类: Tool   Vagrant     |   阅读: 12168 字 ~58分钟
前一博客创建基于Ubuntu的Vagrant Box是手工完成的,这意味着每次实施后需要写出详细文档,以便于以后查档、定位问题或者更新。 持续交付和DevOps技术的快速进步和演化,使得基础设施的配置不得不频繁变化。基础设施即代码(IaC)是一种使用新的技术来构建和管理动态基础设施的方式。它把基础设施、工具和服务以及对基础设施的管理本身作为一个软件系统,采纳软件工程实践以结构化的安全的方式来管理对系统的变更。 Packer是由HashiCorp推出的一款轻量级镜像定义工具,用于从单一配置来源为多平台创建相同的机器映像。目前支持的平台包括Alicloud ECS、Amazon EC2、Azure、CloudStack、DigitalOcean、Docker、File、Google Cloud、Hetzner Cloud、Hper-V、LXC、LXD、NAVER Cloud、1&1、OpenStack、Oracle、Parallels、ProfitBricks、QEMU、Scaleway、Triton、VirtualBox和VMware。 配置好一个模版文件,用pakcer命令就可以按需构建机器镜像。也可以根据需求及时更改配置。 加入软件版本控制(主要用的是 Git)后,就可以很方便的追溯更改。 尝试了用Packer模板创建Ubuntu基于VirtualBox provider的Vagrant Box,日志如下: C:\quTemp\PackerTest>REM set PACKER_LOG=1 C:\quTemp\PackerTest>packer build -var "mirror=c:/quTemp" -var "mirror_directory=PackerTest" ubuntu-14.04-amd64.json virtualbox-iso output will be in this color. ==> virtualbox-iso: Retrieving Guest additions virtualbox-iso: Using file in-place: file:///C:/quTools/Oracle/VirtualBox/VBoxGuestAdditions.iso ==> virtualbox-iso: Retrieving ISO virtualbox-iso: Using file in-place: file:///C:/quTemp/PackerTest/ubuntu-14.04.5-server-amd64.iso ==> virtualbox-iso: Starting HTTP server on port 8711 ==> virtualbox-iso: Creating virtual machine... ==> virtualbox-iso: Creating hard drive... ==> virtualbox-iso: Creating forwarded port mapping for communicator (SSH, WinRM, etc) (host port 3620) ==> virtualbox-iso: Executing custom VBoxManage commands.
阅读全文 »

创建基于Ubuntu的Vagrant Box

时间: 2019-01-02   |   分类: Tool   Vagrant     |   阅读: 237 字 ~2分钟
学习一下创建Ubuntu基于VirtualBox provider的Vagrant Box。 准备环境 Vagrant VirtualBox 下载Ubuntu 14.04.5 LTS (Trusty Tahr)服务器版ISO文件 创建虚拟机 创建VirtualBox VM mryqu-ubuntu 内存1024MB 创建VMDK类型、自动分配的虚拟硬盘 安装Ubuntu 点击Setting,在Storage配置页的Controller:IDE中增加CD,选择所下载的Ubuntu ISO文件。然后启动虚拟机。 安装过程除了下列项之外使用默认选择: Configure the network - Hostname: vagrant Set up users and passwords: vagrant/vagrant Encrypt your home directory? Select No Select your time zone: UTC Partitioning method: Guided – use entire disk and set up LVM When prompted which software to install, select OpenSSH server 安装成功后,会提示进行登陆。 使用vagrant用户登陆后,使用sudo su -切到root账号,重新同步安装包索引并更新安装包。 apt-get update apt-get upgrade 为vagrant用户设置无密码sudo vagrant用户每次执行sudo命令会要求输入密码。通过visudo命令在配置文件末增加vagrant ALL=(ALL) NOPASSWD:ALL并保存即可实现无密码sudo。
阅读全文 »
1 2 3 4 5 6 7 8

Programmer & Architect

662 日志
27 分类
1472 标签
RSS 订阅
GitHub Twitter FB Page
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%