Я создаю сценарий AWS powershell для создания лямбда-функции.Как часть сценария, я сначала создаю нужную настраиваемую политику, создаю роль, присоединяю политики, затем пытаюсь создать функцию лямбда-выражения.Тем не менее, кажется, что происходит задержка в получении полностью созданной роли IAM, и я получаю сообщение об ошибке, если у меня нет оператора sleep.
Я знаю, что в шаблонах облачной информации я потенциально могу использовать атрибут зависимость от.Есть ли что-то, что я могу проверить, чтобы подтвердить статус создания, прежде чем пытаться создать функцию.Вот что я пытаюсь сделать -
New-IAMRole -RoleName "lambdarole" -AssumeRolePolicyDocument $assumerolelambdapolicy #creates role
New-IAMPolicy -PolicyName "policyarn1" -Description "custompolicy" `
-PolicyDocument $policyarndocument
$Executionrolepolicies = @("custompolicyarn1", "awsmanagedpolicyarn2", "awsmanagedpolicyarn3") #list of policy arns to be attached to the policy
foreach ($policy in $Executionrolepolicies) {
Register-IAMRolePolicy -RoleName "lambdarole" -PolicyArn $policy
}
Start-Sleep -s 60 #If I don't have this sleep to wait for the role
#to fully create, then I get the error of "role defined
#for the function cannot be assumed by lambda"
Publish-LMFunction -FunctionName "Test" `
-ZipFilename "C:\lambdacode.zip" `
-Region $region `
-Role "arn:aws:iam::1234567890:role/lambdarole" `
-Handler "lambda_function.lambda_handler" -Runtime "python2.7" `
-Description "Test function"