Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A func.exe két változata létezik helyi Azure Functions fejlesztéshez:
| v4 | v5 | |
|---|---|---|
| API név | Azure Functions Core Tools | Azure Functions CLI |
| Támogatotti szint | Általános rendelkezésre állás (GA) | Preview |
| Telepítési lábnyom | Teljes bináris, amely tartalmazza az összes parancsot és képességet minden anyanyelvhez. | Kis alap telepítés, plusz nyelvenként szükséges feladatok és egyéb funkciók, amelyeket szükség szerint hozzáadsz. A gazda saját számítási feladatként érkezik, így a CLI újbóli letöltése nélkül megkapja a gazda legújabb verzióját. |
| Használja, amikor... | Minden fejlesztési munkafolyamathoz teljes körű ga-támogatásra van szüksége. | Egyszerű, számítási feladatalapú élményt szeretne az új funkciókkal, például gyorsútmutató-sablonokkal és profilokkal, amelyek szinkronban tartják a helyi környezetet a Azure üzemeltetési terv konfigurációjával. |
Az Azure Functions Core Tools (a func.exe 4-es verziója) lehetővé teszik a függvények fejlesztését és tesztelését a helyi számítógépén. Amikor készen áll, a Core Tools segítségével üzembe helyezheti kódprojektjét az Azure-ban, és kezelheti az alkalmazásbeállításokat.
A cikk C#-verzióját tekinti meg. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített Functions programozási nyelvet.
Ha azonnal hozzá szeretne kezdeni, töltse ki a Core Tools rövid útmutatóját.
A cikk Java verzióját tekintheti meg. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített Functions programozási nyelvet.
Ha azonnal hozzá szeretne kezdeni, töltse ki a Core Tools rövid útmutatóját.
A cikk JavaScript-verzióját tekinti meg. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített Functions programozási nyelvet.
Ha azonnal hozzá szeretne kezdeni, töltse ki a Core Tools rövid útmutatóját.
A cikk PowerShell-verzióját tekinti meg. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített Functions programozási nyelvet.
Ha azonnal hozzá szeretne kezdeni, töltse ki a Core Tools rövid útmutatóját.
A cikk Python verzióját tekintheti meg. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített Functions programozási nyelvet.
Ha azonnal hozzá szeretne kezdeni, töltse ki a Core Tools rövid útmutatóját.
A cikk TypeScript-verzióját tekinti meg. Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített Functions programozási nyelvet.
Ha azonnal hozzá szeretne kezdeni, töltse ki a Core Tools rövid útmutatóját.
A Azure Functions Core Tools telepítése
A Core Tools telepítésének ajánlott módja a helyi fejlesztőszámítógép operációs rendszerétől függ.
Az alábbi lépések egy Windows telepítőt (MSI) használnak a Core Tools v4.x telepítéséhez. További információ a csomagalapú telepítőkről: Core Tools readme.
Töltse le és futtassa a Core Tools telepítőt a Windows verziója alapján:
- v4.x - Windows 64-bit (Ajánlott. Visual Studio Code debugger 64 bites verziót igényel.)
- v4.x – Windows 32 bites
Ha korábban Windows telepítőt (MSI) használt a Core Tools Windows-ra való telepítéséhez, a legújabb verzió telepítése előtt távolítsa el a régi verziót a Programok eltávolítása bővítményből.
Jótanács
A Core Tools Linuxos Windows-alrendszer (WSL) telepítéséhez kövesse a Linux lap utasításait.
A verzióval kapcsolatos problémákról a Core Tools verzióiban talál segítséget.
Helyi projekt létrehozása
Fontos
A Python esetében a Core Tools parancsokat virtuális környezetben kell futtatnia. További információért lásd: Quickstart: Python függvény létrehozása az Azure parancssorból.
A terminálablakban vagy egy parancssorból futtassa a következő parancsot, hogy létrehozhasson egy projektet egy MyProjFolder nevű új mappában:
func init MyProjFolder --worker-runtime dotnet-isolated
Alapértelmezés szerint ez a parancs létrehoz egy projektet, amely a Functions-gazdagéppel közösen fut a jelenlegi Hosszú távú támogatású (LTS) .NET Core verzióban. A --target-framework beállítással megcélzhatja a .NET egy bizonyos támogatott verzióját, beleértve a .NET-keretrendszert is. További információkért lásd a func init hivatkozást.
A két .NET folyamatmodell összehasonlítása: Differenciák az izolált feldolgozó modell és a folyamaton belüli modell között.
Java Maven-archetípussal hozza létre a helyi projektet, valamint az első HTTP-aktivált függvényt. Ahelyett, hogy a func init és func new használatát választaná, inkább kövesse a Parancssori gyorsútmutató lépéseit.
Ez a parancs létrehoz egy JavaScript-projektet, amely a kívánt programozási modell verzióját használja.
Ez a parancs létrehoz egy TypeScript-projektet, amely a kívánt programozási modell verzióját használja.
func init MyProjFolder --worker-runtime powershell
Ez a parancs létrehoz egy Python projektet, amely a kívánt programozási modellverziót használja.
Ha a func init opció nélkül futtatja, a rendszer kérni fogja, hogy válassza ki a projekt nyelvét. A parancs elérhető beállításaival func init kapcsolatos további információkért tekintse meg a func init hivatkozást.
Függvény létrehozása
Ha függvényt szeretne hozzáadni a projekthez, futtassa a func new parancsot az --template eseményindító sablon kiválasztásának lehetőségével. Az alábbi példa létrehoz egy MyHttpTrigger nevű HTTP-eseményindítót:
func new --template "Http Trigger" --name MyHttpTrigger
Ez a példa létrehoz egy MyQueueTrigger nevű Queue Storage-eseményindítót:
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
A függvények hozzáadásakor a következő szempontokat kell figyelembe venni:
Ha a
func newbeállítás nélkül fut--template, a rendszer kérni fogja, hogy válasszon egy sablont.func templates listA parancs használatával megtekintheti a nyelvhez elérhető sablonok teljes listáját.Amikor egy szolgáltatáshoz csatlakozó eseményindítót ad hozzá, olyan alkalmazásbeállítást is hozzá kell adnia, amely egy kapcsolati karakterlánc vagy egy felügyelt identitásra hivatkozik a local.settings.json fájlra. Az alkalmazásbeállítások ilyen módon történő használata megakadályozza, hogy hitelesítő adatokat ágyazza be a kódba. További információ: Az alkalmazásbeállítások helyi használata.
- A Core Tools a C#-projekt adott kötési bővítményére mutató hivatkozást ad hozzá.
A parancs elérhető beállításaival func new kapcsolatos további információkért tekintse meg a func new hivatkozást.
Kötés hozzáadása a függvényhez
A Functions szolgáltatásspecifikus bemeneti és kimeneti kötéseket biztosít, amelyek megkönnyítik, hogy a függvény a szolgáltatásspecifikus ügyféloldali SDK-k használata nélkül kapcsolódjon más Azure szolgáltatásokhoz. További információkért lásd: Azure Functions triggerek és kötések.
Ha bemeneti vagy kimeneti kötést szeretne hozzáadni egy meglévő függvényhez, manuálisan kell frissítenie a függvénydefiníciót.
Az alábbi példa a függvénydefiníciót mutatja be, miután hozzáadott egy Queue Storage kimeneti kötést egy HTTP-aktivált függvényhez:
Mivel a HTTP által aktivált függvény HTTP-választ is ad vissza, a függvény egy MultiResponse objektumot ad vissza, amely a HTTP és az üzenetsor kimenetét egyaránt jelöli.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
Ez a példa a kimeneti kötést MultiResponse tartalmazó objektum definíciója:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Ez a példa ASP.NET Core integrációt használ. Ha nem ASP.NET Core integrációt használ, HttpRequestHttpRequestData és IActionResultHttpResponseData-ra kell módosítania.
A függvény befejeződésekor a rendszer üzeneteket küld az üzenetsorba. A kimeneti kötés definiálásának módja a folyamatmodelltől függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
A kimeneti kötés definiálásának módja a Node.js modell verziójától függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
A kimeneti kötés definiálásának módja a Python modell verziójától függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
A kimeneti kötés definiálásának módja a Node.js modell verziójától függ. További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
A következő szempontokat kell figyelembe venni, amikor kötéseket ad hozzá egy függvényhez:
- A function.json konfigurációs fájllal függvényeket definiáló nyelvek esetében Visual Studio Code egyszerűsíti a kötések meglévő függvénydefiníciókhoz való hozzáadásának folyamatát. További információért lásd: Kapcsolja össze a függvényeket az Azure szolgáltatásokkal kötések használatával.
- Szolgáltatáshoz csatlakozó kötések hozzáadásakor olyan alkalmazásbeállítást is hozzá kell adnia, amely egy kapcsolati karakterlánc vagy felügyelt identitásra hivatkozik a local.settings.json fájlra. További információ: Az alkalmazásbeállítások helyi használata.
- Támogatott kötés hozzáadásakor a bővítményt már telepíteni kell, amikor az alkalmazás bővítménycsomagot használ. További információ: bővítménykötegek.
- Ha új kötéskiterjesztést igénylő kötést ad hozzá, a C#-projektben az adott kötésbővítményre is fel kell vennie egy hivatkozást.
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
További információ, beleértve a példa kötéskódra mutató hivatkozásokat, amelyekre hivatkozhat, olvassa el a Kötések hozzáadása függvényhez című témakört.
A Functions-futtatókörnyezet indítása
Mielőtt futtathatja vagy hibakeresésre használhatja a függvényeket a projektben, el kell indítania a Functions-gazdagépet a projekt gyökérkönyvtárából. A gazdagép a projekt összes függvényéhez engedélyezi az eseményindítókat. Ezzel a paranccsal indítsa el a helyi futtatókörnyezetet:
mvn clean package
mvn azure-functions:run
func start
npm install
npm start
Ezt a parancsot virtuális környezetben kell futtatni.
A Függvények gazdagép indításakor a projektben lévő függvények listáját adja ki, beleértve a HTTP által aktivált függvények URL-címeit is, például az alábbi példában:
Found the following functions: Host.Functions.MyHttpTrigger Job host started Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger
A függvények betöltése a projektkonfigurációtól függ. További információ: Függvény regisztrálása.
A függvények helyi futtatásakor vegye figyelembe az alábbi szempontokat:
Alapértelmezés szerint az engedélyezés helyileg nincs kényszerítve a HTTP-végpontok esetében. Ez azt jelenti, hogy a rendszer az összes helyi HTTP-kérést
authLevel = "anonymous"a következőképpen kezeli. További információ: Engedélyezési szint. A--enableAuthbeállítással megkövetelheti az engedélyezést, amikor helyileg futtatja. További információért lásdfunc start.A helyi Azurite emulátort akkor használhatja, ha helyileg futtat olyan függvényeket, amelyek hozzáférést igényelnek Azure Storage szolgáltatásokhoz (Queue Storage, Blob Storage és Table Storage), anélkül, hogy csatlakoznia kellene ezekhez a szolgáltatásokhoz a Azure. Helyi emuláció használatakor a helyi gazdagép (func.exe) elindítása előtt mindenképpen indítsa el az Azurite-ot. További információ: Helyi tároló emulációja.
- A helyi Azurite-emulációval eleget tehet a Python v2-feldolgozó tárolási követelményeinek.
A nem HTTP-függvényeket helyileg aktiválhatja anélkül, hogy élő szolgáltatáshoz csatlakozik. További információ: Helyi függvény futtatása.
Ha az Application Insights kapcsolati adatait a local.settings.json fájlba írja, a rendszer a helyi naplóadatokat az adott Application Insights-példányba írja. A helyi telemetriai adatok éles adatoktól való elkülönítéséhez érdemes lehet külön Application Insights-példányt használni a fejlesztéshez és teszteléshez.
- A Core Tools 1.x-es verziójának használatakor ehelyett a
func host startparancsot használva indítsa el a helyi futtatókörnyezetet.
Helyi függvény futtatása
A helyi Functions-gazdagép (func.exe) futtatásával mostantól aktiválhat egyes függvényeket a függvénykód futtatásához és hibakereséséhez. Az egyes függvények végrehajtásának módja az eseményindító típusától függ.
Feljegyzés
A jelen témakörben található példák a cURL eszközzel http-kéréseket küldenek a terminálról vagy egy parancssorból. Egy tetszőleges eszközzel HTTP-kéréseket küldhet a helyi kiszolgálónak. A cURL eszköz alapértelmezés szerint elérhető Linux-alapú rendszereken, valamint Windows 10 17063-as és újabb buildjein. Régebbi Windows verziók esetén először le kell töltenie és telepítenie a cURL eszközt.
A HTTP-eseményindítók indításakor http-kérést küldünk a helyi végpontnak és portnak a func.exe kimenetében látható módon, amely az alábbi általános formátummal rendelkezik:
http://localhost:<PORT>/api/<FUNCTION_NAME>
Ebben az URL-sablonban <FUNCTION_NAME> a függvény vagy útvonal neve, és <PORT> az a helyi port, amelyen func.exe figyel.
Ez a cURL-parancs például elindítja a MyHttpTrigger get kérés gyorsindítási függvényét a lekérdezési sztringben átadott névparaméterrel :
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
A példa ugyanazt a függvényt mutatja be, amelyet egy POST-kérelemből hívnak meg, a kérés törzsében átadva a name értéket, mind a Bash shell, mind a Windows parancssor számára bemutatva:
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"
A HTTP-végpontok helyi meghívásakor a következő szempontok érvényesek:
Böngészőből GET kéréseket kezdeményezhet, miközben adatokat ad át a lekérdezési sztringben. Minden más HTTP-metódushoz olyan HTTP-teszteszközt kell használnia, amely az adatokat is biztonságossá teszi. További információ: HTTP-teszteszközök.
Ügyeljen arra, hogy ugyanazt a kiszolgálónevet és portot használja, amelyet a Functions-gazdagép figyel. A függvénygazda indításakor létrehozott kimenetben egy ehhez hasonló végpont jelenik meg. Ezt az URL-címet az eseményindító által támogatott HTTP-metódussal hívhatja meg.
Közzététel az Azure-ba
A Azure Functions Core Tools háromféle üzembe helyezést támogat:
| Telepítési típus | Parancs | Leírás |
|---|---|---|
| Project fájlok | func azure functionapp publish |
A függvényprojekt-fájlokat közvetlenül a függvényalkalmazásban helyezi üzembe zip-alapú üzembe helyezéssel. |
| Azure Container Apps | func azurecontainerapps deploy |
Tárolóalapú függvényalkalmazás üzembe helyezése egy meglévő Container Apps-környezetben. |
| Kubernetes-klaszter | func kubernetes deploy |
Üzembe helyezi a Linux függvény-alkalmazást egyéni Docker-tárolóként egy Kubernetes-fürtön. |
Az Azure CLI vagy a Azure PowerShell helyben telepítve kell lennie ahhoz, hogy közzétehesse az Azure-ra a Core Tools-ból. Alapértelmezés szerint a Core Tools ezeket az eszközöket használja a Azure-fiókjával való hitelesítéshez.
Ha nincsenek telepítve ezek az eszközök, ehelyett érvényes hozzáférési jogkivonatot kell beszereznie, amelyet az üzembe helyezés során használhat. A hozzáférési jogkivonatot az --access-token beállítást használva a telepítési parancsokban használhatja.
Projektfájlok üzembe helyezése
A helyi kód Azure függvényalkalmazásban való közzétételéhez használja a func azure functionapp publish parancsot, ahogyan az alábbi példában is látható:
func azure functionapp publish <FunctionAppName>
Ez a parancs közzéteszi a projektfájlokat az aktuális könyvtárból <FunctionAppName> .zip üzembehelyezési csomagként. Ha a projekt kompilálást igényel, az üzembe helyezés során távolról történik.
Java a Maven használatával teszi közzé a helyi projektet az Azure-ra, nem a Core Tools segítségével. A projektjét közzétételéhez használja a következő Maven-parancsot az Azure-ra.
mvn azure-functions:deploy
A parancs futtatásakor Azure erőforrások jönnek létre a kezdeti üzembe helyezés során a pom.xml fájl beállításai alapján. További információ: A függvényprojekt üzembe helyezése Azure.
A helyi Go-kód Azure függvényalkalmazásban való közzétételéhez használja a func azure functionapp publish parancsot, ahogyan az alábbi példában is látható:
func azure functionapp publish <FunctionAppName>
Ez a parancs létrehozza, csomagolja és üzembe helyezi a Go-projektet.<FunctionAppName>
Az ilyen típusú üzembe helyezésre a következő szempontok vonatkoznak:
A közzététel felülírja a távoli függvényalkalmazás üzembe helyezésének meglévő fájljait.
Már létre kellett hoznia egy függvényalkalmazást az Azure-előfizetésében. A Core Tools üzembe helyezi a projektkódot ebben a függvényalkalmazás-erőforrásban. Ha tudni szeretné, hogyan hozhat létre függvényalkalmazást a parancssorból vagy a terminálablakból a Azure CLI vagy a Azure PowerShell, olvassa el a Azure CLI Minták című témakört. Ezeket az erőforrásokat is létrehozhatja a Azure portálon. Hibaüzenetet kap, amikor egy olyan
<FunctionAppName>-re próbál közzétenni, amely nem létezik az előfizetésében.A projektmappák tartalmazhatnak nyelvspecifikus fájlokat és könyvtárakat, amelyeket nem szabad közzétenni. A kizárt elemek egy .funcignore fájlban jelennek meg a gyökérprojekt mappájában.
A projekt alapértelmezés szerint úgy van üzembe helyezve, hogy az üzembe helyezési csomagból fusson. Az ajánlott üzembe helyezési mód letiltásához használja a
--noziplehetőséget.A rendszer távoli buildelést végez lefordított projekteken. Ez a beállítással
--no-buildszabályozható.Ezzel a
--publish-local-settingsbeállítással automatikusan létrehozhat alkalmazásbeállításokat a függvényalkalmazásban a local.settings.json fájl értékei alapján.A függvényalkalmazás egy adott elnevezett pontjára való közzétételhez használja a
--slotlehetőséget.
Tárolók üzembe helyezése
A Core Tools lehetővé teszi a kontainerizált függvényalkalmazás üzembe helyezését felügyelt Azure Container Apps környezetekben és a felügyelt Kubernetes-fürtökön egyaránt.
A következő func azurecontainerapps deploy paranccsal helyezzen üzembe egy meglévő tárolórendszerképet egy Container Apps-környezetben:
func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]
Ha Azure Container Apps környezetben helyez üzembe, a következő szempontokat kell figyelembe vennie:
A környezetnek és a tárfióknak már léteznie kell. A megadott tárfiók csatlakozási karakterláncát az üzembe helyezett függvényalkalmazás használja.
A Container Appsben való üzembe helyezéskor nem kell külön függvényalkalmazás-erőforrást létrehoznia.
A tárolási kapcsolati láncok és más szolgáltatás-hitelesítések fontos titkok. Győződjön meg arról, hogy a szkriptfájlokat
func azurecontainerapps deploybiztonságosan tárolja, és ne tárolja őket nyilvánosan elérhető forrásvezérlő rendszerekben. A local.settings.json fájlt titkosíthatja a további biztonság érdekében.
További információért lásd: Azure Functions üzemeltetése Azure Container Apps-ben.
Alkalmazásbeállítások helyi használata
Amikor a függvényalkalmazás Azure fut, a függvények által megkövetelt beállítások az alkalmazásbeállításokban titkosítottak. A helyi fejlesztés során ezeket a beállításokat a rendszer ehelyett hozzáadja a Values gyűjteményhez alocal.settings.json fájlban. A local.settings.json fájl a helyi fejlesztési eszközök által használt beállításokat is tárolja.
A Values gyűjtemény elemei a projekt local.settings.json fájljában a függvényalkalmazás alkalmazási beállításaiban Azure lévő elemek tükrözésére szolgálnak.
A helyi beállításfájl használatakor a következő szempontok érvényesek:
Mivel a local.settings.json tartalmazhat titkos kódokat, például kapcsolati sztringeket, soha ne tárolja távoli adattárban. A Core Tools segítségével titkosíthatja ezt a helyi beállításfájlt a nagyobb biztonság érdekében. További információt a Helyi beállítások fájlban talál. A local.settings.json fájlt a további biztonság érdekében is titkosíthatja.
Alapértelmezés szerint a helyi beállítások nem lesznek automatikusan migrálva, amikor a projektet közzéteszik Azure. A projektfájlok közzétételekor használja a
--publish-local-settingslehetőséget, hogy ezek a beállítások hozzá legyenek adva a függvényalkalmazáshoz Azure. A szakasz értékeiConnectionStringssoha nem lesznek közzétéve. A beállításokat bármikor feltöltheti a local.settings.json fájlból .A local.settings.json fájlban található beállításokat az Azure-ban található függvényalkalmazás beállításaival veheti át és írhatja felül. További információ: Alkalmazásbeállítások letöltése.
- A függvényalkalmazás beállításainak értékei környezeti változókként is olvashatók a kódban. További információ: Környezeti változók.
- A függvényalkalmazás beállításainak értékei környezeti változókként is olvashatók a kódban. További információ: Környezeti változók.
- A függvényalkalmazás beállításainak értékei környezeti változókként is olvashatók a kódban. További információ: Környezeti változók.
- A függvényalkalmazás beállításainak értékei környezeti változókként is olvashatók a kódban. További információ: Környezeti változók.
- A függvényalkalmazás beállításainak értékei környezeti változókként is olvashatók a kódban. További információ: Környezeti változók.
- Ha nincs érvényes tárolási kapcsolati karakterlánc beállítva
AzureWebJobsStorage, és nem használnak helyi tárolóemulátort, egy hibaüzenet jelenik meg. A Core Tools használatával letöltést végezhet egy adott kapcsolati karakterlánc bármelyik Azure Storage-fiókjából.
Alkalmazásbeállítások letöltése
A projekt gyökérkönyvtárából használja az alábbi parancsot az összes alkalmazásbeállítás letöltéséhez az myfunctionapp12345 alkalmazásból az Azure-on.
func azure functionapp fetch-app-settings myfunctionapp12345
Ez a parancs felülírja a local.settings.json fájl összes meglévő beállítását Azure értékeivel. Ha még nincs jelen, a rendszer új elemeket ad hozzá a gyűjteményhez. További információkért tekintse meg a func azure functionapp fetch-app-settings parancsot.
Tárolókapcsolati string letöltése
Akkor Core Tools megkönnyíti azoknak a tárfiókoknak a kapcsolatírásának lekérését, amelyekhez hozzáfér. A projekt gyökérkönyvtárából használja a következő parancsot a kapcsolat karakterlánc letöltéséhez egy mystorage12345 nevű tárolófiókból.
func azure storage fetch-connection-string mystorage12345
Ez a parancs hozzáad egy mystorage12345_STORAGE nevű beállítást a local.settings.json fájlhoz, amely tartalmazza a mystorage12345 fiók kapcsolati karakterláncát. További információkért tekintse meg a func azure storage fetch-connection-string parancsot.
A fejlesztés során nagyobb biztonság érdekében fontolja meg a local.settings.json fájl titkosítását.
Helyi beállítások feltöltése a Azure
Ha a --publish-local-settings beállítás használata nélkül teszi közzé a projektfájlokat Azure, a local.settings.json fájl beállításai nincsenek beállítva a függvényalkalmazásban. A func azure functionapp publish parancsot bármikor újra futtathatja --publish-settings-only opción keresztül, hogy csak a beállításokat töltse fel, anélkül hogy a projektfájlokat újra közzé kellene tennie.
Az alábbi példa csak a Values gyűjtemény beállításait tölti fel a local.settings.json fájlból Azure myfunctionapp12345 nevű függvényalkalmazásba:
func azure functionapp publish myfunctionapp12345 --publish-settings-only
A helyi beállításfájl titkosítása
A kapcsolati sztringek és más értékes adatok biztonságának javítása érdekében a Core Tools lehetővé teszi a local.settings.json fájl titkosítását. A fájl titkosításakor a futtatókörnyezet szükség esetén automatikusan visszafejti a beállításokat, ugyanúgy, mint a Azure alkalmazásbeállításaival. A helyileg titkosított fájlokat is visszafejtheti a beállítások használatához.
A projekt helyi beállításfájljának titkosításához használja az alábbi parancsot:
func settings encrypt
A titkosított helyi beállítás visszafejtéséhez használja az alábbi parancsot, hogy dolgozhasson vele.
func settings decrypt
A beállításfájl titkosítása és visszafejtése után a fájl IsEncrypted beállítása is frissül.
Kötésbővítmények konfigurálása
Függvények eseményindítói és kötései .NET bővítménycsomagokként vannak implementálva. Ahhoz, hogy egy adott kötésbővítményt használhasson, a bővítményt telepíteni kell a projektben.
Ez a szakasz nem vonatkozik a Functions-futtatókörnyezet 1.x verziójára. Az 1.x verzióban támogatott kötések szerepeltek az alapvető termékbővítményben.
C#-osztálykódtár-projektek esetén adjon hozzá hivatkozásokat az adott NuGet-csomagokra a függvények által igényelt kötésbővítményekhez. A C#-szkript (.csx) projektnek bővítménykötegeket kell használnia.
A Functions bővítménycsomagokat biztosít, hogy megkönnyítse a projekt kötésbővítményeinek használatát. A host.json fájlban verziószámozott és definiált bővítménycsomagok az alkalmazás kompatibilis kötésbővítmény-csomagjainak teljes készletét telepítik. A host.json fájlban már engedélyezve kell lennie a bővítménykötegeknek. Ha valamilyen okból hozzá kell adnia vagy frissítenie kell a bővítménycsomagot a host.json fájlban, tekintse meg a bővítménycsomagokat.
Ha nem támogatott csomagban lévő kötésbővítményt vagy bővítményverziót kell használnia, manuálisan kell telepítenie a bővítményeket. Ilyen ritka forgatókönyvek esetén lásd a func extensions install parancsot.
A Core Tools verziói
A Azure Functions Core Tools főverziói a Azure Functions-futtatókörnyezet adott főverzióihoz vannak csatolva. A Core Tools 4.x-es verziója például támogatja a Functions-futtatókörnyezet 4.x verzióját. Ez a verzió a Functions-futtatókörnyezet és a Core Tools ajánlott főverziója. A Core Tools legújabb kiadási verzióját a Azure Functions Core Tools-adattárban határozhatja meg.
A Core Tools 4.0.6517-es verziójától kezdve a folyamatban lévő modellprojektek version 4.5.0-s vagy újabb verziójára kell hivatkoznia Microsoft.NET.Sdk.Functions. Ha egy korábbi verziót használ, a func start parancs hibaüzenetet ad.
Futtassa a következő parancsot az aktuális Core Tools-telepítés verziójának meghatározásához:
func --version
Ha másként nem jelezzük, a cikkben szereplő példák a 4.x verzióra mutatnak.
A Core Tools-telepítésekre a következő szempontok vonatkoznak:
A Core Tools csak egy verzióját telepítheti egy adott számítógépre.
A Core Tools legújabb verziójára való frissítéskor ugyanazt a módszert kell használnia, amelyet az eredeti telepítéshez használt a frissítés végrehajtásához. Ha például MSI-t használt a Windows, távolítsa el az aktuális MSI-t, és telepítse a legújabbat. Vagy ha npm-et használt, futtassa újra a
npm install command.A Core Tools 2.x és 3.x verzióját a Functions-futtatókörnyezet 2.x és 3.x verziójával használták, amelyek elérték a támogatásuk megszűnését. További információ: Azure Functions futtatókörnyezeti verziók áttekintése.
- A Functions Runtime 1.x-es verziójának használatakor a Core Tools 1.x-es verziója szükséges, amely továbbra is támogatott. A Core Tools ezen verziója csak helyileg futtatható Windows számítógépeken. Ha jelenleg az 1.x verzión fut, érdemes megfontolnia az alkalmazás áttelepítését a 4.x verzióra.
Kapcsolódó tartalom
Függvénykód létrehozása és üzembe helyezése Azure Visual Studio Code - Azure Functions Core Tools on GitHub
- Hiba vagy szolgáltatáskérés küldése