Распаковка кода python для шаблона AWS cloudformation

#stringify

Вопрос:

У меня есть строковая версия кода python, которую я хочу распаковать, внести в нее некоторые изменения и снова сделать строковой. Есть ли какая-нибудь доступная библиотека, чтобы сделать то же самое?

Ввод Образца:

 "import boto3nnSUCCESS_MESSAGE = "Instance patched successfully"
                  nFAILURE_MESSAGE = "Patching failed and Instance restored to original
                   state"nnssm = boto3.client('ssm')nndef is_compliant(ec2_id):nt
                  report = {ntt"is_compliant": None,ntt"items": []nt}ntnoncompliance_found
                   = Falsenttoken = Nonentwhile 1:nttif token is None:ntttlist_compliance_result
                   = ssm.list_compliance_items(nttttFilters=[{'Key': 'ComplianceType',
                   'Values': ['Patch']}],nttttResourceIds=[ec2_id],nttttResourceTypes=["
                  ManagedInstance"]nttt)nnttelse:ntttlist_compliance_result =
                   ssm.list_compliance_items(nttttFilters=[{'Key': 'ComplianceType',
                   'Values': ['Patch']}],nttttResourceIds=[ec2_id],nttttResourceTypes=["
                  ManagedInstance"],nttttNextToken=tokennttt)nttcompliances =
                   list_compliance_result["ComplianceItems"]nnttfor a_val in compliances:n
                  tttpatch_item = {ntttt"PatchId": a_val["Id"],ntttt"Severity"
                  : a_val["Severity"],ntttt"ComplianceType": a_val["ComplianceType"
                  ],ntttt"State": a_val["Details"]["PatchState"]nttt}ntt
                  treport["items"].append(patch_item)ntttif a_val["Status"] != "
                  COMPLIANT" and a_val["Details"]["PatchState"] != "NotApplicable"
                  :nttttnoncompliance_found = Truennttif "NextToken" in list_compliance_result:n
                  ttttoken = list_compliance_result["NextToken"]nttelse:ntttbreakn
                  nttif token is None:ntttbreaknntreport["is_compliant"] = noncompliance_found
                   is Falsentreturn reportnnndef is_success_case(ec2_id):ntreturn
                   is_compliant(ec2_id)nnndef handler(event, context):ntcompliance_report
                   = is_success_case(event["InstanceId"])ntreturn {ntt"Result":
                   SUCCESS_MESSAGE if compliance_report["is_compliant"] else FAILURE_MESSAGE,n
                  tt"PatchingSuccess": compliance_report["is_compliant"],ntt"items"
                  : compliance_report["items"]nt}n"
 

Выход:
отформатированный код python
примерно так, как показано ниже:

 import boto3

SUCCESS_MESSAGE = "Instance patched successfully"
  
FAILURE_MESSAGE = "Patching failed and Instance restored to original state"

ssm = boto3.client('ssm')
....
 

и наоборот, чтобы упорядочить приведенный выше код.

Комментарии:

1. вы просите сделать это с помощью bash или python?

2. Все должно быть хорошо

Ответ №1:

Что вы думаете об использовании aws cdk и написании всего этого на python вместо json?

Комментарии:

1. Это совсем другое дело. Это для документа автоматизации AWS SSM.