Я создаю шаблон CFN, в котором я включаю журналы для шлюза API.Он создал роль, подобную этой
"ApiGatewayCloudWatchLogsRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": ["apigateway.amazonaws.com"] },
"Action": ["sts:AssumeRole"]
}]
},
"ManagedPolicyArns": [
"arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess"
],
"Policies": [{
"PolicyName": "ApiGatewayLogsPolicy",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents",
"logs:GetLogEvents",
"logs:FilterLogEvents"
],
"Resource": "*"
}]
}
}]
}
}
И я добавил к AWS::ApiGateway::Account
вот так в соответствии с этим документ
"ApiGatewayAccount": {
"Type" : "AWS::ApiGateway::Account",
"Properties" : {
"CloudWatchRoleArn" : {"Fn::GetAtt" : ["ApiGatewayCloudWatchLogsRole", "Arn"] }
}
},
В документации AWS::ApiGateway::Account
.Они указываются следующим образом:
Важно
Если ресурс шлюза API никогда не создавался в вашей учетной записи AWS, необходимо добавить зависимость от другого ресурса шлюза API, такого как AWS:: ApiGateway :: RestApi или AWS :: ApiGateway :: Ресурс ApiKey.
Если в вашей учетной записи AWS создан ресурс API-шлюза, зависимость не требуется (даже если ресурс был удален).
Это мое понимание вышеупомянутой заметки, если мой CFN не имеет AWS::ApiGateway::Resource
, тогда мне нужно добавить зависимость к моему AWS::ApiGateway::Account
таким образом, что необходимо создать ресурс AWS::ApiGateway::Account
только после создания AWS::ApiGateway::RestApi
.
Итак, я изменил фрагмент кода CFN следующим образом
"ApiGatewayAccount": {
"Type" : "AWS::ApiGateway::Account",
"DependsOn": [
"CFNTest" -->This is a`AWS::ApiGateway::RestApi`
],
"Properties" : {
"CloudWatchRoleArn" : {"Fn::GetAtt" : ["ApiGatewayCloudWatchLogsRole", "Arn"] }
}
},
Правильно ли я понимаю?
Спасибо