Я застрял в создании ssm.CfnAssociation из-за того, что я новичок в AWS CDK и CloudFormation. Я пытаюсь создать задачу диспетчера состояний AWS Systems Manager (AWS-RunAnsiblePlaybook) с помощью ssm.CfnAssociation, но у меня возникло недопонимание, как определить параметры? Я хочу установить в параметрах URL для s3 для playbook. Начиная с документации CDK это должно быть: parameters (Union[IResolvable, None, Mapping[str, Union[IResolvable, Forwardref]]]) – AWS::SSM::Association.Parameters.
По докам AWS Type: Map of ParameterValues
-> {
"ParameterValues" : [ String, ... ]
}
Я пытался определить различные типы параметров, но у меня всегда ошибка: Value did not match any type in union: Expected object reference, got {"plybook":"s3-url"},Value did not match any type in union: Expected object reference, got "s3-url",Expected object reference, got "s3-url"
Если я использую ssm.CfnAssociation.ParameterValuesProperty
для сопоставления с ключом playbookurl
, у меня возникает ошибка на этапе развертывания: SSMAssociation/SSMAssociation (SSMAssociation6148DA19) Value of {Parameters} must be a map where each value is a list of {String}
Не могли бы вы помочь мне с этим, потому что понятия не имеюкакой тип и как должен соответствовать параметрам? Спасибо.
class SSMAssociation(core.Construct):
def __init__(self, scope: core.Construct, id: str,
ssm_association_name: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
ssm_param_values = ssm.CfnAssociation.ParameterValuesProperty(
parameter_values=["s3://test-ansible-test1-pl1/playbook1.yml"],
)
ssm_tartgets = ssm.CfnAssociation.TargetProperty(
key="CDK-Type",
values="EC2Instance",
),
ssm_association = ssm.CfnAssociation(
self, "SSMAssociation",
name=ssm_association_name,
output_location=None,
parameters={
"playbookurl": ssm_param_values,
},
targets=None,
)