小编muz*_*row的帖子

我可以在AWS Cloudformation json模板的"参数"中使用"Fn :: Join"吗?

我想在一些Policy/Loadbalancers标签名称的参数Cloudformation json模板快捷方式中使用,如下所示:

"SomeScalingGroupName": {
            "Type": "String",
            "Default": {"Fn::Join": ["", ["Process-", {"Ref": "Env"}, "-Some-Worker-Name"]]}
        },
Run Code Online (Sandbox Code Playgroud)

我得到错误:

模板验证错误:模板格式错误:每个默认成员必须是字符串.

所以我的问题是,在参数中使用函数连接的正确方法是什么?或者我还有其他办法吗?或者你有什么更好的建议来使用它?

谢谢!

json amazon-web-services aws-cloudformation

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

如何在Cloudformation模板中将EIP分配给VPC的Autoscaling Group

我想将一个保留的弹性IP(ec2 classic ip)分配给VPC中的Autoscaling组.使用AWS Cli我将ip移至vpc:

$ aws ec2 move-address-to-vpc --public-ip 23.23.23.23
Run Code Online (Sandbox Code Playgroud)

并且在aws concole中看到,这个IP传递给了VPC.并在Resources中的Cloudformation模板中分配了AutoscalingGroup的标签:

"Process": {
        "Type" : "AWS::AutoScaling::AutoScalingGroup",
        "Properties": {
            "LaunchConfigurationName": {"Ref": "PreprocessorLC"},
            "LoadBalancerNames": [{"Ref": "ProcessELB"}],
            "VPCZoneIdentifier" : [{ "Fn::Join" : [",", [ { "Ref" : "PublicSubnet1"}, { "Ref" : "PublicSubnet2"} ]]}],
            "AvailabilityZones": {"Ref": "AZs"},
            "MinSize" : "1",
            "MaxSize" : "1",
            "HealthCheckGracePeriod": 300,
            "Tags" : [
                {"Key": "Name", "Value": {"Fn::Join": ["", [{"Ref": "Env"}, "-Process"]]}, "PropagateAtLaunch": true},
                {"Key": "WorkersScalingGroup", "Value": {"Fn::Join": ["", ["Offering-", {"Ref": "Env"},  "-Process-Worker"]]}, "PropagateAtLaunch": true},
                {"Key": "EIP", "Value": {"Ref": …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cloudformation amazon-vpc

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

在Kubernetes中导出/导入Keycloak数据的最佳实践

我正在试图找出keycloak版本3.3.0.CR1中的导入/导出最佳实践.正如我在keycloak官方页面导入/导出中看到的那样,他们描述了策略.这里是他们导出到单个文件json的示例.goint到/ keycloak/bin文件夹并运行这个:

./standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json
Run Code Online (Sandbox Code Playgroud)

我登录了k8s pod.运行此命令后,我收到错误:

12:23:32,045 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("core-service" => "management"),
    ("management-interface" => "http-interface")
]) - failure description: {
    "WFLYCTL0080: Failed services" => {"org.wildfly.management.http.extensible" => "java.net.BindException: Address already in use /127.0.0.1:9990"},
    "WFLYCTL0288: One or more services were unable to start due to one or more indirect dependencies not being available." => {
        "Services that were unable to start:" => ["org.wildfly.management.http.extensible.shutdown"],
        "Services that may be the …
Run Code Online (Sandbox Code Playgroud)

kubernetes keycloak kubernetes-helm

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

如果可以使用AWS Cloudformation模板将Loadbalancers DNSname连接到Route53?

我尝试连接的是Loadbalancer DNS名称到Route53.让我们看看例子.这是资源中模板的Loadbabancer:

"RestELB" : {
        "Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
        "DependsOn": "AttachGateway",
        "Properties": {
            "LoadBalancerName": {"Fn::Join": ["",["Rest-ELB-", {"Ref": "VPC"}]]},
            "CrossZone" : "true",
            "Subnets": [{ "Ref": "PublicSubnet1" },{ "Ref": "PublicSubnet2" }],
            "Listeners" : [
                {"LoadBalancerPort" : "80", "InstancePort" : "80","Protocol" : "HTTP"},
                {"LoadBalancerPort" : "6060", "InstancePort" : "6060","Protocol" : "HTTP"}
            ],
        }
    },
Run Code Online (Sandbox Code Playgroud)

这是Route53:

"ApiRecordSet" : {
      "Type" : "AWS::Route53::RecordSet",
      "Properties" : {
        "AliasTarget" :{
          "DNSName" : [
            {"Fn::Join": ["", [{"ElasticLoadBalancer": "DNSName"},"."]]}
          ],
          "EvaluateTargetHealth" : "Boolean",
          "HostedZoneId" : "String"
        },
        "HostedZoneName" : "example.net.", …
Run Code Online (Sandbox Code Playgroud)

json amazon-web-services aws-cloudformation

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

创建堆栈中的Cloudformation错误:“ ELB无法连接到同一可用区中的多个子网”

我尝试使用Cloudformation json模板构建基础结构。当我在两个所需的可用区域中添加两个Subnets和SubnetRouteTableAssociation时。但是创建过程无法创建错误的负载均衡器:

CREATE_FAILED AWS :: ElasticLoadBalancing :: LoadBalancer Rest ELB无法连接到同一可用区中的多个子网。

这是可用区的参数:

"AZs" : {
            "Description" : "The list of AvailabilityZones.",
            "Type" : "CommaDelimitedList",
            "Default" : "us-east-1a,us-east-1c"
        }
Run Code Online (Sandbox Code Playgroud)

这是可用性区域中的子网资源,SubnetRouteTableAssociation和Rest的ElasticLoadBalancing:

"PublicSubnet1a" : {
      "Type" : "AWS::EC2::Subnet",
      "Properties" : {
        "VpcId" : { "Ref" : "VPC" },
        "CidrBlock" : "10.0.0.0/24",
        "AvailabilityZone": {
          "Fn::Select": ["1", { "Ref": "AZs" }]
        },
        "Tags" : [
          {"Key": "Name", "Value": {"Fn::Join": ["", ["Offering-", {"Ref": "Env"}, {"Ref": "EnvNum"}, "-VPC"]]}},
          {"Key" : "Network", "Value" : "Public" }
        ]
      }
    }, …
Run Code Online (Sandbox Code Playgroud)

json amazon-web-services aws-cloudformation devops

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

使用AWS CLI在实例内部选择Autoscaling Group的标签

当我在具有Autoscaling组的实例内部时。我正在尝试选择Autoscaling Group的一些特定标签。我知道我可以使用AWS CLI命令“ aws autoscaling describe-tags”。所以我写了一些.sh文件。比包含:

#!/bin/sh
#Instance ID
InstanceID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`

#Allocation ID from Autoscaling tags
Autoscaling=`aws ec2 describe-tags --filters "Name=resource-id,Values=$InstanceID" "Name=key,Values=aws:autoscaling:groupName"`
AllocationID=`aws autoscaling describe-tags --filter "Name=key,Values=$Autoscaling"| select(["Value"] | contains("eipalloc"))`

#Assigning VPC Elastic IP to Instance via Allocation ID
aws ec2 associate-address --instance-id $InstanceID --allocation-id $AllocationID
Run Code Online (Sandbox Code Playgroud)

这不仅仅因为我不能以这种方式选择价值而已。谁能告诉我如何正确选择某些特定标签?

谢谢!

bash shell amazon-web-services aws-cli

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

如何使用 Bash 删除 json 文件中的最后一个逗号?

我写了一些脚本来获取 aws ec2 实例的所有用户数据,并回显到 local.json。当我安装 node.js 模块时,所有这些都会发生。我不知道如何删除 json 文件中的最后一个逗号。这是 bash 脚本:

#!/bin/bash
export DATA_DIR=/data
export PATH=$PATH:/usr/local/bin

#install package from git repository
sudo -- sh -c "export PATH=$PATH:/usr/local/bin; export DATA_DIR=/data; npm install git+https://reader:secret@bitbucket.org/somebranch/$1.git#$2"

#update config files from instance user-data
InstanceConfig=`cat /instance-config`
echo '{' >> node_modules/$1/config/local.json
while read line
do
   if [ ! -z "$line" -a "$line" != " " ]; then
      Key=`echo $line | cut -f1 -d=`
      Value=`echo $line | cut -f2 -d=`
      if [ "$Key" = "Env" ]; then
         Env="$Value" …
Run Code Online (Sandbox Code Playgroud)

bash shell awk json sed

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