public Object createInstance()

in azure-functions-java-sdktypes/src/main/java/com/microsoft/azure/functions/sdktype/blob/BlobContainerHydrator.java [18:43]


    public Object createInstance(BlobContainerMetaData metaData) throws Exception {
        String containerName = metaData.getContainerName();
        String envVar = metaData.getConnectionEnvVar();

        LOGGER.info("BlobContainerHydrator: Using environment variable name as prefix: " + envVar);

        // Check if environment variable => connection string
        String maybeConnString = System.getenv(envVar);
        if (maybeConnString != null && isConnectionString(maybeConnString)) {
            LOGGER.info("Detected connection string usage from environment variable: " + envVar);
            return buildWithConnectionString(containerName, maybeConnString);
        } else {
            // interpret envVar as prefix for managed identity
            LOGGER.info("Detected Managed Identity usage. Prefix: " + envVar);

            final String accountName = System.getenv(envVar + "__accountName");
            final String serviceUri = System.getenv(envVar + "__serviceUri");
            final String blobServiceUri = System.getenv(envVar + "__blobServiceUri");
            final String clientId = System.getenv(envVar + "__clientId");

            String endpoint = resolveEndpoint(accountName, serviceUri, blobServiceUri);
            Object credential = buildManagedIdentityCredential(clientId);

            return buildWithManagedIdentity(containerName, endpoint, credential);
        }
    }