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);
}
}