小编Rya*_* Lv的帖子

AWS EC2 分区置放组中的机架意味着什么?

AWS分区放置组的文档说:

  • 置放群组中的每个分区都有其自己的一组机架。
  • 置放群组中没有两个分区共享相同的机架。

在此输入图像描述

架子是什么意思?它们是作为一个单元共享电源和网络的服务器架吗?是指前哨架吗?

来自什么是 AWS Outpost 机架?- YouTube

在此输入图像描述

参考

将分区置放组用于 Amazon EC2 中的大型分布式和复制工作负载

amazon-ec2 amazon-web-services

5
推荐指数
1
解决办法
1469
查看次数

AWS:是否可以检索存储在 KMS 中的密钥内容?

如果答案是否定的,那么将来当你的数据从aws云迁移到另一个云时,如何处理数据加密呢?

例如,已通过 SSE-S3 加密的 S3 对象

amazon-web-services amazon-kms

5
推荐指数
1
解决办法
5956
查看次数

OpenAPI 规范:什么是适合私有和内部 OpenAPI 文档的许可证?

我的公司使用 Open API Spec 来组织内部 API 的文档,并通过 UI 工具(例如 redoc.ly 或 Swagger)呈现它。API 文档作为私有 git 存储库进行管理,永远不会向公众发布。

私有API文档许可

Swagger 为开源项目提供了很好的示例,例如 MIT、GPL、“Apache 2.0”,但私有 API 文档似乎没有涵盖。

https://spec.openapis.org/oas/latest.html#license-object

{
  "name": "Apache 2.0",
  "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
}
Run Code Online (Sandbox Code Playgroud)

调查

我看到有些人以这种方式指定他们的许可证。

  license:
    - name: unlicensed
    - url: "www.example.com"
Run Code Online (Sandbox Code Playgroud)

问题

私有 API 文档项目的合适许可证是什么?

您通常如何在私有 Open API 文档中表示许可证对象?

api-doc swagger openapi redoc redocly

5
推荐指数
1
解决办法
1776
查看次数

CORS:简单请求的目的是什么?

从 Mozilla 的文档来看,CORS 的场景有以下三种:

  1. 简单的请求
  2. 预检请求
  3. 带有凭据的请求

Simple Requests有一些缺点,例如,当客户端声明时withCredentials,即使服务器拒绝,带有cookie的HTTP请求已经发送,这可能是一种攻击。

Preflighted request安全,可以覆盖各种场景。Simple Requests即使预检请求可以满足所有要求,为什么人们还要发明?

参考

  1. Access-Control-Allow-Credentials 标头到底有什么作用?

http cors

4
推荐指数
1
解决办法
938
查看次数

AWS Route 53 路由策略:地理位置与延迟

AWS根据解析器的IP地址或客户端的屏蔽IP地址实施延迟路由策略。它将有助于找到低延迟区域。

如果地理位置策略和延迟策略都基于客户端的IP地址,则会出现以下几个问题:

  1. 它们之间有什么区别?

  2. Geolocation 路由策略的目的是什么?

  3. 地理定位政策是否用于遵守不同国家的法律?例如 GDPR、cookie 使用。

    • 欧洲:GDPR
    • 中国:数据必须存储在中国。
  4. 在什么情况下我应该使用地理位置路由策略而不是延迟策略?

参考

AWS Route 53 如何实现基于延迟的路由:

dns amazon-web-services amazon-route53

3
推荐指数
1
解决办法
3097
查看次数

Ruby:从 Ruby 生成 Google Protobuf 时间戳?

这是一个模型blog

# id  :bigint(8)
#  created_at                  :datetime         not null
#  updated_at                  :datetime         not null

class Blog < ApplicationRecord

end
Run Code Online (Sandbox Code Playgroud)

我想将模型的created_at和updated_at转换为google Protobuf时间戳

blog = Blog.first
blog.created_at
Run Code Online (Sandbox Code Playgroud)

形成 protobuf 消息时如何将 DateTime 转换为 google Protobuf TimeStamp?

ruby ruby-on-rails protocol-buffers

3
推荐指数
1
解决办法
1313
查看次数

Kubernetes安全:如何检查服务帐户的令牌?

首先,我创建了一个服务帐户jenkins

> kubectl create serviceaccount jenkins
serviceaccount/jenkins created
Run Code Online (Sandbox Code Playgroud)

其次,为此服务帐户创建一个令牌。

> kubectl create token jenkins
eyJhbGc****************iQS-AVXfIzA
Run Code Online (Sandbox Code Playgroud)

然后,我运行kubectl describe serviceaccount jenkins命令来检查新创建的服务帐户的令牌。

但输出显示 None 标记。

> kubectl describe serviceaccount jenkins

Name:                jenkins
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>  
Mountable secrets:   <none>
Tokens:              <none>   <===== look at this!
Events:              <none>
Run Code Online (Sandbox Code Playgroud)

问题

  1. 输出显示“无”令牌,我如何知道有与此服务帐户关联的令牌?

  2. 如果我kubectl create token jenkins多次运行命令,kubernetes 会为此帐户创建多个令牌吗?或者最新的会覆盖上一个?

    # first time
    kubectl create token jenkins
    # second time
    kubectl create token jenkins
    # third time
    kubectl …
    Run Code Online (Sandbox Code Playgroud)

kubernetes

2
推荐指数
1
解决办法
1829
查看次数

Golang:原子读取有什么用?

在这里,我们提供了一个go case Go by Example来解释原子包。

https://gobyexample.com/atomic-counters

package main

import "fmt"
import "time"
import "sync/atomic"

func main() {

    var ops uint64

    for i := 0; i < 50; i++ {
        go func() {
            for {
                atomic.AddUint64(&ops, 1)

                time.Sleep(time.Millisecond)
            }
        }()
    }

    time.Sleep(time.Second)

    opsFinal := atomic.LoadUint64(&ops) // Can I replace it?
    fmt.Println("ops:", opsFinal)
}
Run Code Online (Sandbox Code Playgroud)

对于atomic.AddUnit64,很容易理解。

问题1

关于read操作,为什么有必要使用atomic.LoadUnit而不是直接读取此计数器?

问题2

我可以将以下两行替换为以下几行吗?

之前

    opsFinal := atomic.LoadUint64(&ops) // Can I replace it?
    fmt.Println("ops:", opsFinal)
Run Code Online (Sandbox Code Playgroud)

    opsFinal := ops
    fmt.Println("ops:", …
Run Code Online (Sandbox Code Playgroud)

go

1
推荐指数
1
解决办法
134
查看次数