in src/aspect.ts [92:114]
public visit(construct: IConstruct): void {
if (construct instanceof TaskDefinition) {
const containers = construct.stack.resolve((construct.node.defaultChild as CfnTaskDefinition).containerDefinitions);
let imageUri = undefined;
if (containers instanceof Array) {
for (const container of containers) {
if (container as CfnTaskDefinition.ContainerDefinitionProperty) {
imageUri = this.hasBeReplaced(container);
if (imageUri) { break; }
}
}
} else if (containers as CfnTaskDefinition.ContainerDefinitionProperty) {
imageUri = this.hasBeReplaced(containers);
}
if (imageUri) {
const repoName = this.getRepoName(imageUri);
if (repoName) {
construct.executionRole!.attachInlinePolicy(this.crossAccountECRPolicy(construct.stack, repoName));
}
}
}
}