AWS CloudFormationでデプロイしたAPI Gatewayが更新されない
6250 ワード
はじめに
ある特定のケースでデプロイの結果がAPI Gatewayに反映されない場合があり、原因はわからないが解決はできたので覚書
解決策
AWSコンソールから何も変更を加えず手動でデプロイのアクションをする
状況
- CloudFormationのテンプレートにAPI GatewayのSwaggerファイルを読み込んでいる
- API Gatewayの
method.response.header.Access-Control-Allow-Origin:
のみ変更しデプロイする - デプロイ完了後、確認するも設定が反映されていない
使用したテンプレートの抜粋
template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: ...
Resources:
Api:
Type: AWS::Serverless::Api
Properties:
StageName: dev
DefinitionBody:
Fn::Transform:
Name: AWS::Include
Parameters:
Location: !Sub s3://${CfnBucketName}/${AWS::StackName}/src/api/swagger.yaml
swagger.yaml
swagger: "2.0"
info:
version: "2018-09-04T22:25:14Z"
title: "title"
basePath: "/dev"
schemes:
- "https"
paths:
/token:
options:
consumes:
- "application/json"
produces:
- "application/json"
responses:
200:
description: "200 response"
schema:
$ref: "#/definitions/Empty"
headers:
Access-Control-Allow-Origin:
type: "string"
Access-Control-Allow-Methods:
type: "string"
Access-Control-Allow-Headers:
type: "string"
x-amazon-apigateway-integration:
responses:
default:
statusCode: "200"
responseParameters:
method.response.header.Access-Control-Allow-Methods: "'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'"
method.response.header.Access-Control-Allow-Headers: "'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'"
method.response.header.Access-Control-Allow-Origin:
Fn::Sub: "'${AllowOrigins}'"
requestTemplates:
application/json: "{\"statusCode\": 200}"
passthroughBehavior: "when_no_match"
type: "mock"
おわりに
今のところ2回同じ操作をして2回とも同じ現象になっている
リソースやメソッドの追加・削除では起きたことがないので、メソッドのプロパティの変更の場合に起きるんだろうか
気が向いたら調査するかも
Author And Source
この問題について(AWS CloudFormationでデプロイしたAPI Gatewayが更新されない), 我々は、より多くの情報をここで見つけました https://qiita.com/atilol/items/25bf87e35138e4688d26著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .