Coder Social home page Coder Social logo

aws-cloudformation-user-guide's Introduction

aws-cloudformation-user-guide's People

Contributors

adamchainz avatar alexjurkiewicz avatar awsrandall avatar chrisdr avatar ckesser avatar devlinbd2 avatar edenhochbaum avatar farrout avatar hleehart avatar hyandell avatar joshbean avatar judypear avatar julieso avatar karan6190 avatar kennyk65 avatar keroloswilliam avatar kristinapeterson avatar kylelaker avatar ljarendse avatar mike-rsi avatar patmyron avatar pgasca avatar rachfop avatar randyurbano avatar reneehi avatar seittema avatar ssennettau avatar swiercek avatar taylorb-syd avatar wparad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-cloudformation-user-guide's Issues

Need clarity on setting Version property for Elastic Beanstalk environments.

https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/aws-properties-beanstalk-environment-tier.md

Setting the Version will often lead to production pain and abnormal Elastic Beanstalk environment behavior for modern applications. No where in AWS docs is there a detailed history of tier versions and their solution stack version compatibility. It is advised to add a note like the following:

  • "Deprecated and not recommended for use. When left unspecified, the latest compatible worker tier version will be used."

AWS::ServiceDiscovery - release notes have incorrect update descriptions

Feb 7, 2019 update shows the below descriptions but they need to be reversed as InstanceAttributes is a property of AWS::ServiceDiscovery::Instance and DNSConfig is a property of AWS::ServiceDiscovery::Service.

The following resources were updated: AWS::ServiceDiscovery::Instance and AWS::ServiceDiscovery::Service.

AWS::ServiceDiscovery::Instance
The DNSConfig property is no longer required.

An update to the HealthCheckCustomConfig property now requires replacement.

AWS::ServiceDiscovery::Service
The InstanceAttributes property now takes a String map value.

AWS::Cognito::UserPool. unable to require MFA using only TOTP method

Hi

I dont know if i am posting this on the correct forum - but I'm hoping someone here can guide me to the right direction.

As far as the documentation goes for setting up a Cognito UserPool using the AWS::Cognito::UserPool Type - there is nowhere to configure the UserPool to Require MFA using only the TOTP method

When setting the MfaConfiguration attribute to "ON" - cloudformation errors out with a message to the sound of SMSconfiguration and Phone number verification is required when MFAConfiguration is set to ON or OPTIONAL

I would like to enable MFA using only TOTP method.

PS: This is possible by using the Web console

Thanks

AWS::ElasticLoadBalancingV2::TargetGroup::Targets referencing EC2 instance gives error

I have defined the following resources:

		"ATargetGroup":{
			"Type" : "AWS::ElasticLoadBalancingV2::TargetGroup",
			"Properties" : {
				"HealthCheckIntervalSeconds" : 30,
				"HealthCheckPath" : "/healthcheck",
				"HealthCheckPort" : 80,
				"HealthCheckProtocol" : "HTTP",
				"HealthCheckTimeoutSeconds" : 5,
				"HealthyThresholdCount" : 5,
				"Matcher" : {"HttpCode" : "200"},
				"Name" : "a-http-tg",
				"Port" : 80,
				"Protocol" : "HTTP",
				"TargetGroupAttributes" : [{"Key" : "deregistration_delay.timeout_seconds", "Value" : 10}],
				"TargetType":"instance",
				"Targets" : [{"Id":{"Ref":"instance1a"}, "Port" : 80}, {"Id":{"Ref":"instance1b"}, "Port" : 80}],
				"UnhealthyThresholdCount" : 3,
				"VpcId": {"Ref": "aVpc"}
			}
		},

		 "instance1a": {
			"Type": "AWS::EC2::Instance",
			"Properties": {
				"DisableApiTermination": "false",
				"InstanceInitiatedShutdownBehavior": "stop",
				"ImageId": "ami-xxx",
				"InstanceType": "t2.micro",
				"KeyName": "AKeyPair",
				"Monitoring": "false",
				"Tags": [{"Key": "Name","Value": "ec2-1a"}],
				"NetworkInterfaces": [
					{
					"DeleteOnTermination": "true",
					"Description": "Primary network interface",
					"DeviceIndex": 0,
					"SubnetId": {"Ref": "SubNet1A"},
					"PrivateIpAddresses": [{"PrivateIpAddress": "10.10.1.251","Primary": "true"}],
					"GroupSet": [{"Ref": "Ec21aSg"}],
					"AssociatePublicIpAddress": "true"
					}
				]
			}
		},
		
		 "instance1b": {
			"Type": "AWS::EC2::Instance",
			"Properties": {
				"DisableApiTermination": "false",
				"InstanceInitiatedShutdownBehavior": "stop",
				"ImageId": "ami-xxx",
				"InstanceType": "t2.micro",
				"KeyName": "AKeyPair",
				"Monitoring": "false",
				"Tags": [{"Key": "Name","Value": "ec2-1b"}],
				"NetworkInterfaces": [
					{
					"DeleteOnTermination": "true",
					"Description": "Primary network interface",
					"DeviceIndex": 0,
					"SubnetId": {"Ref": "SubNet1b"},
					"PrivateIpAddresses": [{"PrivateIpAddress": "10.10.2.32","Primary": "true"}],
					"GroupSet": [{"Ref": "Ec21bSg"}],
					"AssociatePublicIpAddress": "true"
					}
				]
			}
		}

According to the Doc: "Targets" : [{"Id":{"Ref":"instance1a"}, "Port" : 80}, {"Id":{"Ref":"instance1b"}, "Port" : 80}] will define the 2 ec2 instances as the targets in this target group.

Problem for me is, I got an error saying "instance1a" is an invalid type for this reference...

I am following the examples from the Doc here, but am I doing something wrong?

I am using AWS ToolKit (Version 1.14.4.0) for Visual Studio 2017.

Could it be that the Doc is incorrect? Or is it an issue in Aws ToolKit template intelligence?

CodeBuild second example template fails

The second CodeBuild sample JSON template defines a source of CODEPIPELINE and "BadgeEnabled": "true". However, trying to launch a stack with this combination of properties fails with the error:

Build badges are not supported for CodePipeline source (Service: AWSCodeBuild; Status Code: 400; Error Code: InvalidInputException; Request ID: ... )

Parameters default value are missing in the documentation

I'm discoveing aws SAM and CloudFormation, and it seems there is one big thing missing in the reference API documentation : the default values. i.e. the value one parameter is given when optional and not provided.

an example in https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/aws-properties-apigateway-stage-methodsetting.md:
It tells that the CachingEnabled is optional, but does not tell if it set to trueor false if I don't put it in my template.

Multiple certificates in ELBv2 (SSLCertificateArns property)

Hi,

I'm trying to configure an elastic load balancer with multiple certificates through Cloudformation by using the property SSLCertificateArns, but I haven't found any example that shows the syntax to indicate more than one certificate.

How I can achieve this case?

Thanks.

Fn::GetAtt for ClientSecret not supported

Hello,

This page:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html

seems to have some missing information, which is in the github pages:

https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/aws-resource-cognito-userpoolclient.md

Questions:
Why is there a discrepancy?
Can we assume the github version is the source of truth?
How often are the website /latest docs updated?

Thanks!

Add tag support for ECS actions

AWS::ECS::Cluster, AWS::ECS::Service, and AWS::ECS::TaskDefinitions should now support TagResource and UntagResource API actions, but these properties are neither reflected in the documentation nor seem to be supported by CloudFormation yet.

Credit to @robertd for the discovery.

Cannot add custom security groups when using MixedInstancesPolicy

Thank you for introducing the MixedInstancesPolicy property in AWS::AutoScaling::AutoScalingGroup! It's going to make the use of spot instances much easier.

Cannot specify custom security groups, when using this policy

From the docs, it looks like specifying this property means that you lose the opportunity to specify the security group associated with the AutoScalingGroup, since the security group property is added to AWS::AutoScaling::AutoScalingGroup through the LaunchConfiguration property, and one can only specify one of LaunchConfiguration, MixedInstancesPolicy or LaunchTemplate.

Please clarify how to specify a custom security group, when using this property.

AWS::Cognito::UserPoolClient GetAtt values are not supported

On the AWS::Cognito::UserPoolClient page 1 it lists available return values for the GetAtt function as ClientSecret and Name. Neither of these values work, though.

When !GetAtt 'UserPoolClient.Name' is added to the Outputs section of a template it just returns "Name attribute not supported at this time, please use the CLI or Console to retrieve this value" as the value. Same thing for ClientSecret.

I believe the docs should be updated to remove these unsupported GetAtt calls.

The "Roles and Features" Template Not Functioning

The Windows Server "Roles and Features" template has the following problems:

  • All the ami id's in the "mappings" section are out of date.
  • The EC2 instance types require a VPC, but the template has no parameter or scaffolding to integrate with a VPC.

In short, the template is currently useless.

AWS::CloudFormation::Authentication not working on eu-central-1

AWS::CloudFormation::Authentication mechanism can not be used when authenticating to S3 in a bucket located in eu-central-1 (Frankfurt) region. This is because that region only supports authentication with AWS4-HMAC-SHA256.

Please clarify this in the documentation or give examples how to use it when working in that region.

Improve and fix Fn::Cidr docs

It looks like the Fn::Cidr docs is currently in a mix of being sparse and inaccurate.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-cidr.html

The docs says the sizeMask argument is optional, it is actually required. The error message the console gives when the sizeMask argument isn't included also says it's optional, despite the fact it's required.

Secondly, the explanation for the sizeMask argument is pretty unclear or complicated, so I think it should be expanded on, especially considering it is required. I would initially assume it refers to the number after the slash in a CIDR block (i.e. the 24 in 192.168.1.0/24) as I and a couple of other engineers did, but it actually refers to the number of bits to keep free/available in the CIDR block (i.e. 32 - sizeMask = the number after the slash in a CIDR range, so to make the CIDR range 192.168.1.0/24 you set sizeMask to 8). This means 2^sizeMask free IPs in the CIDR block generated function.

Ideally for me, the actual function would be changed to be simpler, but the docs should be updated in the meantime.

Cheers.

Missing properties for ElasticSearch Domain

I'm unable to provision a AWS ES Domain via CloudFormation because I need the node-to-node encryption feature enabled, and that can only be done at creation time.

There are few properties supported via API, but not in CloudFormation for a AWS::Elasticsearch::Domain:

  • NodeToNodeEncryptionOptions
  • LogPublishingOptions
  • CognitoOptions

If I try to include

NodeToNodeEncryptionOptions:
  Enabled: true

I get a CREATE_FAILED with the reason Encountered unsupported property NodeToNodeEncryptionOptions

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html

https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-configuration-api.html#es-configuration-api-actions-createelasticsearchdomain

Incorrect YAML in doc_source/aws-resource-ask-skill.md

The YAML in the example on doc_source/aws-resource-ask-skill.md is incorrect. AuthenticationConfiguration and VendorId are shown as nodes under MySkill when they should be nodes under Properties.

Current, incorrect YAML:

MySkill:
  Type: "Alexa::ASK::Skill"   
  Properties:
   SkillPackage:
    S3Bucket: "my-skill-packages"
    S3Key: "skillpackage.zip"
    S3BucketRole: !GetAtt S3BucketReadRole.Arn
    Overrides:
      Manifest:
        apis:
          custom:
            endpoint:
              uri: !GetAtt SkillFunction.Arn
  AuthenticationConfiguration:
    ClientId: "amzn1.application-oa2-client.1234"
    ClientSecret: "1234"
    RefreshToken: "Atzr|1234"
  VendorId: "1234"

Corrected YAML:

MySkill:
  Type: "Alexa::ASK::Skill"
  Properties:
    SkillPackage:
      S3Bucket: "my-skill-packages"
      S3Key: "skillpackage.zip"
      S3BucketRole: !GetAtt S3BucketReadRole.Arn
      Overrides:
        Manifest:
          apis:
            custom:
              endpoint:
                uri: !GetAtt SkillFunction.Arn
    AuthenticationConfiguration:
      ClientId: "amzn1.application-oa2-client.1234"
      ClientSecret: "1234"
      RefreshToken: "Atzr|1234"
    VendorId: "1234"

Condition references aren't documented

In the page for Condition functions ( https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/intrinsic-function-reference-conditions.md ), references to other conditions are shown as {"Condition": "MyConditionName"} and !Condition MyConditionName, but this function is not explicitly documented anywhere, nor is it mentioned on the main Conditions page ( https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/conditions-section-structure.md )

Additionally, the section on resource attributes, which lists keys like CreationPolicy, doesn't mention the Condition key ( https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/aws-product-attribute-reference.md ), and none those attributes or Condition are listed in the resource fields section of the template anatomy page on resources ( https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/resources-section-structure.md )

Working sample of AWS::ServiceCatalog::CloudformationProduct is required

Current Documentation:

Info The URL of the CloudFormation template in Amazon S3. Specify the URL in JSON format as follows:
"LoadTemplateFromURL": "https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/..."

The above is confusing as we do not know if we it needs to be a JSON string or a JSON object. More importantly, it throws an "Internal Failure" when used the wrong way.

Suggested:

                "ProvisioningArtifactParameters": [
                    {
                        "Info": {
                          "LoadTemplateFromURL": "https://s3-<region>.amazonaws.com/..."
                        }
                    }
                ]

How do I setup Google and Facebook in my Cognito templates?

There is information missing as to what are the value inputs expected in the SupportedLoginProviders field.

String:String # No indication what the left or right side of the string should be in order for this to work.

Where can I find some sample CFN templates that has the identity providers? Or do I need to do this in the console once I've gotten this far?

valid values for codedeploy compute platform

doc_source/aws-resource-codedeploy-application.md:

Type: "AWS::CodeDeploy::Application"
Properties:
ApplicationName: String
ComputePlatform: String

ComputePlatform should specify the valid values.

[AWS::Batch::JobDefinition] - Update documentation: "Timeout" property missing

Hi,

Documentation: https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_so...
Resource Type: AWS::Batch::JobDefinition

It seems that the "AWS::Batch::JobDefinition" resource type already supports the underlying Batch JobDefinition "Timeout" [1] property declaration in CloudFormation, but its documentation is not updated. Could you please include it?

Reference:

[1] - Timeout:
https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameter...

=== sample ===

Resources:
  JobDefinition:
    Type: 'AWS::Batch::JobDefinition'
    Properties:
      Type: container
      JobDefinitionName: nvidia-smi
      ContainerProperties:
        MountPoints:
          - ReadOnly: false
            SourceVolume: nvidia
            ContainerPath: /usr/local/nvidia
        Volumes:
          - Host:
              SourcePath: /var/lib/nvidia-docker/volumes/nvidia_driver/latest
            Name: nvidia
        Command:
          - nvidia-smi
        Memory: 2000
        Privileged: true
        JobRoleArn: String
        ReadonlyRootFilesystem: true
        Vcpus: 2
        Image: nvidia/cuda
      Timeout:
        AttemptDurationSeconds: 300

=== sample ===

Thank you.

Inconsistency in the YAML sample code

I'm noticing a inconsistency in the YAML sample code templates. It's maybe a "small" thing, but it triggered me a bit. And before making a PR with "A lot" of changes I wanted to discuss this up front.

Issue
In YAML and the way it's processed (by CloudFormation itself and a lot of code processing it) there is an implicit typecasting that is going on. Which mean that the following 2 samples are "the same":

Type: AWS::Cloud9::EnvironmentEC2
Properties:
  Repositories: 
...

Type: "AWS::Cloud9::EnvironmentEC2"
Properties:
  Repositories: 
...

Since the Type is actually a String. This is "enforced" in JSON (because JSON), but in YAML everything is fine.

I noticed that the Sample snippets use both formats (with the quotes and without).

A few samples with quotes:

A few samples without quotes:

Proposal
I'd like to propose to change all YAML samples to use the "quoted" version of the types:

  • Makes the codebase "consistent"
  • Although "it works", Type is a String, "lead by example" and make them Strings...

Missing CloudFormationResourceSpecification.json Files in This Repository

Referencing the following documentation:
https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/cfn-resource-specification.md

Can the CloudFormationResourceSpecification.json files be versioned in this repository? Or are they versioned elsewhere?

I have run into bugs when generating modules from the specifications, with things like broken Documentation property links. I think it would be beneficial to have the JSON files versioned here to make it easier to open issues on them and update/fix.

It would also make life easier for toolmakers by tracking the files in this repo (troposphere, sparkleformation, etc.), and being able to see the commits that have modified the json source files.

EDIT (04/28/18) Here is the published documentation page that includes the JSON specification templates I am referencing, but are not versioned within this repo: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html

Amazon Cognito UserPool LambdaConfig missing UserMigration

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html

I've just tried configuring a UserPool with a UserMigration lambda similar to how we do PreSignUp and CustomMessage and it fails template validation for LambdaConfig.

Given that you can configure UserMigration in the exact same way as the other lambda config options using the aws cli I was hoping it was just undocumented in the CloudFormation docs.

I'd really appreciate this functionality being added to LambdaConfig, it would avoid us having to write post stack creation scripts using the aws cli to update the UserPool afterwards.

By having a dependency on the UserMigration trigger it has rendered the LambdaConfig config unusable because if we have to update the pool post creation, we might as well keep all trigger updates together.

If it's as simple as adding validation for the config and if that code is open source, let me know and I'll happily add it.

Inconsistent Update Behavior for DynamoDB SSESpecification on different pages

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-ssespecification

Type: DynamoDB SSESpecification

Update requires: Some interruptions

Following the link there takes me here:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html

Where there is only one property of DynamoDB SSESpecification and updating that property apparently requires replacement.

Properties
SSEEnabled
Whether server-side encryption is enabled or not.

Required: Yes

Type: String

Update requires: Replacement

Ambigous statements in DBClusterParameterGroupName

https://github.com/awsdocs/aws-cloudformation-user-guide/blob/master/doc_source/aws-resource-rds-dbcluster.md

DBClusterParameterGroupName The name of the DB cluster parameter group to associate with this DB cluster.
If this argument is omitted, default.aurora5.6 is used. If default.aurora5.6 is used, specifying aurora-mysql or aurora-postgresql for the Engine property might result in an error. Required: No

Will it result in an error or not ??? Specifying "might" result in an error is pretty ambigous.

Change EC2 LaunchTemplate InstanceMarketOptions to "Required"

When "InstanceMarketOptions" is used in "AWS::EC2::LaunchTemplate", the "MarketType" property is required. If not given the stack throws error:
You must use a valid fully-formed launch template. The request must contain the parameter MarketType

Elastic Load Balancing ListenerRule Actions for Redirect Policy

The documentation currently states:

TargetGroupArn The Amazon Resource Name (ARN) of the target group to which Elastic Load Balancing routes the traffic.
Required: Yes
Type: String

It appears that this is a conditional requirement as an error is thrown if this property is defined with type 'redirect'

AWS::SNS::TopicPolicy Silently accepts invalid policies

Test Policy:

{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Action":"sns:Publish"
"Principal": {
"AWS": "1234567689012",
"AWS": "2345676890123"
}
]
}

Expected behaviour: validation error.
Obtained behaviour: SNS topic remains with an empty policy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.