Hello Raphael,
So habe ich das Problem gelöst:
Schritt 1:
Ich habe eine Funktions-App mit VNet-Integration erstellt. Sowohl mein App-Service als auch meine Funktionswebsite sind wie folgt hinzugefügt:
NSG, Routingtabelle und NAT-Gateway sind nicht konfiguriert.
Schritt 2: Mein Speicherkonto für Funktions-Apps hat den öffentlichen Zugriff aktiviert:
Schritt 3: Ich habe nun die verwaltete Identität für Funktions-Apps aktiviert und die Speicherkontorollen wie folgt hinzugefügt: Verwaltete Identität für Funktions-Apps aktiviert: -
Navigieren Sie zum Speicherkonto der Funktions-App > Zugriffskontrolle (IAM) > Rolle <Speicherrolle>. Fügen Sie unter Benutzer, Gruppe, Dienstprinzipal die verwaltete Identität der Funktions-App als Mitglied hinzu. Überprüfen und zuweisen Sie die Änderungen. Wiederholen Sie diesen Vorgang für die beiden anderen Rollen.
Informationen zum Hinzufügen der Rollen der verwalteten Identität der Funktions-App zum Speicherkonto finden Sie in diesem Microsoft-Dokument: https://learn.microsoft.com/en-us/azure/azure-functions/functions-identity-based-connections-tutorial#grant-the-system-assigned-identity-access-to-the-storage-account
Rollen:
• Speicherkonto-Mitwirkender (Storage account contributor)
• Besitzer von Speicherblobdaten (Storage blob data owner)
• Mitwirkender von Speicherwarteschlangendaten (Storage queue data contributor)
Rollenzuweisungsbeispiel:
Schritt 4: Fügen Sie nun in Ihrer Functions-App die unten stehenden App-Einstellungen hinzu. Es ist nicht erforderlich, weitere App-Einstellungen hinzuzufügen:
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "InstrumentationKey=xxxxxx1;IngestionEndpoint=https://northeurope-.in.applicationinsights.azure.com/;LiveEndpoint=https://northeurope.livediagnostics.monitor.azure.com/;ApplicationId=xxxxxxxxxxx",
"name": "AzureWebJobsStorage__accountName",
"value": "stfuncflexbd00",
Stellen Sie sicher, dass nach AzureWebJobsStorage__ ein doppelter Unterstrich folgt, und anschließend muss accountName und value der Name Ihres Function Storage-Kontos sein, in dem die verwaltete Identität aktiviert ist.
Schritt 4: Ich habe in Visual Studio einen Blob-Trigger erstellt und ihn in der oben genannten Flex-Funktions-App bereitgestellt. Die Bereitstellung war erfolgreich (siehe unten).
Wenn ich die Funktion nun über die Funktions-App ausführe, wird sie erfolgreich ausgeführt. Siehe unten:
Alternativ können Sie diesen Blog konsultieren, in dem die Bereitstellung einer in VNET integrierten Flex-Funktions-App mit Terraform beschrieben wird: https://carlos.mendible.com/2024/12/12/deploy-flex-consumption-azure-function-with-vnet-integration-using-terraform/ Die App-Einstellungen und die Speicherkontorolle müssen jedoch wie oben beschrieben nach der Bereitstellung hinzugefügt werden.