in internal/cmds/cmds.go [725:760]
func createOrReplaceAppendBlob(blobUri string, sasToken string, managedIdentity *handlersettings.RunCommandManagedIdentity, ctx *log.Context) (*storage.Blob, *appendblob.Client, error) {
var blobSASRef *storage.Blob
var blobSASTokenError error
var blobAppendClient *appendblob.Client
var blobAppendClientError error
// Validate blob can be created or replaced.
if blobUri != "" {
if sasToken != "" {
blobSASRef, blobSASTokenError = download.CreateOrReplaceAppendBlob(blobUri, sasToken)
if blobSASTokenError != nil {
ctx.Log("message", fmt.Sprintf("Error creating blob '%s' using SAS token. Retrying with system-assigned managed identity if available..", download.GetUriForLogging(blobUri)), "error", blobSASTokenError)
}
}
// Try to create or replace output blob using managed identity.
if sasToken == "" || blobSASTokenError != nil {
blobAppendClient, blobAppendClientError = createOrReplaceAppendBlobUsingManagedIdentity(blobUri, managedIdentity)
}
if (sasToken == "" && blobAppendClientError != nil) ||
(blobSASTokenError != nil && blobAppendClientError != nil) {
var er error
if blobSASTokenError != nil {
er = blobSASTokenError
} else {
er = blobAppendClientError
}
return nil, nil, errors.Wrap(er, "Creating or Replacing append blob failed.")
}
}
return blobSASRef, blobAppendClient, nil
}