public Function()

in gce-vm-labeler/gcf/csharp/Function.cs [28:56]


        public Function(ILogger<Function> logger) =>
            _logger = logger;

        public async Task HandleAsync(CloudEvent cloudEvent, LogEntryData data, CancellationToken cancellationToken)
        {
            _logger.LogInformation("Event type: {type}", cloudEvent.Type);

            if (!data.Operation.Last)
            {
                _logger.LogInformation("Operation is not last, skipping event");
                return;
            }

            // projects/events-atamel/zones/us-central1-a/instances/instance-1
            var resourceName = data.ProtoPayload.ResourceName;
            _logger.LogInformation($"Resource: {resourceName}");

            var tokens = resourceName.Split("/");
            var project = tokens[1];
            var zone = tokens[3];
            var instance = tokens[5];
            var username = data.ProtoPayload.AuthenticationInfo.PrincipalEmail.Split("@")[0];

            _logger.LogInformation($"Setting label 'username:{username}' to instance '{instance}'");

            await SetLabelsAsync(project, zone, instance, username);

            _logger.LogInformation($"Set label 'user:{username}' to instance '{instance}'");
        }