<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2482159392595548869</id><updated>2024-09-13T21:35:41.912+10:00</updated><category term="life"/><category term="Tech"/><category term="AWS"/><category term="Internet"/><category term="uni"/><category term="CFN"/><category term="CloudFormation"/><category term="RDS"/><category term="postgres"/><category term="spring-boot"/><category term="spring-cloud-aws"/><category term="video"/><category term="web development"/><category term="Cars"/><category term="DIY"/><category term="PostgreSQL"/><category term="art"/><category term="gold coast"/><category term="hack"/><category term="ivy"/><category term="maven"/><category term="nature"/><category term="new site"/><category term="other"/><category term="picture"/><category term="problem"/><category term="pub"/><category term="spring-cloud-aws-dependencies"/><category term="tree"/><category term="web application"/><category term="work"/><title type='text'>William Dutton&#39;s Blog</title><subtitle type='html'>Tidbits of useful information of William Dutton, Principal System Administrator and Architect</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>83</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-7610967864713449979</id><published>2023-02-02T08:59:00.004+10:00</published><updated>2023-02-02T08:59:54.555+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="CFN"/><category scheme="http://www.blogger.com/atom/ns#" term="CloudFormation"/><title type='text'>How to find Private Network Load Balancer (NLB) ALBv2 IP4 addresses for adding to security group to allow health checks to pass</title><content type='html'>&lt;p&gt;&amp;nbsp;Use case:&lt;/p&gt;&lt;p&gt;My Target Groups attached to my Load Balancer route to a private internal port that is not on the security group white listing.&amp;nbsp; &amp;nbsp;Due to Network Load Balancer&#39;s use of the EC2 connected Security Group. I don&#39;t want to whitelist the private internal port to the internet for possible bypass.&lt;/p&gt;&lt;p&gt;This can be done manually in the aws console by finding the ENI by looking up the ELB (type)/(name)/(random string) getting the private ip4 and then adding them manually to the security group.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;But this defeats the purpose of having a cloudformation script that automatically stands up everything to work.&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;-apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif&quot; style=&quot;font-size: 14px;&quot;&gt;in this example we want to get the private ip4 address of a ELBv2 (network). Full working example:&amp;nbsp;&lt;/span&gt;&lt;span face=&quot;-apple-system, system-ui, Segoe UI, system-ui, Apple Color Emoji, Segoe UI Emoji, Segoe UI Web, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;a href=&quot;https://github.com/qld-gov-au/quickstart-atlassian-bitbucket/blob/d6ebe59b5ccdd204a7edc72ab6f0f89d575ac6f8/templates/quickstart-bitbucket-dc.template.yaml &quot;&gt;https://github.com/qld-gov-au/quickstart-atlassian-bitbucket/blob/d6ebe59b5ccdd204a7edc72ab6f0f89d575ac6f8/templates/quickstart-bitbucket-dc.template.yaml&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;-apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif&quot; style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;div style=&quot;box-sizing: border-box; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif; font-size: 14px;&quot;&gt;&lt;div data-tid=&quot;messageBodyContainer&quot;&gt;&lt;div data-tid=&quot;messageBodyContent&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/duttonw/6b494b8d33d157a904f9817d91e2967b.js&quot;&gt;&lt;/script&gt;

&lt;p style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;em style=&quot;font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif; font-size: 9.8pt;&quot;&gt;&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;em style=&quot;font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif; font-size: 9.8pt;&quot;&gt;(non-gist version below)&lt;/em&gt;&lt;/p&gt;&lt;p style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;em style=&quot;font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif; font-size: 9.8pt;&quot;&gt;#Network Load Balancer health checks, need internal ip to approve connectivity&lt;/em&gt;&lt;/p&gt;&lt;div&gt;&lt;div style=&quot;box-sizing: border-box; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Web&amp;quot;, sans-serif; font-size: 14px;&quot;&gt;&lt;div data-tid=&quot;messageBodyContainer&quot;&gt;&lt;div data-tid=&quot;messageBodyContent&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;pre style=&quot;font-size: 9.8pt;&quot;&gt;InternalNLBIp4List:
  DependsOn: NetworkLoadBalancerELB2
  Type: Custom::InternalNLBIp4ListCollector
  Version: 1.0
  Properties:
    ServiceToken: !GetAtt InternalNLBIp4ListCollector.Arn
    ELBv2Arn: !Ref NetworkLoadBalancerELB2
    StackName: !Ref &#39;AWS::StackName&#39;
InternalNLBIp4ListCollector:
  Type: &quot;AWS::Lambda::Function&quot;
Properties:
    Handler: index.lambda_handler
    Role: !GetAtt InternalNLBIp4ListCollectorExecutionRole.Arn
    Runtime: python3.7
    Timeout: 120
    Code:
      ZipFile: |
        import cfnresponse
        import boto3

        def lambda_handler(event, context):
          elbv2 = boto3.client(&#39;elbv2&#39;)
          ec2 = boto3.client(&#39;ec2&#39;)
          elb2arn = event[&#39;ResourceProperties&#39;][&#39;ELBv2Arn&#39;]
          response = elbv2.describe_load_balancers(LoadBalancerArns=[elb2arn])
          name = response[&#39;LoadBalancers&#39;][0][&#39;LoadBalancerName&#39;]
          elbtype = response[&#39;LoadBalancers&#39;][0][&#39;Type&#39;]
          filters = [{&#39;Name&#39;: &#39;description&#39;, &#39;Values&#39;: [&#39;ELB &#39;+ elbtype[0:3] + &#39;/&#39; + name + &#39;*&#39;]}]
          eni_response = ec2.describe_network_interfaces(Filters=filters)
          ip_addresses = [eni[&#39;PrivateIpAddress&#39;] for eni in eni_response[&#39;NetworkInterfaces&#39;]]
          ip_addresses_cidr = [eni[&#39;PrivateIpAddress&#39;] + &#39;/32&#39; for eni in eni_response[&#39;NetworkInterfaces&#39;]]
          print (ip_addresses)
          responseData = {}
          responseData[&#39;PrivateIpAddresses&#39;] = ip_addresses
          responseData[&#39;PrivateIpCidrAddresses&#39;] = ip_addresses_cidr
          cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData)

InternalNLBIp4ListCollectorExecutionRole:
  Type: &quot;AWS::IAM::Role&quot;
Properties:
    AssumeRolePolicyDocument:
      Version: &#39;2012-10-17&#39;
Statement:
        - Effect: Allow
          Principal:
            Service:
              - lambda.amazonaws.com
          Action:
            - sts:AssumeRole
    Path: &quot;/&quot;
Policies:
      - PolicyName: root
        PolicyDocument:
          Version: &#39;2012-10-17&#39;
Statement:
            - Effect: Allow
              Action:
                - logs:CreateLogGroup
                - logs:CreateLogStream
                - logs:PutLogEvents
              Resource: !Sub &quot;arn:${AWS::Partition}:logs:*:${AWS::AccountId}:log-group:/aws/lambda/*InternalNLBIp4ListCollector*&quot;
- Effect: Allow
              Action:
                - &quot;elasticloadbalancing:DescribeLoadBalancers&quot;
- &quot;ec2:DescribeNetworkInterfaces&quot;
Resource: &quot;*&quot;
&lt;/pre&gt;




&lt;div&gt;





&lt;pre style=&quot;font-size: 9.8pt;&quot;&gt;&lt;em&gt;#NLB ip&#39;s need to be whitelisted to allow health checks to pass
&lt;/em&gt;SecurityGroupIngressNLB:
  DependsOn:
    - InternalNLBIp4List
    - SecurityGroup
  Type: AWS::EC2::SecurityGroupIngress
  Properties:
    GroupId: !Ref SecurityGroup
    IpProtocol: &quot;-1&quot;
FromPort: -1
    ToPort: -1
    CidrIp: !Select [ 0, !GetAtt InternalNLBIp4List.PrivateIpCidrAddresses ]

SecurityGroupIngressNLB2: &lt;em&gt;#ELB in 2 subnets, will have 2 ip&#39;s
&lt;/em&gt;DependsOn:
    - InternalNLBIp4List
    - SecurityGroup
  Type: AWS::EC2::SecurityGroupIngress
  Properties:
    GroupId: !Ref SecurityGroup
    IpProtocol: &quot;-1&quot;
FromPort: -1
    ToPort: -1
    CidrIp: !Select [ 1, !GetAtt InternalNLBIp4List.PrivateIpCidrAddresses ]
&lt;/pre&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/7610967864713449979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/7610967864713449979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/7610967864713449979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/7610967864713449979'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2023/02/how-to-find-private-network-load.html' title='How to find Private Network Load Balancer (NLB) ALBv2 IP4 addresses for adding to security group to allow health checks to pass'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-8755690230830854109</id><published>2021-05-13T14:00:00.007+10:00</published><updated>2021-05-13T14:11:15.781+10:00</updated><title type='text'>AWS Java Lambda package ways</title><content type='html'>&lt;p&gt;&amp;nbsp;There is two ways to make Aws Java Lambda packages, one is to make a uber FAT jar with the shade plugin.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Many people are in two camps on this, as well as it causing major problems with duplicates and needing custom code to make things &#39;happy&#39;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;An example of this is below&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;org.apache.maven.plugins&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;maven-shade-plugin&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;createDependencyReducedPom&lt;/span&gt;&amp;gt;false&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;createDependencyReducedPom&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;executions&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;execution&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;phase&lt;/span&gt;&amp;gt;package&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;phase&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;goals&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;goal&lt;/span&gt;&amp;gt;shade&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;goal&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;goals&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;transformers&lt;/span&gt;&amp;gt;&lt;br /&gt;                    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;transformer &lt;/span&gt;&lt;span style=&quot;color: #174ad4;&quot;&gt;implementation&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;=&quot;com.github.edwgiz.maven_shade_plugin.log4j2_cache_transformer.PluginsCacheFileTransformer&quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;                    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;transformer&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;transformers&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;execution&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;executions&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: Times;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;The second way is to make a zip, it like a .war file in a way and still works, there is more maven configuration&amp;nbsp;of setting up. This also allows a split to occur with the use of Lambda Layers (playing the lib&#39;s as a layer)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: #8c8c8c; font-style: italic;&quot;&gt;&amp;lt;!-- alternative way without needing to use shader --&amp;gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;org.apache.maven.plugins&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;maven-jar-plugin&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;finalName&lt;/span&gt;&amp;gt;${project.build.finalName}&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;finalName&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;archive&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;manifest&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;addClasspath&lt;/span&gt;&amp;gt;true&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;addClasspath&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;classpathPrefix&lt;/span&gt;&amp;gt;lib/&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;classpathPrefix&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;addDefaultImplementationEntries&lt;/span&gt;&amp;gt;true&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;addDefaultImplementationEntries&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;addDefaultSpecificationEntries&lt;/span&gt;&amp;gt;true&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;addDefaultSpecificationEntries&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;manifest&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;archive&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;org.apache.maven.plugins&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;maven-dependency-plugin&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;version&lt;/span&gt;&amp;gt;3.1.2&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;version&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;executions&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;execution&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;id&lt;/span&gt;&amp;gt;copy-dependencies&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;id&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;phase&lt;/span&gt;&amp;gt;package&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;phase&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;goals&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;goal&lt;/span&gt;&amp;gt;copy-dependencies&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;goal&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;goals&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;includeScope&lt;/span&gt;&amp;gt;runtime&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;includeScope&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;outputDirectory&lt;/span&gt;&amp;gt;${project.build.directory}/lib&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;outputDirectory&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;execution&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;executions&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;org.apache.maven.plugins&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;groupId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;maven-assembly-plugin&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;artifactId&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;version&lt;/span&gt;&amp;gt;2.5.4&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;version&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;executions&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;execution&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;phase&lt;/span&gt;&amp;gt;package&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;phase&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;goals&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;goal&lt;/span&gt;&amp;gt;single&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;goal&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;goals&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;descriptors&lt;/span&gt;&amp;gt;&lt;br /&gt;                    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;descriptor&lt;/span&gt;&amp;gt;src/main/assembly/bin.xml&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;descriptor&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;descriptors&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;attach&lt;/span&gt;&amp;gt;false&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;attach&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;configuration&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;execution&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;executions&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;plugin&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: #8c8c8c; font-size: 9.8pt; font-style: italic;&quot;&gt;&amp;lt;!-- END alternative way without needing to use shader --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: black; font-family: Times; font-size: medium; white-space: normal;&quot;&gt;This does require an assembly xml file placed at&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Times;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;src/main/assembly/bin.xml&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;assembly&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;id&lt;/span&gt;&amp;gt;aws-lambda-package&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;id&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;formats&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;format&lt;/span&gt;&amp;gt;zip&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;format&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;formats&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;includeBaseDirectory&lt;/span&gt;&amp;gt;false&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;includeBaseDirectory&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;fileSets&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;fileSet&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;directory&lt;/span&gt;&amp;gt;${project.build.directory}${file.separator}lib&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;directory&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;outputDirectory&lt;/span&gt;&amp;gt;lib&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;outputDirectory&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;useDefaultExcludes&lt;/span&gt;&amp;gt;true&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;useDefaultExcludes&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;fileSet&lt;/span&gt;&amp;gt;&lt;br /&gt;        &lt;span style=&quot;color: #8c8c8c; font-style: italic;&quot;&gt;&amp;lt;!-- copy all classes --&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c; font-style: italic;&quot;&gt;        &lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;fileSet&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;directory&lt;/span&gt;&amp;gt;${project.build.directory}${file.separator}classes&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;directory&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;includes&lt;/span&gt;&amp;gt;&lt;br /&gt;                &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;include&lt;/span&gt;&amp;gt;**&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;include&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;includes&lt;/span&gt;&amp;gt;&lt;br /&gt;            &amp;lt;&lt;span style=&quot;color: #0033b3;&quot;&gt;outputDirectory&lt;/span&gt;&amp;gt;${file.separator}&amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;outputDirectory&lt;/span&gt;&amp;gt;&lt;br /&gt;        &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;fileSet&lt;/span&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/&lt;span style=&quot;color: #0033b3;&quot;&gt;fileSets&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;font-size: 9.8pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #0033b3; font-size: 9.8pt;&quot;&gt;assembly&lt;/span&gt;&lt;span style=&quot;font-size: 9.8pt;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;Upload the zip instead of jar. All is good.&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;See &lt;a href=&quot;https://github.com/awslabs/aws-serverless-java-container/commit/22edc6e65dcdefab46145f80c80dcb274b0eedd4&quot;&gt;https://github.com/awslabs/aws-serverless-java-container/commit/22edc6e65dcdefab46145f80c80dcb274b0eedd4&lt;/a&gt; &lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/8755690230830854109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/8755690230830854109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/8755690230830854109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/8755690230830854109'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2021/05/aws-java-lambda-package-ways.html' title='AWS Java Lambda package ways'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-5637227196039528794</id><published>2021-05-04T10:04:00.005+10:00</published><updated>2021-05-04T10:04:49.902+10:00</updated><title type='text'>Junit 4 to Junit 5 upgrade</title><content type='html'>&lt;p&gt;&amp;nbsp;So you started to upgrade from old junit 4 to the new junit 5 api spec.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sadly the move the packages around. Its best to follow other docs out on the web for this like&amp;nbsp;&lt;/p&gt;&lt;p&gt;https://www.baeldung.com/junit-filtering-tests&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now heres a gotcha, if you are upgrading your springboot tests from junit4 to junit 5 and are trying to use tags to drop external tests or slow tests and it is not working.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It might actually be the import Test class that is breaking it.&lt;/p&gt;&lt;p&gt;Replace&amp;nbsp;&lt;span style=&quot;color: #ca3323; font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;import org.junit.Test;&amp;nbsp;&lt;/span&gt;with&lt;span style=&quot;color: #ca3323; font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #39c026; font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;import org.junit.jupiter.api.Test;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This should make everything work correctly again.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then the command below can work.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;mvn test&lt;/span&gt;&lt;span class=&quot;Apple-converted-space&quot; style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;-DexcludedGroups=ExternalIntegrationTest&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Menlo; font-size: 11px; font-variant-ligatures: no-common-ligatures;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/5637227196039528794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/5637227196039528794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5637227196039528794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5637227196039528794'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2021/05/junit-4-to-junit-5-upgrade.html' title='Junit 4 to Junit 5 upgrade'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-2457926570602289605</id><published>2021-04-20T08:47:00.001+10:00</published><updated>2021-04-20T08:47:20.916+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="spring-boot"/><category scheme="http://www.blogger.com/atom/ns#" term="spring-cloud-aws"/><category scheme="http://www.blogger.com/atom/ns#" term="spring-cloud-aws-dependencies"/><title type='text'>Major change between spring-boot 2.2.x to 2.4.x with spring-cloud and spring-cloud-starter-aws-parameter-store-config (bootstrap.yml, profiles and more)</title><content type='html'>&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;So with the change in how versioning works. A change to how config is loaded by default and a split between cloud agnostic spring-cloud and vendor specific integration types. There has been a major shake up on how to upgrade to the next minor version of spring-boot.&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;parent&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;artifactId&amp;gt;spring-boot-starter-parent&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;-&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;version&amp;gt;2.2.11.RELEASE&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;+&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;version&amp;gt;2.4.4&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;relativePath&amp;gt;&amp;lt;/relativePath&amp;gt;&amp;lt;!--empty to not look up parent folder which is a helper pom on building--&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;/parent&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;spring-cloud.version&amp;gt;Hoxton.SR5&amp;lt;/spring-cloud.version&amp;gt; &amp;lt;!-- https://spring.io/projects/spring-cloud release trains, Greenwich 2.1.x, Haxton 2.2.x --&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;spring-cloud.version&amp;gt;2020.0.2&amp;lt;/spring-cloud.version&amp;gt; &amp;lt;!-- https://spring.io/projects/spring-cloud release trains, Greenwich 2.1.x, Haxton 2.2.x, 2020.0.2 2.4.x --&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;We now need to include io.awspring.cloud:spring-cloud-aws-dependencies as its now not included in the upstream org.springframework.cloud:spring-cloud-dependencies&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;dependencyManagement&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;!-- spring cloud and aws cloud for param store lookup --&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;dependency&amp;gt;&amp;lt;scope&amp;gt;import&amp;lt;/scope&amp;gt;&amp;lt;groupId&amp;gt;org.springframework.cloud&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;spring-cloud-dependencies&amp;lt;/artifactId&amp;gt;&amp;lt;version&amp;gt;${spring-cloud.version}&amp;lt;/version&amp;gt;&amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;+&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;dependency&amp;gt;&amp;lt;scope&amp;gt;import&amp;lt;/scope&amp;gt;&amp;lt;groupId&amp;gt;io.awspring.cloud&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;spring-cloud-aws-dependencies&amp;lt;/artifactId&amp;gt;&amp;lt;version&amp;gt;2.3.1&amp;lt;/version&amp;gt;&amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;..&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;With dependencies we don&#39;t include spring-cloud-starter any more but with bootstrap.yml not being the &#39;default&#39; way for loading we now need to include spring-cloud-starter-bootstrap to re-enable that functionality&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.springframework.cloud&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;spring-cloud-starter&amp;lt;/artifactId&amp;gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.springframework.cloud&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;spring-cloud-starter-aws-parameter-store-config&amp;lt;/artifactId&amp;gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;!-- spring-cloud-starter-bootstrap required to enable bootstrap.yml due to it not being default anymore --&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.springframework.cloud&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;spring-cloud-starter-bootstrap&amp;lt;/artifactId&amp;gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;!-- aws parm store config changed home--&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;io.awspring.cloud&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;spring-cloud-starter-aws-parameter-store-config&amp;lt;/artifactId&amp;gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;You now can&#39;t have spring profiles load other profiles, you can do profile groups, but that is limited if you wanted something dynamic like enabling proxy settings. (this is maven profile adding a spring profile)&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;profile&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;id&amp;gt;local-proxy&amp;lt;/id&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;activation&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;property&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;name&amp;gt;env.http_proxy&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/activation&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;springBootRunArguments&amp;gt;--spring.profiles.include=PROXY,&amp;lt;/springBootRunArguments&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;springBootRunArguments&amp;gt;--spring.config.import=classpath:application-PROXY.yml&amp;lt;/springBootRunArguments&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;build&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;plugins&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;artifactId&amp;gt;maven-surefire-plugin&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;version&amp;gt;${maven-surefire-plugin.version}&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;systemPropertyVariables&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;spring.profiles.include&amp;gt;PROXY&amp;lt;/spring.profiles.include&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;spring.config.import&amp;gt;classpath:application-PROXY.yml&amp;lt;/spring.config.import&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/systemPropertyVariables&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;artifactId&amp;gt;maven-failsafe-plugin&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;systemPropertyVariables&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;spring.profiles.include&amp;gt;PROXY&amp;lt;/spring.profiles.include&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;spring.config.import&amp;gt;classpath:application-PROXY.yml&amp;lt;/spring.config.import&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/systemPropertyVariables&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;artifactId&amp;gt;spring-boot-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;jvmArguments&amp;gt;-Dspring-boot.run.jvmArguments=&#39;-Dspring.profiles.include=&quot;PROXY&quot;&#39;&amp;lt;/jvmArguments&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span class=&quot;Apple-converted-space&quot; style=&quot;color: #38761d;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;lt;jvmArguments&amp;gt;-Dspring-boot.run.jvmArguments=&#39;-Dspring.config.import=&quot;classpath:application-PROXY.yml&quot;&#39;&amp;lt;/jvmArguments&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/plugins&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/build&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&amp;lt;/profile&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;Any properties files you may have loaded that used &quot;spring.profiles.include&quot; can&#39;t be used any more with 2.4.x+ (unless you enabled legacy which will be going away after 2.6.x? version i believe)&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;-&lt;span style=&quot;color: #38761d;&quot;&gt;spring.profiles.include: defaults&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;+&lt;span style=&quot;color: #38761d;&quot;&gt;spring.config.import: classpath:application-defaults.yml&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;Also ensure that your bootstrap.yml has&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;aws.paramstore.enabled: true&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;It is on by default (But as its nowvin your config you can set it to false for local run&#39;s)&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;For more info, see:&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4&quot;&gt;https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-files-profile-specific&quot;&gt;https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-files-profile-specific&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://github.com/awspring/spring-cloud-aws/blob/2.3.x/docs/src/main/asciidoc/parameter-store.adoc&quot;&gt;https://github.com/awspring/spring-cloud-aws/blob/2.3.x/docs/src/main/asciidoc/parameter-store.adoc&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://github.com/awspring/spring-cloud-aws/blob/2.3.x/spring-cloud-starter-aws-parameter-store-config/src/test/java/io/awspring/cloud/autoconfigure/paramstore/AwsParamStoreBootstrapConfigurationTest.java&quot;&gt;https://github.com/awspring/spring-cloud-aws/blob/2.3.x/spring-cloud-starter-aws-parameter-store-config/src/test/java/io/awspring/cloud/autoconfigure/paramstore/AwsParamStoreBootstrapConfigurationTest.java&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/64907675/including-profiles-in-spring-boot-2-4-0-version&quot;&gt;https://stackoverflow.com/questions/64907675/including-profiles-in-spring-boot-2-4-0-version&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/64994034/bootstrap-yml-configuration-not-processed-anymore-with-spring-cloud-2020-0&quot;&gt;https://stackoverflow.com/questions/64994034/bootstrap-yml-configuration-not-processed-anymore-with-spring-cloud-2020-0&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/65063402/why-bootstrap-properties-is-ignored-by-spring-cloud-starter-config&quot;&gt;https://stackoverflow.com/questions/65063402/why-bootstrap-properties-is-ignored-by-spring-cloud-starter-config&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;a href=&quot;https://docs.awspring.io/spring-cloud-aws/docs/2.3.0/reference/html/index.html#integrating-your-spring-cloud-application-with-the-aws-parameter-store&quot;&gt;https://docs.awspring.io/spring-cloud-aws/docs/2.3.0/reference/html/index.html#integrating-your-spring-cloud-application-with-the-aws-parameter-store&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px; min-height: 15px;&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;; font-size: 13px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;&quot;&gt;Something I want to look into is setting up something like&amp;nbsp;&lt;a href=&quot;https://github.com/localstack/localstack&quot;&gt;https://github.com/localstack/localstack&lt;/a&gt; within a maven project so that param store loading can be tested in pdev instead of being caught in an aws dev/test environment.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/2457926570602289605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/2457926570602289605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2457926570602289605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2457926570602289605'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2021/04/major-change-between-spring-boot-22x-to.html' title='Major change between spring-boot 2.2.x to 2.4.x with spring-cloud and spring-cloud-starter-aws-parameter-store-config (bootstrap.yml, profiles and more)'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-761107944659134090</id><published>2020-10-07T15:23:00.004+10:00</published><updated>2020-10-07T15:31:18.484+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="spring-boot"/><category scheme="http://www.blogger.com/atom/ns#" term="spring-cloud-aws"/><title type='text'>Spring cloud param store Hoxton.SR6 to Hoxton.SR8 how to run locally</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So your using aws param store to configure your application when deployed to docker/elastic beanstalk but ran into issues on doing testing after updates to remove cve issues.&lt;/p&gt;&lt;p&gt;before hand&lt;/p&gt;&lt;p&gt;at or before Hoxton.SR6 you only needed in test/resources/bootstrap.yml&lt;/p&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;aws.paramstore.enabled&lt;/span&gt;: false&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;But after updating to &lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;pre style=&quot;font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;spring-cloud.version&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;Hoxton.SR8&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;spring-cloud.version&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;import&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;scope&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;org.springframework.cloud&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;spring-cloud-dependencies&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;${spring-cloud.version}&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;pom&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;org.springframework.cloud&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;spring-cloud-starter&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;org.springframework.cloud&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;groupId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;spring-cloud-starter-aws-parameter-store-config&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;artifactId&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;background-color: #efefef; color: navy; font-weight: bold;&quot;&gt;dependency&lt;/span&gt;&lt;span style=&quot;background-color: #efefef;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;it now throws logs of errors and fails to boot, this sucks :&#39;(&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;errors are:&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;

see &lt;a href=&quot;https://gist.github.com/duttonw/990a4964aa8e1fb069c4b393e946828f&quot;&gt;Log file output&lt;/a&gt;&lt;br /&gt;

&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;lets work out where it broke. We first need to see what jar&#39;s were imported by our spring-cloud-dependencies&lt;/pre&gt;&lt;p&gt;we do this by looking at&amp;nbsp;&lt;/p&gt;&lt;p&gt;https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies/Hoxton.SR6 to&amp;nbsp;https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies/Hoxton.SR8&lt;/p&gt;&lt;p&gt;And we notice that that the aws cloud version incremented from 2.2.2 to 2.2.4&lt;/p&gt;&lt;p&gt;to see what changed we can do this on github by visiting the link below&lt;/p&gt;&lt;p&gt;https://github.com/spring-cloud/spring-cloud-aws/compare/v2.2.2.RELEASE...v2.2.4.RELEASE&lt;/p&gt;&lt;p&gt;What was added in the doc&#39;s which looked like it might be our problem.&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace&quot; style=&quot;background-color: #e6ffed; color: #24292e; font-size: 12px; text-indent: -7px; white-space: pre-wrap;&quot;&gt;|aws.paramstore.region |  | If region value is not null or empty it will be used in creation of AWSSimpleSystemsManagement.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace&quot; style=&quot;background-color: #e6ffed; color: #24292e; font-size: 12px; text-indent: -7px; white-space: pre-wrap;&quot;&gt;|aws.secretsmanager.region |  | If region value is not null or empty it will be used in creation of AWSSecretsManager.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace&quot; style=&quot;background-color: #e6ffed; color: #6a737d; font-size: 12px; text-indent: -7px; white-space: pre-wrap;&quot;&gt;On application startup, for its internal purposes Spring Cloud AWS performs a check if application runs in AWS cloud environment&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace&quot; style=&quot;background-color: #e6ffed; color: #6a737d; font-size: 12px; text-indent: -7px; white-space: pre-wrap;&quot;&gt;by using `EC2MetadataUtils` class provided by AWS SDK. Starting from version 1.11.678, AWS SDK logs a warning message with exception when this check is made outside of AWS environment.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face=&quot;SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace&quot; style=&quot;background-color: #e6ffed; color: #6a737d; font-size: 12px; text-indent: -7px; white-space: pre-wrap;&quot;&gt;This warning message can be hidden by setting `ERROR` logging level on `com.amazonaws.util.EC2MetadataUtils` class.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;so it seems we now need to set a region to block auto region lookup even when we have the paramstore disabled, we also need to do it for the stack and region lookup outside of paramstore.&lt;/p&gt;&lt;p&gt;test/resources/bootstrap.yml&lt;/p&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;aws&lt;/span&gt;:&lt;br /&gt;  &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;paramstore&lt;/span&gt;:&lt;br /&gt;    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;enabled&lt;/span&gt;: &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;false&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;    fail-fast&lt;/span&gt;: &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;false&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;    region&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;ap-southeast-2&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;secretmanager&lt;/span&gt;:&lt;br /&gt;    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;region&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;ap-southeast-2&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;cloud&lt;/span&gt;:&lt;br /&gt;  &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;aws&lt;/span&gt;:&lt;br /&gt;    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;region&lt;/span&gt;:&lt;br /&gt;      &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;auto&lt;/span&gt;: &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;false&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;      static&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;ap-southeast-2&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;stack&lt;/span&gt;:&lt;br /&gt;      &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;auto&lt;/span&gt;: &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;false&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;Now that we did this, we are now not crashing. Awesome :D&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;Hope this helps others including future me.&lt;/pre&gt;&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/761107944659134090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/761107944659134090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/761107944659134090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/761107944659134090'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2020/10/spring-cloud-param-store-hoxtonsr6-to.html' title='Spring cloud param store Hoxton.SR6 to Hoxton.SR8 how to run locally'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-8468064066996446807</id><published>2019-12-16T14:59:00.001+10:00</published><updated>2019-12-16T14:59:07.993+10:00</updated><title type='text'>AWS Param store put with urls via CLI</title><content type='html'>seems the CLI will follow urls given to it. which for param store is not very useful when you want to store the website address instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the work around.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f6f8fa; border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 11.9px; line-height: 1.45; overflow-wrap: normal; overflow: auto; padding: 16px;&quot;&gt;&lt;code style=&quot;background: initial; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, monospace; font-size: 11.9px; line-height: inherit; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 0px; word-break: normal;&quot;&gt;aws configure set cli_follow_urlparam false&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
per&lt;br /&gt;
&lt;a href=&quot;https://github.com/aws/aws-cli/issues/1475&quot;&gt;https://github.com/aws/aws-cli/issues/1475&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
then this works&lt;br /&gt;
&lt;br /&gt;
aws ssm put-parameter --name &quot;/myappconfig/&quot; --type &quot;String&quot; --value &quot;http://enhanceindustries.com.au/&quot; --region ap-southeast-2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/8468064066996446807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/8468064066996446807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/8468064066996446807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/8468064066996446807'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/12/aws-param-store-put-with-urls-via-cli.html' title='AWS Param store put with urls via CLI'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-1765191400309400375</id><published>2019-12-13T10:58:00.001+10:00</published><updated>2019-12-13T10:58:11.766+10:00</updated><title type='text'>Australian API Standards</title><content type='html'>&lt;br /&gt;
This just came accross my desk.&lt;br /&gt;
&lt;br /&gt;
Looks like an awesome set of specs to build to.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://api.gov.au/standards/national_api_standards/index.html&quot;&gt;https://api.gov.au/standards/national_api_standards/index.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/1765191400309400375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/1765191400309400375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/1765191400309400375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/1765191400309400375'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/12/australian-api-standards.html' title='Australian API Standards'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-5019540251559088219</id><published>2019-12-13T09:02:00.004+10:00</published><updated>2019-12-13T09:14:12.925+10:00</updated><title type='text'>AWS Cloudformation how to swap between Ip&#39;s and AliasTarget via conditions</title><content type='html'>&lt;br /&gt;
Below Allows you to swap between cloudfront and a static ip address.&lt;br /&gt;
&lt;br /&gt;
Note the new line after the - for the If statement, this tells yaml that this is an object array, you need to replicate everything in the object array as cloudformation does not merge objects arrays together.&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;WebDNSRecordSet&lt;/span&gt;:
  &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Type&lt;/span&gt;: AWS::Route53::RecordSet
  &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;DependsOn&lt;/span&gt;:
    - DistributionConfig
  &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Properties&lt;/span&gt;:
    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Fn::If&lt;/span&gt;:
      - IsIPRestricted
      -
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;HostedZoneName&lt;/span&gt;: !Sub &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;${Domain}.&quot;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;ResourceRecords&lt;/span&gt;:
          - 123.123.123.123
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;TTL&lt;/span&gt;:  &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;900&#39;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Name&lt;/span&gt;: !Sub &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;www.${Domain}.&quot;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Type&lt;/span&gt;: A
      -
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;HostedZoneName&lt;/span&gt;: !Sub &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;${Domain}.&quot;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;AliasTarget&lt;/span&gt;:
          &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;DNSName&lt;/span&gt;:
            &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Fn::GetAtt&lt;/span&gt;: [DistributionConfig, DomainName]
          &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;HostedZoneId&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;Z2FDTNDATAQYW2&quot;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Name&lt;/span&gt;: !Sub &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;www.${Domain}.&quot;&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;Type&lt;/span&gt;: A&lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;a href=&quot;https://www.json2yaml.com/&quot;&gt;https://www.json2yaml.com/&lt;/a&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;When run through &lt;a href=&quot;https://www.json2yaml.com/&quot; style=&quot;font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;https://www.json2yaml.com/&lt;/a&gt;&lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;you get &lt;/pre&gt;
&lt;pre style=&quot;font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;
&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: DejaVu Sans Mono;&quot;&gt;&lt;span style=&quot;font-size: 13.0667px;&quot;&gt;{
  &quot;WebDNSRecordSet&quot;: {
    &quot;Type&quot;: &quot;AWS::Route53::RecordSet&quot;,
    &quot;DependsOn&quot;: [
      &quot;DistributionConfig&quot;
    ],
    &quot;Properties&quot;: {
      &quot;Fn::If&quot;: [
        &quot;IsIPRestricted&quot;,
        {
          &quot;HostedZoneName&quot;: &quot;${Domain}.&quot;,
          &quot;ResourceRecords&quot;: [
            &quot;&lt;/span&gt;&lt;/span&gt;123.123.123.123&quot;
&lt;span style=&quot;font-family: DejaVu Sans Mono;&quot;&gt;&lt;span style=&quot;font-size: 13.0667px;&quot;&gt;          ],
          &quot;TTL&quot;: &quot;900&quot;,
          &quot;Name&quot;: &quot;www.${Domain}.&quot;,
          &quot;Type&quot;: &quot;A&quot;
        },
        {
          &quot;HostedZoneName&quot;: &quot;${Domain}.&quot;,
          &quot;AliasTarget&quot;: {
            &quot;DNSName&quot;: {
              &quot;Fn::GetAtt&quot;: [
                &quot;DistributionConfig&quot;,
                &quot;DomainName&quot;
              ]
            },
            &quot;HostedZoneId&quot;: &quot;Z2FDTNDATAQYW2&quot;
          },
          &quot;Name&quot;: &quot;www.${Domain}.&quot;,
          &quot;Type&quot;: &quot;A&quot;
        }
      ]
    }
  }
}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/5019540251559088219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/5019540251559088219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5019540251559088219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5019540251559088219'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/12/aws-cloudformation-how-to-swap-between.html' title='AWS Cloudformation how to swap between Ip&#39;s and AliasTarget via conditions'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-7256854673675147134</id><published>2019-07-26T08:28:00.000+10:00</published><updated>2019-08-05T13:22:00.385+10:00</updated><title type='text'>Cloudfront With Squiz Edge being an origin</title><content type='html'>Just wanted to share an insight on trying to do an Squiz CMS overlay beside another product that has no CMS features. I.E a homepage of a COTS solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Problem space:&lt;br /&gt;
I want to have the squiz edge as an origin in cloudfront so that i can have some pages fully managed by the content team without developer intervention.&lt;br /&gt;
&lt;br /&gt;
Issues encounted&lt;br /&gt;
cloudfront started returning 502 errors which their documentation relates to ssl issues.&lt;br /&gt;
Squiz the company needs to be contacted to do an update on their squiz edge system to acknowledge your hostname as well as setup required inside squiz matrix.&lt;br /&gt;
&lt;br /&gt;
Outcome:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
Cloudfront has two rules for SSL passthrough,&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
Rule 1: Origin Domain Name you request against must&amp;nbsp; match ssl cert&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
Rule 2: If Rule1 fails, Host header must match ssl cert.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
If my front end domain is zyx. &lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
My Origin Domain Name is lpo&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
If the origin returns ssl cert zyx or lpo it will pass. If it passes abc it will fail.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
Now in relation to Squiz. &lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
When we do a low level ssl cert check against their staging edge network
 if the server name is the hostname, we get *.squizedge.net&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
If its (valid configured domain without custom ssl cert) we get *.clients.net.au if its (invalid domain) we get *.squizedge.net&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;span style=&quot;font-size: 12pt;&quot;&gt;What we want is to have *.&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;squizedge&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;.net to be provided to as instead of *.clients.squiz.net cert.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
Below is how to test.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
openssl s_client -showcerts -servername &lt;b&gt;staging.squizedge.net&lt;/b&gt; -connect staging.squizedge.net:443&lt;br /&gt;
depth=0 C = AU, ST = New South Wales, L = Sydney, O = SQUIZ PTY LTD, CN =
&lt;b&gt;*.squizedge.net&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
openssl s_client -showcerts -servername &lt;b&gt;(valid domain&amp;nbsp;without custom ssl cert&lt;/b&gt;&lt;b style=&quot;font-size: 12pt;&quot;&gt;)&lt;/b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt; -connect staging.squizedge.net:443&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
depth=0 C = AU, ST = New South Wales, L = Sydney, O = Squiz Australia Pty. Ltd., CN =
&lt;b&gt;*.clients.squiz.net&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
openssl s_client -showcerts -servername&lt;b&gt;&amp;nbsp;(invalid domain)&amp;nbsp;&lt;/b&gt;-connect staging.squizedge.net:443&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
depth=0 C = AU, ST = New South Wales, L = Sydney, O = SQUIZ PTY LTD, CN = &lt;b&gt;
*.squizedge.net&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
openssl s_client -showcerts -servername &lt;b&gt;(valid domain with custom ssl cert)&lt;/b&gt; -connect staging.squizedge.net:443&lt;/div&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;b&gt;(valid ssl cert depth=0 provided)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
ALSO&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
do ensure you are picking tls1.1 or higher as ssl3 handshake with squizedge is an instant deny&lt;/div&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;openssl s_client -showcerts -connect staging.squizedge.net:443 -servername&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 16px;&quot;&gt;(valid domain&amp;nbsp;without custom ssl cert&lt;/b&gt;&lt;b style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;)&lt;/b&gt;&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;-ssl3&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;CONNECTED(00000003)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;write:errno=104&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;no peer certificate available&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;No client certificate CA names sent&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;SSL handshake has read 0 bytes and written 0 bytes&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;New, (NONE), Cipher is (NONE)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&lt;b&gt;Secure Renegotiation IS NOT supported&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;Compression: NONE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;Expansion: NONE&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;No ALPN negotiated&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;SSL-Session:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Protocol&amp;nbsp; : SSLv3&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Cipher&amp;nbsp; &amp;nbsp; : 0000&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Session-ID:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Session-ID-ctx:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Master-Key:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Key-Arg&amp;nbsp; &amp;nbsp;: None&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Krb5 Principal: None&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; PSK identity: None&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; PSK identity hint: None&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Start Time: 1564975196&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Timeout&amp;nbsp; &amp;nbsp;: 7200 (sec)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; Verify return code: 0 (ok)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: calibri, arial, helvetica, sans-serif;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: calibri, arial, helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/7256854673675147134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/7256854673675147134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/7256854673675147134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/7256854673675147134'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/07/cloudfront-with-squiz-edge-being-origin.html' title='Cloudfront With Squiz Edge being an origin'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-2928116148159194404</id><published>2019-07-17T10:17:00.001+10:00</published><updated>2019-07-17T10:17:38.852+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="RDS"/><title type='text'>AWS: Why does Auto Minor Version Upgrade Flag not upgrade to latest minor Version of Database.</title><content type='html'>Shout out to&amp;nbsp;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Asmita V. for this answer.&lt;/span&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;------------------------------------------&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;PROBLEM DESCRIPTION&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;------------------------------------------&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Why were the RDS PostgreSQL instances not automatically upgraded to the latest Minor Version available even though the Auto Minor Version Upgrade Flag is enabled for your instances.&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;------------------------------------------&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;RESPONSE&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;------------------------------------------&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;The reason why your instances was not upgraded to these minor version is that AMVU will only upgrade the engine version for your RDS instance if the current engine version is being deprecated or the new one contains&amp;nbsp;very important cumulative bug fixes and an upgrade is absolutely necessary.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Please note that while we highly recommend that you perform an upgrade to 10.9, this upgrade will not happen automatically as of now using AMVU as the automatic upgrades happen only when absolutely necessary and you can also view such actions using describe-pending-maintenance-actions command.&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;If there is an auto minor version upgrade scheduled as a maintenance, please be assured that you will get a separate notification explicitly mentioning the same. Currently, in this case the upgrade will have to be applied manually.&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Further, at your end, you can check if the minor version upgrade will happen automatically or not by using the below CLI command:&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;$aws rds describe-db-engine-versions --output=table --engine postgres --engine-version 10.6&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Output:&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;||+-------------------------------------------------------------------------------------------+||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;|||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ValidUpgradeTarget&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;||+-------------+---------------------+-----------+----------------+--------------------------+||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;||| AutoUpgrade |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; Engine&amp;nbsp;&amp;nbsp; | EngineVersion&amp;nbsp; |&amp;nbsp; IsMajorVersionUpgrade&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;||+-------------+---------------------+-----------+----------------+--------------------------+||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;|||&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; PostgreSQL 10.7-R1 |&amp;nbsp; postgres |&amp;nbsp; 10.7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;|||&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; PostgreSQL 10.9-R1 |&amp;nbsp; postgres |&amp;nbsp; 10.9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;|||&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; PostgreSQL 11.1-R1 |&amp;nbsp; postgres |&amp;nbsp; 11.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;|||&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; PostgreSQL 11.2-R1 |&amp;nbsp; postgres |&amp;nbsp; 11.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;|||&amp;nbsp; False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; PostgreSQL 11.4-R1 |&amp;nbsp; postgres |&amp;nbsp; 11.4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;||+-------------+---------------------+-----------+----------------+--------------------------+||&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;As you can see from the above output, for 10.6 version &quot;AutoUpgrade&quot; column is marked as &quot;False&quot; for all minor version upgrade (either 10.7 or 10.9) . So, it has to be done manually. Please make sure to upgrade to the latest minor version&amp;nbsp; (10.9)&amp;nbsp; so that you wont be prone to any security vulnerabilities as per the following notice:&lt;/span&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;[+]&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.postgresql.org/about/news/1949/&quot; style=&quot;font-size: 14.6667px;&quot;&gt;https://www.postgresql.org/about/news/1949/&lt;/a&gt;&lt;br style=&quot;font-size: 14.6667px;&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/2928116148159194404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/2928116148159194404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2928116148159194404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2928116148159194404'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/07/aws-why-does-auto-minor-version-upgrade.html' title='AWS: Why does Auto Minor Version Upgrade Flag not upgrade to latest minor Version of Database.'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-1472346627836125964</id><published>2019-07-17T10:15:00.001+10:00</published><updated>2019-07-17T10:18:13.551+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="CFN"/><category scheme="http://www.blogger.com/atom/ns#" term="CloudFormation"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="PostgreSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="RDS"/><title type='text'>AWS: How should we upgrade PostgreSQL 10.6 to 10.9 version of CloudFormation-controlled RDS instances</title><content type='html'>&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Shout out to&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Asmita V. for this answer.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Upgrade RDS PostgreSQL instances from 10.6 to 10.9 and in this 
process you want to understand that whether setting the 
&quot;AllowMajorVersionUpgrades&quot; flag in the CloudFormation template be 
sufficient
and if during the process, existing instances will get replaced. &lt;br /&gt;&lt;br /&gt;

------------------------------------------&lt;br /&gt;

RESPONSE&lt;br /&gt;

------------------------------------------&lt;br /&gt;

&lt;br /&gt;

Upgrading the PostgreSQL instance from version 10.6 to 10.9 is a minor 
version upgrade and hence would not require you to change the value of 
the parameter &quot;AllowMajorVersionUpgrades&quot; in your cloudformation 
template.&lt;br /&gt;

&lt;br /&gt;

In order to upgrade your instances from 10.6 to 10.9 you can make a 
modification in your CFN stack by just specifying the &quot;Engine Version&quot; 
as 10.9 instead of 10.6 in your template. There is no replacement of the
 existing instance and hence there will be no
loss of data. The existing instances will go to a &quot;Modifying&quot; State.&lt;br /&gt;

&lt;br /&gt;

In order to confirm this behavior, I tried upgrading resources in my test environment and following are my observations:&lt;br /&gt;

&lt;br /&gt;

---------------------------------------------&lt;br /&gt;

Testing&lt;br /&gt;

---------------------------------------------&lt;br /&gt;

Please refer the following set of steps that I took in order to upgrade my instance to 10.9 from 10.6:&lt;br /&gt;

&lt;br /&gt;

Sample Stack&lt;br /&gt;

============================&lt;br /&gt;

&lt;br /&gt;

{&lt;br /&gt;

&amp;nbsp; &quot;AWSTemplateFormatVersion&quot; : &quot;2010-09-09&quot;,&lt;br /&gt;

&amp;nbsp; &quot;Description&quot; : &quot;PostgreSQL RDS Template &quot;,&lt;br /&gt;

&amp;nbsp; &quot;Resources&quot;: {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;pgDB&quot; : {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Type&quot; : &quot;AWS::RDS::DBInstance&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Properties&quot; : {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;DBName&quot; : &quot;mydb&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;DBInstanceClass&quot; : &quot;db.t2.small&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;AllocatedStorage&quot; : &quot;20&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Engine&quot; : &quot;postgres&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;EngineVersion&quot;: &quot;10.6&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;MasterUsername&quot; : &quot;username&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;MasterUserPassword&quot; : &quot;password&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;AutoMinorVersionUpgrade&quot;: false&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp; }&lt;br /&gt;

}&lt;br /&gt;

&lt;br /&gt;

Step 1: Make Changes to the existing template&lt;br /&gt;

=======================================&lt;br /&gt;

&lt;br /&gt;

1. On the Stacks page of the AWS CloudFormation console, click the name of the stack that you want to update.&amp;nbsp;
&lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://console.aws.amazon.com/cloudformation&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://console.aws.amazon.com/cloudformation&lt;/a&gt;&lt;br /&gt;

2. Select the Template tab and select View on Designer.&lt;br /&gt;

3. Modify the CFN Stack : &quot;EngineVersion&quot;: &quot;10.9&quot;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;AWSTemplateFormatVersion&quot; : &quot;2010-09-09&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Description&quot; : &quot;PostgreSQL RDS Template &quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Resources&quot;: {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;pgDB&quot; : {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Type&quot; : &quot;AWS::RDS::DBInstance&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Properties&quot; : {&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;DBName&quot; : &quot;mydb&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;DBInstanceClass&quot; : &quot;db.t2.small&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;AllocatedStorage&quot; : &quot;20&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;Engine&quot; : &quot;postgres&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;EngineVersion&quot;: &quot;10.9&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;MasterUsername&quot; : &quot;username&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;MasterUserPassword&quot; : &quot;password&quot;,&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;AutoMinorVersionUpgrade&quot;: false&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

4. Validate you template.&lt;br /&gt;

5. Select Save. Save your template to S3 bucket.&lt;br /&gt;

6. Click on Save and copy the URL.&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;

Ex. &lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://s3-external-1.amazonaws.com/cf-templates-us-east-1/template1&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://s3-external-1.amazonaws.com/cf-templates-us-east-1/template1&lt;/a&gt;&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;

Step 2: Create Change Set for Current Stack&lt;br /&gt;

=======================================&lt;br /&gt;

&lt;br /&gt;

1. On the Stacks page of the AWS CloudFormation console, click the name of the stack that you want to update.&amp;nbsp;
&lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://console.aws.amazon.com/cloudformation&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://console.aws.amazon.com/cloudformation&lt;/a&gt;&lt;br /&gt;

2. Go to Stack Actions and select &quot;Create change set for current stack&quot;.&lt;br /&gt;

3. Select &quot;Replace current template&quot; &lt;br /&gt;

4. Input the URL that was copied in the Step 1:6.&lt;br /&gt;

5. On the Review page, click on Create Change Set.&lt;br /&gt;

6. In the preview page, under the Changes you will notice &quot;Modify&quot; under the Action column.
&lt;br /&gt;

7. Click on Execute.&lt;br /&gt;

&lt;br /&gt;

You can now check on the RDS Console. The status of the RDS instance would have gone to &quot;Upgrading&quot;.
&lt;br /&gt;

&lt;br /&gt;

However, please note that engine version upgrade (major or minor) is always associated with some amount of downtime.&lt;br /&gt;

&lt;br /&gt;

Even if your DB instance is in a Multi-AZ deployment, both the primary 
DB instance and standby DB instances are upgraded. The writer and 
standby DB instances are upgraded at the same time, and you experience 
an outage until the upgrade is complete.
&lt;br /&gt;

&lt;br /&gt;

Therefore it is always recommended to plan your upgrades in the non business hours.&lt;br /&gt;

&lt;br /&gt;

[+] Upgrading the PostgreSQL DB Engine for Amazon RDS - &lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.html&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;

[+] Modifying a DB Instance Running the PostgreSQL Database Engine&amp;nbsp; - Settings for PostgreSQL DB Instances -
&lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyPostgreSQLInstance.html#USER_ModifyInstance.Postgres.Settings&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyPostgreSQLInstance.html#USER_ModifyInstance.Postgres.Settings&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;

---------------------------------------------&lt;br /&gt;

Conclusion&lt;br /&gt;

---------------------------------------------&lt;br /&gt;

Therefore, as per my testing, I can confirm that there will be no 
replacement of the existing instance during the process of upgrading 
PostgreSQL instance from&amp;nbsp; v10.6 to 10.9.
&lt;br /&gt;

You may also go ahead and follow the steps given above in order to upgrade your instances.&lt;br /&gt;

&lt;br /&gt;

---------------------------------------------&lt;br /&gt;

REFERENCES&lt;br /&gt;

---------------------------------------------&lt;br /&gt;

&lt;br /&gt;

[+] Updating Stacks Using Change Sets&amp;nbsp; - &lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;

[+] Creating a Change Set&amp;nbsp; - &lt;a data-auth=&quot;NotApplicable&quot; href=&quot;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-create.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-create.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/1472346627836125964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/1472346627836125964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/1472346627836125964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/1472346627836125964'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/07/aws-how-should-we-upgrade-postgresql.html' title='AWS: How should we upgrade PostgreSQL 10.6 to 10.9 version of CloudFormation-controlled RDS instances'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-5881620414735287068</id><published>2019-06-02T08:50:00.001+10:00</published><updated>2019-06-02T08:50:08.582+10:00</updated><title type='text'>Alexa Skill</title><content type='html'>Tried my hand at making an Alexa Skill,&lt;br /&gt;
&lt;br /&gt;
Give it a go and let me know.&lt;br /&gt;
&lt;br /&gt;
AUS&amp;nbsp;&lt;a href=&quot;https://www.amazon.com.au/William-Dutton-Kids-Radio-Australia/dp/B07SBT69SC/&quot;&gt;https://www.amazon.com.au/William-Dutton-Kids-Radio-Australia/dp/B07SBT69SC/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
US&amp;nbsp;&lt;a href=&quot;https://www.amazon.com/William-Dutton-Kids-Radio-Australia/dp/B07SBT69SC/&quot;&gt;https://www.amazon.com/William-Dutton-Kids-Radio-Australia/dp/B07SBT69SC/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/5881620414735287068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/5881620414735287068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5881620414735287068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5881620414735287068'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/06/alexa-skill.html' title='Alexa Skill'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-3155989614835417496</id><published>2019-05-30T10:30:00.002+10:00</published><updated>2019-05-30T10:30:40.093+10:00</updated><title type='text'>Cloudformation long form to short form variable substitution</title><content type='html'>&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In cloud formation, you don&#39;t need to inject Region or Account Id into your template unless you are referencing something external.&lt;br /&gt;
&lt;br /&gt;
If you use Join&#39;s maybe look at swapping them for Sub if you are not adding anything or just dealing with a string e.g.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
from&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: navy; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;SourceArn&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;: !Join [ &lt;/span&gt;&lt;span style=&quot;color: green; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;, [&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;&quot;arn:aws:execute-api:&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: navy; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;Ref&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;: AWS::Region, &lt;/span&gt;&lt;span style=&quot;color: green; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;&quot;:&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: navy; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;Ref&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;: AWS::AccountId, &lt;/span&gt;&lt;span style=&quot;color: green; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt; font-weight: bold;&quot;&gt;&quot;:*&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;dejavu sans mono&amp;quot;; font-size: 9.8pt;&quot;&gt;] ]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: white; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
to&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: white; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;SourceArn&lt;/span&gt;: !Sub &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:*&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: &amp;quot;DejaVu Sans Mono&amp;quot;; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
the !Sub form is so much easier to read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html&quot;&gt;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html&quot;&gt;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/3155989614835417496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/3155989614835417496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/3155989614835417496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/3155989614835417496'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/05/cloudformation-long-form-to-short-form.html' title='Cloudformation long form to short form variable substitution'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-678642291412483801</id><published>2019-05-29T10:44:00.001+10:00</published><updated>2019-05-29T10:44:52.918+10:00</updated><title type='text'>AWS Lambda with SSM Paramater store variables</title><content type='html'>&lt;br /&gt;
So you have used Spring Cloud SSM access for elastic beanstalk and docker but want to get into lambda with same nice config setup.&lt;br /&gt;
&lt;br /&gt;
Sadly Spring framework is a bit too heavy for lambda and they suggest Dagger 2 or Guice. This guide is not about static/dynamic wiring of beans together but on getting parameters into your beans.&lt;br /&gt;
&lt;br /&gt;
In the old days you had to place all of your environment path or via a file in s3 which you had to parse. Now this was ok for simple things but it was not secure for secrets aka database passwords or other sub-systems external to aws.&lt;br /&gt;
&lt;br /&gt;
So most people rolled their own kms decryption system when it loads in lambda, ok that&#39;s nice but its still not easy to test locally vs on the cloud.&lt;br /&gt;
&lt;br /&gt;
This code was inspired by the &lt;a href=&quot;https://github.com/spring-cloud/spring-cloud-aws/&quot;&gt;spring-cloud-aws&lt;/a&gt; project. But without the spring bits. (yep this does not do the nice overlays with dynamic profile activation etc but its still a good steps away from having all of your properties on the environment path)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/duttonw/21ee35af523f3d072f1e68237c5ca9b3.js&quot;&gt;&lt;/script&gt;

Do ensure you have iam policy to allow ssm access (here an excerpt from cfn), the SSMKey is the arn for the kms key to decrypt your paramaters (if they are encrypted, else you can drop this action)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; LambdaExecutionRole:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Type: AWS::IAM::Role&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Properties:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; RoleName: !Ref LambdaRoleName&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; AssumeRolePolicyDocument:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Statement:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Action:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - sts:AssumeRole&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Effect: Allow&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Principal:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Service:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - lambda.amazonaws.com&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Version: &#39;2012-10-17&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; Path: /&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; ManagedPolicyArns:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; Policies:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - PolicyName:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fn::Join:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &#39;-&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - - Ref: Product&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Application-Lambda-Policy&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PolicyDocument:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Version: &#39;2012-10-17&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Statement:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Effect: Allow&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Action:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - ssm:DescribeParameters&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Resource: &quot;*&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Effect: Allow&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Action:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - ssm:GetParameters&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - ssm:GetParameter&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - ssm:GetParametersByPath&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Resource:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - !Sub &quot;arn:aws:ssm:*:*:parameter/config/${Service}&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - !Sub &quot;arn:aws:ssm:*:*:parameter/config/${Service}/*&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - !Sub &quot;arn:aws:ssm:*:*:parameter/config/${Service}_*&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - !Sub &quot;arn:aws:ssm:*:*:parameter/config/${Service}_*/*&quot;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Effect: Allow&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Action:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - kms:Decrypt&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Resource:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - Ref: SSMKey</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/678642291412483801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/678642291412483801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/678642291412483801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/678642291412483801'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/05/aws-lambda-with-ssm-paramater-store.html' title='AWS Lambda with SSM Paramater store variables'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-3200677450567309922</id><published>2019-03-31T09:32:00.001+10:00</published><updated>2019-03-31T09:32:52.999+10:00</updated><title type='text'>AWS AutoScalingGroup to Route53 update record function via Lambda</title><content type='html'>Sometimes you want to have an Auto Scaling Group keep a single server online and you don&#39;t want to worry about connecting EIP&#39;s to them or have them kept as a Pet which needs to be kept at all costs.&lt;br /&gt;
&lt;br /&gt;
Or you need to allow UDP access which the Elastic Load Balancers (ELB) and Network Load Balancers (NLB) don&#39;t allow. This is for you.&lt;br /&gt;
&lt;br /&gt;
What this does is listen to a Simple Notification Service (SNS) to any published events which the ASG would send for adding an instance to the pool or terminating an instance to the pool. It then queries the asg looking for the tag&amp;nbsp;&lt;span style=&quot;background-color: white; color: grey; font-family: Menlo; font-size: 9pt; font-style: italic;&quot;&gt;DomainMeta&amp;nbsp;&lt;/span&gt;and then with the list of ec2 instances it goes and collects the public ip address and goes to the route53 zone that is recorded and updates the domain attached.&lt;br /&gt;
&lt;br /&gt;
The tag should be in the format&amp;nbsp;&lt;span style=&quot;background-color: white; color: grey; font-family: Menlo; font-size: 9pt; font-style: italic;&quot;&gt;DomainMeta:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: grey; font-family: Menlo; font-size: 9pt; font-style: italic;&quot;&gt;&lt;hostedzoneid&gt;:&lt;domain&gt; I.E&amp;nbsp;&lt;/domain&gt;&lt;/hostedzoneid&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: grey; font-family: Menlo; font-size: 12px; font-style: italic;&quot;&gt;DomainMeta :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: grey; font-family: Menlo; font-size: 9pt; font-style: italic;&quot;&gt;Z10MWC8V7JDDX1:www.mydomain.com&lt;/span&gt;&lt;br /&gt;
Where the first part is the hosted zone it needs to end the command to and the second part is the a record it is going to change.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is based on the work that&amp;nbsp;&lt;a href=&quot;https://objectpartners.com/2015/07/07/aws-tricks-updating-route53-dns-for-autoscalinggroup-using-lambda/&quot;&gt;objectpartners.com&lt;/a&gt;&amp;nbsp;did back in 2005. I&#39;ve improved it to include security so that only one hosted zone is looked after or allows full account control if you are 100% in control of the tags on the ASG&#39;s.&lt;br /&gt;
&lt;br /&gt;
This could easily be updated to include a coma delimited list on the tag to update multiple a records if required.&lt;br /&gt;
&lt;br /&gt;
Please note: If the last instance is taken out of the pool the old ip address will be left since it route53 records can&#39;t be null/empty.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/duttonw/798df82271907b45b593a36bb1b2044a.js&quot;&gt;&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/3200677450567309922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/3200677450567309922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/3200677450567309922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/3200677450567309922'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2019/03/aws-autoscalinggroup-to-route53-update.html' title='AWS AutoScalingGroup to Route53 update record function via Lambda'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-5835274431081308474</id><published>2018-12-14T15:31:00.001+10:00</published><updated>2018-12-14T15:31:12.290+10:00</updated><title type='text'>AWS Secrets Manager Cross account for SES credentials</title><content type='html'>If you have external systems sending emails, it might only know of stmp with username and password.&lt;br /&gt;
&lt;br /&gt;
When you want to get CIS compliance in AWS having an access keys last longer than 90 days takes you out of compliance, as such you need to change this access key every 3 months. This seems to be a bit of pain.&lt;br /&gt;
&lt;br /&gt;
Luckily AWS released Secrets Manager to allow as you guessed it secrets, to be rotated.&lt;br /&gt;
&lt;br /&gt;
This is an extension on&amp;nbsp;https://aws.amazon.com/blogs/security/how-to-access-secrets-across-aws-accounts-by-attaching-resource-based-policies/ since blog post is a bit too cryptic for actual implementation with least privileges.&lt;br /&gt;
&lt;br /&gt;
To do that you firstly need to create a KMS key to use since the defaults don&#39;t allow addition policies to be added.&lt;br /&gt;
&lt;br /&gt;
For extra security, the SES email sending service is centralised but the application needing to use the credentials are in another part of your AWS Organisation accounts. This is good security practice as you can then remove access to a kms key if a downstream account was compromised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example policy which would allow any account in your Organisation to access the key as well as the role which the lambda function will use to rotate the secret&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/duttonw/eb465bb5b4fd08560f985cf118611147.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
Please note: going with&amp;nbsp;&amp;nbsp;&lt;span class=&quot;pl-s&quot; style=&quot;background-color: white; box-sizing: border-box; color: #032f62; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;&lt;/span&gt;aws:PrincipalOrgID&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;pl-s&quot; style=&quot;background-color: white; box-sizing: border-box; color: #032f62; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;&lt;/span&gt;${YOUR-ORG-ID from organisations}&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;means that any account in your Org will have access to encrypt or decrypt with this key if they also have privileges to see this key (this means * * Administrators would by default have this, could could be changed to Principals with role names but then that next gotcha is that if the role is deleted and recreated, the connection to this kms policy would be disconnected)&lt;br /&gt;
&lt;br /&gt;
Zip up this script and call it aws-key-rotation-lambda.zip&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/duttonw/0e289de885d926d1f344dff92cc9e499.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
upload this to s3 inside your cloudformation bucket since we need to reference it for the next cloudformation script.&lt;br /&gt;
&lt;br /&gt;
key-rotation-lambda.yml will generate the rotation service which Secrets Manager will use&lt;span style=&quot;color: #032f62; font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12px; white-space: pre;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/duttonw/a5bce29543ff76c7680c9be247377b94.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
Now that all the building blocks are in place your ready to have a user and new secret created.&lt;br /&gt;
&lt;br /&gt;
Use this next script to generate the iam user and Secrets Manager. Once initialised, it will rotate the secret straight away.&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/duttonw/7491018854bfbc9eefbb04bb2f8d7d74.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
All it needs now is to have the correct groups/policies added for SES raw email sending.&lt;br /&gt;
&lt;br /&gt;
To this test, get on the cli and change into another account which is not what this is installed into and user the ARN of the secret to call it&lt;br /&gt;
&lt;br /&gt;
aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:ap-southeast-2:111222333444:secret:smtp-trial-X4Q0Sp --version-stage AWSCURRENT&lt;br /&gt;
&lt;br /&gt;
With the SNS queue, you can now hook up a lambda function to trigger in the other accounts to go update where ever the stmp credentials are set.&lt;br /&gt;
&lt;br /&gt;
This script will give 60 days per access key and generate a new key every 30 days. So if the system fails to update the first time there is a grace period to change over.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/5835274431081308474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/5835274431081308474' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5835274431081308474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5835274431081308474'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2018/12/aws-secrets-manager-cross-account-for.html' title='AWS Secrets Manager Cross account for SES credentials'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-4937709260077210185</id><published>2011-11-28T09:25:00.000+10:00</published><updated>2011-11-28T09:26:07.781+10:00</updated><title type='text'>regex for gedit</title><content type='html'>I was needing to do some regular expression changes on some database output into a java test script and found that someone updated gedits regex plugin to be even better.&lt;br /&gt;&lt;br /&gt;http://halfhourhacks.blogspot.com/2008/03/gedit-regular-expression-plugin.html</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/4937709260077210185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/4937709260077210185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/4937709260077210185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/4937709260077210185'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2011/11/regex-for-gedit.html' title='regex for gedit'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-7458283865902566387</id><published>2011-05-18T15:15:00.004+10:00</published><updated>2011-05-26T09:00:50.097+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="new site"/><category scheme="http://www.blogger.com/atom/ns#" term="web development"/><title type='text'>menu lane goes live</title><content type='html'>one of my friends projects which I&#39;ve been doing a lot of work on has gone live. Its a website in which we can see the menu of the restaurant you might want to visit and have a general price range of what you should be paying, the website is &lt;a href=&quot;http://www.menulane.com.au/&quot;&gt;http://www.menulane.com.au&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/7458283865902566387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/7458283865902566387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/7458283865902566387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/7458283865902566387'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2011/05/menu-lane-goes-live.html' title='menu lane goes live'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-2919732319744975965</id><published>2011-01-17T10:15:00.000+10:00</published><updated>2011-01-17T10:16:32.505+10:00</updated><title type='text'>new website</title><content type='html'>I just released the new nowsim site, still alot of work to do, but its getting there :D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://nowism.tv&quot;&gt;nowism.tv&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/2919732319744975965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/2919732319744975965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2919732319744975965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2919732319744975965'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2011/01/new-website.html' title='new website'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-2754468660078713938</id><published>2010-10-14T15:53:00.002+10:00</published><updated>2010-10-14T15:54:09.370+10:00</updated><title type='text'>New website</title><content type='html'>Just finished off putting together a new landscaping website for a good friend of a friend.  &lt;a href=&quot;http://seascapeslandscaping.com.au&quot;&gt;seascapeslandscaping.com.au&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/2754468660078713938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/2754468660078713938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2754468660078713938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2754468660078713938'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2010/10/new-website.html' title='New website'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-2726403410150399697</id><published>2010-09-28T09:21:00.003+10:00</published><updated>2010-09-28T09:26:09.070+10:00</updated><title type='text'>New workout music shop 10minutetracks.com</title><content type='html'>Lately I have been following the &quot;&lt;a href=&quot;http://www.amazon.com/gp/product/B003NHR8J8?ie=UTF8&amp;tag=10minutetrack-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B003NHR8J8&quot;&gt;The 10-Minute Total Body Breakthrough&lt;/a&gt;&quot; which is a very good book in getting into shape with a minimal amount of time.&lt;br /&gt;&lt;br /&gt;My friend Jeremy asked me to help him create this website to sell the music he and his friend created follows the books workout pattern. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.10minutetracks.com/&quot;&gt;10 Minute Tracks&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/2726403410150399697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/2726403410150399697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2726403410150399697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/2726403410150399697'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2010/09/new-workout-music-shop.html' title='New workout music shop 10minutetracks.com'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-530804354559596154</id><published>2010-09-09T08:28:00.001+10:00</published><updated>2010-09-09T08:30:41.094+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gold coast"/><category scheme="http://www.blogger.com/atom/ns#" term="pub"/><title type='text'>new pub on the gold coast</title><content type='html'>This pub/hotel was taken over by the &lt;a href=&quot;http://tbhotels.com.au/&quot;&gt;tbhotels&lt;/a&gt; and it now has a new website &lt;a href=&quot;http://railwayhotelgc.com.au&quot;&gt;railwayhotelgc.com.au&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/530804354559596154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/530804354559596154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/530804354559596154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/530804354559596154'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2010/09/new-pub-on-gold-coast.html' title='new pub on the gold coast'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-8143036545702555566</id><published>2010-08-04T16:09:00.003+10:00</published><updated>2010-08-05T15:56:03.591+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ivy"/><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><category scheme="http://www.blogger.com/atom/ns#" term="web application"/><category scheme="http://www.blogger.com/atom/ns#" term="work"/><title type='text'>maven, ant, ivy where should we all go?</title><content type='html'>well at work I&#39;ve been working on making our chopped up monolithic application more manageable.&lt;br /&gt;&lt;br /&gt;the problem is that we use to have 1 project, now we have around 11 or so. each has their on library folder. At this point in time its an easy thing to deal with, in a years time when we start getting jars updated, its going to be a big pain in the a#se.&lt;br /&gt;&lt;br /&gt;so I&#39;ve been learning alot about maven and have started to implement it into our small applications and now I&#39;m up to the corner stone of the project.&lt;br /&gt;&lt;br /&gt;pull all the artifacts together and make an install script.&lt;br /&gt;&lt;br /&gt;as its a custom piece of code that users ant and bash with uuencode and many other bits and pieces, i was not going to even try making a maven plugin to make my install.sh file.&lt;br /&gt;&lt;br /&gt;i looked into ivy and found that it does not use the same local repository structure as maven but can use nexus.. so not good.&lt;br /&gt;&lt;br /&gt;but then i found &lt;a href=&quot;http://ptrthomas.wordpress.com/2009/03/08/why-you-should-use-the-maven-ant-tasks-instead-of-maven-or-ivy/&quot;&gt;http://ptrthomas.wordpress.com/2009/03/08/why-you-should-use-the-maven-ant-tasks-instead-of-maven-or-ivy/&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;it seems you can pull in maven dependency&#39;s into ant and use them there. &lt;br /&gt;&lt;br /&gt;my current thinking is to use the maven ant task to extract all the war&#39;s and config files in the maven local or remote repository and let ant/bash do its magic to make my custom install.sh file :)</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/8143036545702555566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/8143036545702555566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/8143036545702555566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/8143036545702555566'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2010/08/maven-ant-ivy-where-should-we-all-go.html' title='maven, ant, ivy where should we all go?'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-301324946961395646</id><published>2010-04-16T16:42:00.001+10:00</published><updated>2010-04-16T16:49:28.319+10:00</updated><title type='text'>Code To test internal generic methods with user code in them</title><content type='html'>How does one test this code&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt; public String SendMessage(String request) throws JMSException {&lt;br /&gt;&lt;br /&gt;   TextMessage reply = (TextMessage) jmsTemplate.execute(new ProducerCallback() {&lt;br /&gt;    public Object doInJms(Session session,MessageProducer producer) throws JMSException {&lt;br /&gt;     TemporaryQueue queue = session.createTemporaryQueue();&lt;br /&gt;     TextMessage message = session.createTextMessage();&lt;br /&gt;     message.setText(&quot;Some Text&quot;);&lt;br /&gt;     message.setJMSReplyTo(queue);&lt;br /&gt;     producer.send(message);&lt;br /&gt;     return session.createConsumer(queue).receive(10000);&lt;br /&gt;    }&lt;br /&gt;   });&lt;br /&gt;&lt;br /&gt;   if (reply != null){&lt;br /&gt;   // System.err.println(&quot;Message recieved&quot;);&lt;br /&gt;   } else{&lt;br /&gt;   // System.err.println(&quot;*** NOT received&quot;);&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   return reply.getText();&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;here is my junit mockito 1.8 test&lt;br /&gt;&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;&lt;br /&gt;import javax.jms.JMSException;&lt;br /&gt;import javax.jms.Message;&lt;br /&gt;import javax.jms.MessageConsumer;&lt;br /&gt;import javax.jms.MessageProducer;&lt;br /&gt;import javax.jms.TemporaryQueue;&lt;br /&gt;import javax.jms.TextMessage;&lt;br /&gt;&lt;br /&gt;import org.junit.After;&lt;br /&gt;import org.junit.Before;&lt;br /&gt;import org.junit.Test;&lt;br /&gt;import org.mockito.invocation.InvocationOnMock;&lt;br /&gt;import org.mockito.stubbing.Answer;&lt;br /&gt;&lt;br /&gt;import static org.mockito.Mockito.*;&lt;br /&gt;import org.springframework.jms.core.JmsTemplate;&lt;br /&gt;import org.springframework.jms.core.ProducerCallback;&lt;br /&gt;&lt;br /&gt;import com.sun.messaging.jms.Session;&lt;br /&gt;&lt;br /&gt;public class PrivateMessageSenderTest {&lt;br /&gt;&lt;br /&gt;   PrivateMessageSender classUnderTest;&lt;br /&gt;   JmsTemplate mockJmsTemplate;&lt;br /&gt;   Session mockSession;&lt;br /&gt;   MessageProducer mockMessageProducer;&lt;br /&gt;   TemporaryQueue mockTemporaryQueue;&lt;br /&gt;   TextMessage mockTextMessage;&lt;br /&gt;   @Before&lt;br /&gt;   public void setUp() throws Exception {&lt;br /&gt;       classUnderTest = new OpenMQPrivateMessageSender();&lt;br /&gt;     &lt;br /&gt;       mockJmsTemplate = mock(JmsTemplate.class);&lt;br /&gt;       mockSession = mock(Session.class);&lt;br /&gt;       mockMessageProducer = mock(MessageProducer.class);&lt;br /&gt;       mockTemporaryQueue = mock(TemporaryQueue.class);&lt;br /&gt;       mockTextMessage = mock(TextMessage.class);&lt;br /&gt;     &lt;br /&gt;       /** Boiler plate mock code to inject mock session and messageProducer into&lt;br /&gt;        *  Generic Spring ProducerCallback class which has our internal code&lt;br /&gt;        *  To test&lt;br /&gt;       **/&lt;br /&gt;       when(mockJmsTemplate.execute((ProducerCallback)anyObject())).thenAnswer(&lt;br /&gt;               new Answer&lt;object&gt;() {&lt;br /&gt;                   public Object answer(InvocationOnMock invocation) throws JMSException {&lt;br /&gt;                       Object[] args = invocation.getArguments();&lt;br /&gt;                       //Object mock = invocation.getMock();      &lt;br /&gt;                       return ((ProducerCallback)args[0]).doInJms(mockSession, mockMessageProducer);&lt;br /&gt;                    }&lt;br /&gt;                });&lt;br /&gt;     &lt;br /&gt;       when(mockSession.createTemporaryQueue()).thenReturn(mockTemporaryQueue);&lt;br /&gt;       when(mockSession.createTextMessage()).thenReturn(mockTextMessage);&lt;br /&gt;&lt;/object&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;its missing the tests for it, but this pretty much sets it up to set mocks into the internal method.</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/301324946961395646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/301324946961395646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/301324946961395646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/301324946961395646'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2010/04/code-to-test-internal-generic-methods.html' title='Code To test internal generic methods with user code in them'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2482159392595548869.post-5545469475470324492</id><published>2010-01-25T11:13:00.002+10:00</published><updated>2010-01-25T11:19:45.415+10:00</updated><title type='text'>best ssh code snippet</title><content type='html'>This code snippet ssh&#39;s into the account you want to add your public key to.&lt;br /&gt;&lt;br /&gt;The usual way to do that is to copy the key over then follow the key to the server and append it to the end. &lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;bash&quot;&gt;&lt;br /&gt;scp ~/.ssh/id_dsa.pub user@host:.&lt;br /&gt;ssh user@host &#39;cat id_dsa.pub &gt;&gt; ~/.ssh/authorized_keys&#39;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You can do it all in one line.&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;bash&quot;&gt;&lt;br /&gt;ssh user@host &#39;mkdir ~/.ssh;echo &#39;`cat ~/.ssh/id_dsa.pub`&#39; &gt;&gt; ~/.ssh/authorized_keys&#39;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Be careful with the &gt;&gt; if you accidently do a single &gt;, then bye bye original file. You will be able to log in but everyone else who had their key in it cant as your key is now only in that file.&lt;br /&gt;&lt;br /&gt;this snippet came from &lt;a href=&quot;http://snippets.dzone.com/posts/show/2335&quot;&gt;http://snippets.dzone.com/posts/show/2335&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://william-d.blogspot.com/feeds/5545469475470324492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2482159392595548869/5545469475470324492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5545469475470324492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2482159392595548869/posts/default/5545469475470324492'/><link rel='alternate' type='text/html' href='http://william-d.blogspot.com/2010/01/best-ssh-code-snippet.html' title='best ssh code snippet'/><author><name>William</name><uri>http://www.blogger.com/profile/05245935612599112962</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>