Кластер EMR не завершает работу при удалении связанного стека облачной информации с помощью лямбда-функции - PullRequest
0 голосов
/ 26 мая 2020
Resources:
  LFTULJ:
    Type: 'AWS::Lambda::Function'
    Properties:
      Runtime: python3.6
      Code:
        ZipFile: |
          import boto3
          import os
          import json

          stack_name = os.environ['stackName']

          def delete_cfn(stack_name):
              try:
                  cfn = boto3.resource('cloudformation')
                  stack = cfn.Stack(stack_name)
                  stack.delete()
                  return "SUCCESS"
              except:
                  return "ERROR"

          def handler(event,context):
              print("Received event:")
              print(json.dumps(event))
              return delete_cfn(stack_name)

      Handler: index.handler
      Environment: 
        Variables: 
          stackName: shubham
      Role: 'arn:aws:iam::261598744157:role/terminate'
      Timeout: '60'
    Metadata:
      'AWS::CloudFormation::Designer':
        id: 20d06512-220b-4ef6-b56a-f65d2a0c49d4

Я удаляю стек с помощью лямбда-функции. Все удаляется, но кластер EMR не завершается. Отображается ошибка Cluster id 'j-AQ1M94XKWDDJP' is not valid. (Service: AmazonElasticMapReduce; Status Code: 400; Error Code: InvalidRequestException; Request ID: 0283892f-c5aa-440d-968a-8cfb4585fe23), пока существует кластер с таким идентификатором.

1 Ответ

1 голос
/ 27 мая 2020

я получил ответ на проблему. С кластером EMR VisibleToAllUsers связано одно свойство. Когда мы вращаем наш EMR-кластер с помощью сценария CLoudformation, по умолчанию устанавливается значение false. Вот почему идентификатор EMR был недействителен. Итак, решение для этого - сделать свойство VisibleToAllUsers равным true, чтобы другие IAM также могли просматривать кластер EMR, и тогда скрипт и лямбда-функция работают правильно.

...