AWS CloudFormation удалить ресурсы - PullRequest
0 голосов
/ 15 мая 2018

У меня есть следующий шаблон облачной информации:

Parameters:
  SizeCondition1:
    Type: String
    Default: SizeCondition1
    Description: >-
      Enter the name of the size condition. Note names cannot be modified after
      creation and must be alphanumeric without spaces.
  SizeURI1:
    Type: String
    Default: '8192'
    Description: Enter the size limit of the URI.
  SizeQuery1:
    Type: String
    Default: '8192'
    Description: Enter the size limit of the query string.
Resources:
  WAFSizeCondition1:
    Type: 'AWS::WAF::SizeConstraintSet'
    Properties:
      Name: !Ref SizeCondition1
      SizeConstraints:
        - FieldToMatch:
            Type: QUERY_STRING
          ComparisonOperator: GT
          Size: !Ref SizeQuery1
          TextTransformation: NONE
        - FieldToMatch:
            Type: URI
          ComparisonOperator: GT
          Size: !Ref SizeURI1
          TextTransformation: NONE
  WafRule:
    Type: 'Custom::CustomResource'
    Properties:
      ServiceToken: !Join 
        - ''
        - - 'arn:aws:lambda:'
          - !Ref 'AWS::Region'
          - ':'
          - !Ref 'AWS::AccountId'
          - ':function:WafLambdaTest'
      Name: WAFRateTest1
      RateLimit: '2000'
      MetricName: WAFRateTest1
      Predicates:
        - DataId: !Ref WAFSizeCondition1
          Negated: false
          Type: SizeConstraint

Когда я запускаю событие DELETE, я вижу следующее:

stack progress

Вопросы:

  1. Почему WafRule удаляет первым?Когда его нельзя удалить до WAFSizeCondition1?Как я могу объявить зависимость в шаблоне, чтобы WAFSizeCondition1 удалял первым?
  2. Почему WAFSizeCondition1 нельзя удалить?На какой ресурс ссылается?Как правильно обрабатывать удаление ресурсов здесь?

1 Ответ

0 голосов
/ 16 мая 2018
  1. Облачная информация будет выбирать порядок на основе некоторой внутренней логики.Чтобы повлиять на его порядок, вы можете указать некоторую форму зависимости с атрибутом DependsOn.Например:

WAFSizeCondition1:

Тип: 'AWS :: WAF :: SizeConstraintSet'

Зависит от: WafRule

В вашем пользовательском ресурсе есть ошибка, вы не показали, как написали свою функцию, и я подозреваю, что вы не предприняли правильные шаги для ее удаления.Согласно документ waf.delete_web_acl :

окончательно удаляет WebACL.Невозможно удалить WebACL, если он все еще содержит какие-либо правила.

Чтобы удалить WebACL, выполните следующие действия:

Обновите WebACL, чтобы удалить правила, если таковые имеются.Для получения дополнительной информации см. UpdateWebACL .

Используйте GetChangeToken, чтобы получить токен изменения, указанный в параметре ChangeToken запроса DeleteWebACL.Отправьте запрос DeleteWebACL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...