[AWS SAM] API Gateway を sam deploy 後、GUI から再デプロイしないと設定が反映されないことがある

# 事象
* AWS SAM で API Gateway を `sam deploy` しても、設定がデプロイされない（デプロイ履歴にも表示されない）
  * GUI からみると設定自体は更新されているが、デプロイされていないため動作に反映されていない 

# changeset の違い
* 事象発生時は、以下のように `AWS::ApiGateway::Deployment` が changeset に出力されない

```
CloudFormation stack changeset
------------------------------------------------------------------------------------------------
Operation                        LogicalResourceId                ResourceType                   
------------------------------------------------------------------------------------------------                               
* Modify                         TestApiGatewayStage              AWS::ApiGateway::Stage                                                            
* Modify                         TestApiGateway                   AWS::ApiGateway::RestApi                                        
------------------------------------------------------------------------------------------------
```
* 想定通りデプロイされるときは、`AWS::ApiGateway::Deployment` が changeset に出力される

```
CloudFormation stack changeset
------------------------------------------------------------------------------------------------
Operation                        LogicalResourceId                ResourceType                   
------------------------------------------------------------------------------------------------
+ Add                            TestApiGateway                   AWS::ApiGateway::Deployment                                    
* Modify                         TestApiGatewayStage              AWS::ApiGateway::Stage                                                            
* Modify                         TestApiGateway                   AWS::ApiGateway::RestApi       
- Delete                         TestApiGatewayDeployment         AWS::ApiGateway::Deployment                                     
------------------------------------------------------------------------------------------------
```

# 発生条件
* **API 設定（Swagger / OpenAPI 定義等）に修正を加えず**、リソースポリシーなど API Gateway 自体の設定だけ修正した場合に発生する

# 原因
* 「API 設定に変更が無いと API Gateway のデプロイを検知しない」という AWS SAM の制限（仕様）
  * 「強制デプロイ」オプションの Issue が 2018 年頃に出ているが、2021 年時点でも未実装
    * [Feature: Always deploy API option · Issue \#660 · aws/serverless\-application\-model · GitHub](https://github.com/aws/serverless-application-model/issues/660)

# 回避策
* どちらも微妙な方法ですが、現状ではこのくらしかなさそうでした
  * `sam deploy` 後、GUI から手動でデプロイする
  * API 設定に何らかの変更を加える
* ダミーパラメータを作ることで回避できないか検討しましたが、無理でした

# 関連情報
* AWS SAM 公式 Issue
  * [API Gateway Stages Deployment only gets updated when Swagger is updated · Issue \#479 · aws/serverless\-application\-model · GitHub](https://github.com/aws/serverless-application-model/issues/479)
  * [AWS::Serverless::Api deployment resource is not generated on Sub'ed Ref change · Issue \#914 · aws/serverless\-application\-model · GitHub](https://github.com/aws/serverless-application-model/issues/914)
  * [Adding "FunctionName" to AWS::Serverless::Function does not trigger an API Gateway deployment · Issue \#739 · aws/serverless\-application\-model · GitHub](https://github.com/aws/serverless-application-model/issues/739)
  * [Api Gateway Deployment not updated when AutoPublishAlias is changed · Issue \#1547 · aws/serverless\-application\-model · GitHub](https://github.com/aws/serverless-application-model/issues/1547)
* [aws sam \- SAM deploys are updating API Gateway Responses but not deploying to the stage \- Stack Overflow](https://stackoverflow.com/questions/63166411/sam-deploys-are-updating-api-gateway-responses-but-not-deploying-to-the-stage)