🫥

[AWS SAM]Hello World Example templateにリソースを追加する

2023/06/16に公開

はじめに


AWS SAMを使ってみた!感動した!
で作成した環境のHello World Example templateにリソースを追加します。
以下を追加します。

  • AWS Lambda関数からアクセスするDynamoDB

追加項目

  • DynamoDB
    • テーブル名:helloworld
    • プライマリキー:複合プライマリキー
    • パーティションキー:id(文字列)
    • ソートキー:datetime(文字列)
  • Function
    • DynamoDBテーブルに作成、読み取り、更新、および削除許可を付与

template.yaml修正箇所

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: hello_world/
      Handler: app.lambda_handler
      Runtime: python3.9
      Architectures:
      - x86_64
      # 追加↓
      Policies:
        DynamoDBCrudPolicy: # DynamoDBテーブルに作成、読み取り、更新、および削除許可を付与するポリシー
          TableName: !Ref HelloWorldTable
      # 追加↑
      Events:
        HelloWorld:
          Type: Api
          
          Properties:
            Path: /hello
            Method: get
  # 追加↓
  HelloWorldTable:
    Type: AWS::DynamoDB::Table
    Properties: 
      TableName: helloworld
      AttributeDefinitions: 
        - AttributeName: id
          AttributeType: S
        - AttributeName: datetime
          AttributeType: S
      KeySchema: 
        - AttributeName: id
          KeyType: HASH
        - AttributeName: datetime
          KeyType: RANGE
      BillingMode: PAY_PER_REQUEST
  # 追加↑

デプロイ後

できてますね。OK!

Discussion