Infrastructure as Code

你是否在寻找vSphere REST API

在 vSphere 8.0 之前,有两组主要的 vSphere API:vSphere Web 服务 (SOAP) API vSphere 自动化 (REST) API注意:从技术上讲,还有其他 vCenter Server API 端点,包括 vSAN、基于存储策略的管理 (SPBM) 等,但就本文章而言,我们将重点关注核心 vCenter Server 功能。vSphere Web Services API早在 2007 年就从 Virtual Infrastructure…

继续阅读 你是否在寻找vSphere REST API

使用 ECS Exec 直通 ECS 容器会话(适用于 Fargate 和 EC2)

2023-01-24 | 阅读(159) 基于 EC2 的 ECS 服务,要看看容器内的状态,一直以来都是先 SSM(Simple System Manager) 或 SSH 进到 EC2 实例,然后再 docker exec -it <container-id> sh, 查看容器的控制台日志则用 docker logs <container-id> [--follow]. 但是对使用 Farget 的 ECS…

继续阅读 使用 ECS Exec 直通 ECS 容器会话(适用于 Fargate 和 EC2)

AWS SNS 订阅到 HTTP 的过程及消息报文

2023-02-23 | 阅读(268) AWS SNS(Simple Notification Service) 以消息订阅,推送的方式对组件进行解藕。当有新消息发送到 SNS 主题中,SNS 会向当前所有的订阅者发送一个消息(广播),它本身不像 SQS 那样会存储消息,而只是一个纯粹的消息路由。SNS 消息可以订阅到 Amazon Kinesis Data Firehose, SQS, Lambda, Email, Email-JSON, HTTP, HTTPs, Platform application endpoint, 和 SMS。同邮件列表一样,订阅 SNS…

继续阅读 AWS SNS 订阅到 HTTP 的过程及消息报文

学习使用 AWS Cognito 并 OAuth2 验证

2023-04-04 | 阅读(161) OAuth 是 Open Authorization 的缩写,是一种开放的可为 Web 或桌面应用进行用户验证和授权的协议。例如,在互联网上的许多应用,可不用额外注册帐户而采用第三方的帐户(Gmail, Apple Id 等)登陆并完成授权,这就有 OAuth 身影。 当我们提到 OAuth 的时候,常常会碰到 OAuth 1.0, OAuth 2.0, OpenID, 和  Auth0. OAuth 1.0 于 2007 年…

继续阅读 学习使用 AWS Cognito 并 OAuth2 验证

应用 AWS Lambda 部署 FastAPI

2023-05-01 | 阅读(153) 前两年用 AWS Lambda 搭配 API Gateway 使用是为了省钱,因为没有请求时不花钱。又由于是 Rest API, 所以实现部分用了 FastAPI 的装饰器,但不实际启动 FastAPI 的 Web 服务,Lambda 的 handler 方法根据 routeKey 手动映射到 FastAPI 的装饰方法。大概实现是 def lambda_handler(event: dict, context):…

继续阅读 应用 AWS Lambda 部署 FastAPI

AWS Step Function 异步动态调用 Lambda 后汇集结果

2023-06-19 | 阅读(112) 分布式计算有这么一个需求,主进程准备好输入数据,然后根据输入中某个 Items 动态调用若干计算进程,待到所有计算完成后再汇集结果。这一需求移植到 AWS 上就像是下面这样子 但在一个 Lambda 中同步调用其他 Lambda 时就有个费时费钱的问题,虽然我们采用线程池来调用 Lambda2, 由于每个同步调用的耗时不相同, Lambda1 最终要等待最慢的那个调用结束后才能对所有结果进行聚集处理。这就是著名的“长板效应”, Lambda1 多数时候是在无谓的等待当中消耗着你的钱财。 如果把同步改成异步调用 Lambda2 的话,就要有一种通知机制,在所有的 Lambda2 完成后再触发一个 Lambda 去收集结果,比如用一致性的协调服务器,像 ZooKeeper, etcd 等,或者是能保持事物的 Redis…

继续阅读 AWS Step Function 异步动态调用 Lambda 后汇集结果

AWS Step Function 异步动态调用 Lambda 后汇集结果

2023-06-19 | 阅读(112) 分布式计算有这么一个需求,主进程准备好输入数据,然后根据输入中某个 Items 动态调用若干计算进程,待到所有计算完成后再汇集结果。这一需求移植到 AWS 上就像是下面这样子 但在一个 Lambda 中同步调用其他 Lambda 时就有个费时费钱的问题,虽然我们采用线程池来调用 Lambda2, 由于每个同步调用的耗时不相同, Lambda1 最终要等待最慢的那个调用结束后才能对所有结果进行聚集处理。这就是著名的“长板效应”, Lambda1 多数时候是在无谓的等待当中消耗着你的钱财。 如果把同步改成异步调用 Lambda2 的话,就要有一种通知机制,在所有的 Lambda2 完成后再触发一个 Lambda 去收集结果,比如用一致性的协调服务器,像 ZooKeeper, etcd 等,或者是能保持事物的 Redis…

继续阅读 AWS Step Function 异步动态调用 Lambda 后汇集结果

[企业DNS系列四]通过Terraform管理PowerDNS

通过前面三篇文章,企业DNS已经可以稳定运行了,下一步就是DNS日常的运维管理,其中工作量最大的就在于正反向(A/PTR)解析记录的维护,下来我带大家使用通过Terraform工具,以IaC(基础架构即代码)的方式维护DNS解析记录。Terraform管理PowerDNS概述Terraform是我个人常用的基础架构即代码工具,之前的文章中,通过Terraform实现虚拟机的批量部署,对于DNS的管理Terraform支持也非常好,目前有两种方式:1)基于TSIG(RFC 2845)协议,Terraform官方的DNS插件;2)第三方的PowerDNS插件;本示例中我们使用第三方PowerDNS插件。Terraform安装Terraform采用GO语言编写,安装非常简单,只需要将terraform二进制文件拷贝到bin目录即可。wget https://releases.hashicorp.com/terraform/1.0.4/terraform_1.0.4_linux_amd64.zip unzip terraform_1.0.4_linux_amd64.zip cp terraform /usr/local/bin/ chmod +x /usr/local/bin/terraform export PATH=/usr/local/bin:$PATH terraform version准备Terraform相关HCL文件Terraform是基于目录的,所以必须为每个计划创建一个独立的工作目录,实际上工作目录管理是后期使用很重要的一点,包括公用module等,请大家通过官网进行学习。cd ~ mkdir terraform-powerdns cd terraform-powerdnsTerraform 执行命令时会读取工作目录中所有的 .tf, .tfvars 文件,所以我们不必把所有的东西都写在单个文件中去,应按职责分列在不同的文件中,例如:文件名说明terraform.tfvars配置provider要用的变量varable.tf通用变量main.tf资源定义output.tf输出定义准备main.tf文件main.tf文件用于执行编排工作,其中provide代表你要编排的目标平台,resource用于声明资源,terraform会基于此声明对比环境中是否一致,如果不一致terraform将修复到一致状态。第1-12行,定义provide是PowerDNS,并从terraform.tfvars中读取配置第14-21行,定义A记录资源,通过读取terraform.tfvars中的变量动态生成多个资源第22-29行,定义PTR记录资源,通过读取terraform.tfvars中的变量动态生成多个资源terraform { required_providers { powerdns = {…

继续阅读 [企业DNS系列四]通过Terraform管理PowerDNS