[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
2022-02-10 12:15:17
質問
CloudFormationスタックをデプロイする際に以下を取得します。
REST APIには、メソッド(Service: AmazonApiGateway; ステータスコード 400; Error Code: BadRequestException; リクエストID: d527f56e-a1e1-11e9-a0a4-af7563b2b15a)
このスタックには、単一のリソースとメソッドを持つAPIによってトリガーされる単一のLambdaがあります。
FailureReporting:
Type: "AWS::ApiGateway::RestApi"
DependsOn: "MyLambdaFunction"
Properties:
Name: "FailureReporting"
FailOnWarnings: true
FailureReportingDeployment:
Type: AWS::ApiGateway::Deployment
Properties:
RestApiId:
Ref: "FailureReporting"
Description: "Production environment supporting version-1 of the interface."
StageName: "v1"
Failures:
Type: "AWS::ApiGateway::Resource"
Properties:
RestApiId: !Ref "FailureReporting"
ParentId: !GetAtt ["FailureReporting", "RootResourceId"]
PathPart: "failures"
FailuresMethodGet:
Type: "AWS::ApiGateway::Method"
Properties:
RestApiId: !Ref "FailureReporting"
ResourceId: !Ref "Failures"
HttpMethod: "GET"
AuthorizationType: "NONE"
MethodResponses:
- StatusCode: "200"
Integration:
IntegrationHttpMethod: "POST"
Type: "AWS_PROXY"
IntegrationResponses:
- StatusCode: "200"
Credentials: !GetAtt [ 3FailureReportingExecuteAPI, Arn ]
Uri: !Sub
- "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${lambdaArn}/invocations"
- lambdaArn: !GetAtt [ GetFailureKeysByOrderNumber, Arn ]
どこで失敗したのかがわからない。
解決方法は?
を配置します。
DependsOn
をデプロイメントリソースに追加します。
FailureReportingDeployment:
Type: AWS::ApiGateway::Deployment
DependsOn:
- "FailuresMethodGet"
Properties:
Description: "Production environment supporting version-1 of the interface."
RestApiId: !Ref "FailureReporting"
StageName: "v1"
直感的でない に埋もれている。 ドキュメント を見ると、次のように書かれています。
AWS::ApiGateway::RestApi リソースとそのメソッドを作成した場合 (AWS::ApiGateway::Methodを使用)と同じテンプレートで作成します。 デプロイメントでは、デプロイメントが RestApi のメソッドに依存する必要があります。そのためには 依存関係を作成するには、デプロイメントに DependsOn 属性を追加します。もし そうしないと、AWS CloudFormationはデプロイメントを作成した後、すぐに メソッドを含まないRestApiリソースが作成されてしまい、AWS CloudFormationは次のようなエラーに遭遇します。REST API doesn't はメソッドを含んでいません。
関連
-
[解決済み] クラウド形成リソース作成における複数条件
-
[解決済み] as select in redshiftに挿入する。
-
[解決済み] Amazon Redshift - CSVからのCOPY - 行に二重引用符が一つある - CSVの引用符の書式が無効である エラー
-
[解決済み] AWS KinesisとEventBridgeの違いは何ですか?
-
[解決済み] CloudFrontがオリジンに接続できなかった
-
[解決済み] Amazon MQとSQSの違いは何ですか?
-
[解決済み] SQSとRabbitMQの比較
-
[解決済み] AWS SNSとAWS SQSのFIFOキューを統合することは可能か?
-
[解決済み] CLIコマンドでAWSグルージョブを作成する方法とは?
-
[解決済み] AWSのロールを "アサイン "するとはどういうことですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Terraformです。EFSアクセスポイントをEC2にマウントするには?
-
[解決済み] as select in redshiftに挿入する。
-
[解決済み] DNS名foo.を持つRRSetはゾーンバーで許可されていません。
-
[解決済み] RDS は、以下の組み合わせでの DB インスタンスの作成をサポートしていません。
-
[解決済み] Amazon S3におけるHeadBucket操作とは
-
[解決済み] タスク実行時にAWS ECSエラーが発生しました。クラスタにコンテナインスタンスが見つかりませんでした。
-
[解決済み] ウェブサイトがAmazonネームサーバーを持っているが、別のサーバーでホストされている方法
-
[解決済み] DynamoDBのBatchGetItemとQueryの違いとは?
-
[解決済み] s3バケットから複数ファイルをコピーする
-
[解決済み] EC2でインスタンスを削除するには?