小编Unb*_*ess的帖子

AWS:将字符串转换为区域

我不想硬编码区域 ID 并将区域名称作为字符串从命令行传递。有没有办法做到这一点?硬编码:

Region s3Region = Region.getRegion(Regions.US_EAST_1); 
Non Hardcoded but not working:
Region s3Region = Region.getRegion(Regions.fromName(awsRegion));
Run Code Online (Sandbox Code Playgroud)

java amazon-ec2 amazon-web-services aws-sdk

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

如何转换 CommaDelimitedList 参数以在 CloudFormation 中构建 ARN

我有一个输入参数,它是角色名称列表:

Parameters:
  UserRoles:
    Type: CommaDelimitedList
    Default: ""
Run Code Online (Sandbox Code Playgroud)

现在我想在策略文档主体中使用这些角色。如果只有 1 个角色,我会这样做:

        Principal:
          AWS:
            - !Join
              - ''
              - - 'arn:aws:iam::'
                - !Ref 'AWS::AccountId'
                - ':role/'
                - !Ref UserRole
Run Code Online (Sandbox Code Playgroud)

但现在我想为不同数量的角色做到这一点。因此,我需要在字符串列表上使用某种“Fn::Map”函数,允许我将角色名称转换为 Arns。

那可能吗?

amazon-web-services aws-cloudformation

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

正则表达式从nuget包文件名解析包名和版本号

我有一个我从nuget.org下载的nuget包目录.我正在尝试创建一个正则表达式来解析文件名中的包名称和版本号.乍一看似乎并不困难; 文件名有一个清晰的模式:

{PACKAGENAME}.{VERSIONNUMBER} .nupkg

边缘情况使其具有挑战性.

  • 包名称可以包含破折号,下划线和数字
  • 包名称可以有效地由点分隔的无限制部分
  • 版本号由3-4组数字组成,分隔点
  • 版本号有时以预发布标签为后缀(-alpha,-beta等)

这是nuget包文件名的示例列表:

knockoutjs.3.4.2.nupkg
log4net.2.0.8.nupkg
runtime.tizen.4.0.0-armel.microsoft.netcore.jit.2.0.0.nupkg
nuget.core.2.7.0-alpha.nupkg
microsoft.identitymodel.6.1.7600.16394.nupkg
Run Code Online (Sandbox Code Playgroud)

我希望能够在严肃文本编辑器中进行搜索/替换,其中搜索是具有两个组的正则表达式,一个用于包名称,一个用于版本号.输出应为"Package:\ 1 Version:\ 2".使用上面的5个包,输出应该是:

Package: knockoutjs Version: 3.4.2
Package: log4net Version: 2.0.8
Package: runtime.tizen.4.0.0-armel.microsoft.netcore.jit Version: 2.0.0
Package: nuget.core Version: 2.7.0-alpha
Package: microsoft.identitymodel Version: 6.1.7600.16394
Run Code Online (Sandbox Code Playgroud)

我提出的最接近相对简洁的正则表达式是:

^([^\s]*)\.((?:[0-9]+\.){3,})nupkg$
Run Code Online (Sandbox Code Playgroud)

...导致以下输出:

Package: knockoutjs Version: 3.4.2.
Package: log4net Version: 2.0.8.
Package: runtime.tizen.4.0.0-armel.microsoft.netcore.jit Version: 2.0.0.
nuget.core.2.7.0-alpha.nupkg
Package: microsoft.identitymodel.6 Version: 1.7600.16394.
Run Code Online (Sandbox Code Playgroud)

虽然我不想要那个尾随点,但是它可以很好地处理前三个.它在第四个上甚至不匹配,第五个版本号的第一部分与包名称混为一致.

保存一天!

regex nuget nuget-package

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

解析错误:第 2 行第 0 列的数字文字无效

我正在尝试读取大型 json 数据结构,但收到消息:

解析错误:第 2 行第 0 列的数字文字无效

我正在使用的命令是下一个:

n_rules=$(echo rulebase_list | jq '.total')
Run Code Online (Sandbox Code Playgroud)

并且该文件在第一层级中有一个变量,它是

"total" : 126
Run Code Online (Sandbox Code Playgroud)

你知道为什么我会遇到问题吗?我想问题是 126 是一个数值,但我能做什么?

json jq

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

如何使用 Azure Blob 存储 SDK 将 Blob 从一个容器复制到另一个容器

我一直在参考文档https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python。我无法找到将文件从一个容器复制/移动到另一个容器的正确 API。假设我有两个容器 A 和 B。现在我想将一个 blob 从 A 复制到 B。我该如何实现呢?举个例子将不胜感激。

图书馆详情:

azure-core==1.1.1
azure-storage-blob==12.0.0
Run Code Online (Sandbox Code Playgroud)

注意:我已经经历过这个线程,它仅在旧版本的 SDK 中受支持。

python azure azure-storage azure-blob-storage azure-sdk-python

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

无法使用前端 dockerfile.v0 解决:无法创建 LLB 定义:无法执行请求:运行 docker build 时出现头错误

我有以下 Dockerfile:

FROM alpine:latest

COPY . .

# C-CPP
RUN apk update \
&& apk add build-base \
&& apk add g++

# JAVA 8
RUN apk fetch openjdk8 \
&& apk add openjdk8
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
ENV PATH="$JAVA_HOME/bin:${PATH}"

# Python 3
RUN apk add python3 py3-pip \
&& apk add --upgrade bash

RUN ["chmod", "+x", "./run.sh"]
ENTRYPOINT [ "./run.sh" ]
Run Code Online (Sandbox Code Playgroud)

当我点击 command 时docker build -t dockerfile .,我收到此错误 - 这是什么意思以及如何修复它?

> [+] Building 28.2s (3/3) FINISHED  => [internal] load …
Run Code Online (Sandbox Code Playgroud)

docker

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

自动分配公共 IP 设置如何影响私有和公共子网?

所以我刚刚学习AWS VPC网络。据我了解,公共子网和私有子网之间的主要区别在于该子网中的流量是否可以路由到互联网网关(通过路由表规则)。

然而,这似乎并不是两者之间的唯一区别。我注意到公共子网将始终启用auto-assign public IP address,而私有子网将禁用它。

因此,作为一个思想实验,我想知道如果我在公共子网中禁用自动分配功能,或在私有子网中启用它,会发生什么?

我可以猜测,如果我在私有子网中启用它,可能不会发生任何事情,因为无论如何都没有流量可以路由到互联网网关。因此,自动分配的 IP 地址将被浪费。

但是第一个场景呢?如果我在公共子网中禁用自动分配,流量是否仍然能够路由到 Internet 网关并最终路由到 Internet?我可以在该公共子网中创建一个 NAT 并将所有 Internet 流量路由到该 NAT,这样我们就不需要将公共 IP 分配给所有公共实例吗?我知道我们可以将这些实例移动到私有子网并将它们路由到 NAT,但我只是好奇我们是否必须为公共子网中的所有实例分配单独的 IP 地址,因为这对我来说似乎有点不必要。

ip-address subnet routetable amazon-web-services amazon-vpc

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

在 VS Code 中哪里可以找到远程 URL

我是 VS Code 新手,通常使用 Webstorm。在 Webstorm 中,您可以在操作命令面板中输入“remotes”来查找 git 存储库的远程 url。VS Code 中有类似的东西可以找到该 url 吗?

多谢

git visual-studio-code

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

找到给定图像的 Dockerfile

我正在一台 Linux 机器上工作。我大约 3-4 周前构建了一个 Docker 镜像,但我不记得 Dockerfile 位于哪里。

查找 Dockerfile 的最佳方式是什么?是否有可能以某种方式在给定图像的情况下获取其位置?

我尝试使用:

$ docker image inspect <image>
Run Code Online (Sandbox Code Playgroud)

但它不显示此信息。

docker

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

对 AWS 特定参数类型强制执行非空验证

在我的云形成模板中,我使用了一些 AWS 特定的参数类型。例如:

"VPC": {
      "Description": "Choose exiting VPC",
      "Type": "AWS::EC2::VPC::Id"
},
Run Code Online (Sandbox Code Playgroud)

允许部署堆栈的用户从下拉 VPC 列表中进行选择。

我注意到,如果我不选择 VPC 并将该参数留空,堆栈就会部署,但很快就会失败,因为该参数留空。

我浏览了这里的文档: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-struct.html

但没有找到任何可以解释这种行为的内容。


有没有办法对这些参数强制执行非空验证(即确保用户确实选择了一个值)?我想确保一点击就弹出错误Create stack。对于普通参数,我可以用来AllowedPattern强制执行某种模式。这些参数类型有类似的东西吗?

amazon-web-services aws-cloudformation

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