SAM template with dev, prod stacks, Dynamo DB name clash between stacks?

0

I have created a SAM stack with a CI/CD pipeline using this tutorial as a guide. https://catalog.workshops.aws/complete-aws-sam/en-US/module-4-cicd/module-4-cicd-codepipeline/50-sampipeinit

I have used sam pipeline init --bootstrap to Crete a pipeline with the ‘Two-stage pipeline’ from template.

Everything was fine.

I then added the following to my SAM template to add a dynamo DB table

  UserDataTable:
    Type: AWS::Serverless::SimpleTable
    Properties:
      TableName: UserData
      PrimaryKey:
        Name: UserID
        Type: String
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 5

After this the code pipeline failed on the prod stage with the following error

UserData already exists in stack arn:aws:cloudformation:<>region>[myARN ] The following resource(s) failed to create: [UserDataTable].

So it appears that there is a name clash.

My question is this, I thought the names we give in the SAM templates are “ logical names “ which are later translated to physical names during stack creation. For example I have other resources defined as below

  MyCognitoUserPool:
    Type: AWS::Cognito::UserPool
	<Rest of the code >


  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      <Rest of the code>

These things don’t create any name clashes. Why is Dynamo DB behaving differently and how do I fix this please?

質問済み 3ヶ月前148ビュー
1回答
0
承認された回答

Just realised I shouldn't have named the table I removed the following line

TableName: UserData

And everything is OK

回答済み 3ヶ月前
profile picture
エキスパート
レビュー済み 2ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ