小编Oma*_*ani的帖子

在 AWS ECR 上重新标记映像会创建新映像

我在 AWS ECR 上有一个私有 Docker 存储库。

我正在尝试使用此处的说明使用新标签来标记现有图像https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-retag.html

例如,假设我有一个带有标签“1.5.0”的图像,现在我想添加标签“lts”,通过使用上面的方法来“batch-get-image”标签“1.5.0”,并且然后“put-image”和“image-tag”“lts”,该命令在存储库中创建一个带有标签“lts”的全新图像。原始图像“1.5.0”不受影响。

代码:

MANIFEST=$(aws ecr batch-get-image --region eu-west-1 --repository-name mynamespace/repo --image-ids imageTag='1.5.0' --query 'images[].imageManifest' --output text)
Run Code Online (Sandbox Code Playgroud)
aws ecr put-image --region eu-west-1 --repository-name mynamespace/repo --image-tag lts --image-manifest "$MANIFEST"
Run Code Online (Sandbox Code Playgroud)

上面的结果是两个独立的图像:

  • 1.5.0

我想要 1 张图片:

  • 1.5.0,lts

有什么想法我做错了吗?存储库设置已禁用不变性。

我宁愿避免docker pull, docker tag,docker push方法,因为这将在我的 CI 服务器(Github Actions)上以单独的工作流程运行,这docker pull将是一个非常浪费的命令。

docker amazon-ecr

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

Typescript 将键映射为大写

我有以下对象:

const foo = {
  fieldAnt: "foo",
  fieldCab: "baz"
};
Run Code Online (Sandbox Code Playgroud)

我想自动将其映射到键为大写并带下划线的类型:

type FIELDS = {
  FIELD_ANT: "fieldAnt",
  FIELD_CAB: "fieldCab" 
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用keyof打字稿或类型映射以编程方式实现此目的?

typescript

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

将 AWS ALB 流量从一个账户发送到另一个账户

我正在尝试在 AWS 上建立一个多账户组织,其中根账户充当登陆区域,其他账户则在我们的部署环境(暂存/生产)之间分配。

我面临的挑战之一是我们在根帐户中注册了 SSL,为了简单起见,我想将其保留在那里。因此,我的根帐户中有一个 ALB,它具有注册的 ACM 证书。从这里开始,我的目标是通过共享 VPC 将所有流量转发到两个子账户之一,其中有另一个 ALB,其目标组中有 ECS 集群。

这是架构图。我面临的问题是,没有明显的方法将根帐户 ALB 连接到暂存帐户 ALB,因为它们公开了内部 DNS 条目,而不是我可以从根 ALB 定位的私有 IPv4。

有没有另一种方法可以实现这一目标,我是否可能使事情变得过于复杂?

AWS 拱门。 图表

infrastructure amazon-web-services amazon-vpc aws-application-load-balancer

6
推荐指数
0
解决办法
7680
查看次数

创建VSCode代码段时,如何将变量转换为标题大小写(如TitleCase)?

https://code.visualstudio.com/docs/editor/userdefinedsnippets#_placeholdertransform

我的目的是在要插入的代码段的上下文中自动设置类名称。VSCode本身不支持类名或方法名,但支持文件名。

我的文件名非常类似于类名:

foo-bar.tsclass FooBar

这是我当前的代码片段,其中我可以转换"foo-bar""Foo-bar"使用VSCode提供的本机“大写”语法。 TM_FILENAME_BASE是一个原生变量,提取不带扩展名的文件名:

"My Snippet": {
    "scope": "typescript",
    "prefix": "snippet",
    "body": [
        "${1}() {",
        "\treturn this.get(${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}.FIELD.${3});",
        "}",
        "",
        "$0"
    ],
    "description": "Creates a function wrapper for a model's attribute."
}
Run Code Online (Sandbox Code Playgroud)

我想将“ foo-bar”转换为“ FooBar”。

code-snippets visual-studio-code vscode-snippets

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