8000 Functions G4 by gewenyu99 · Pull Request #398 · appwrite/docs · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Sep 29, 2023. It is now read-only.

Functions G4 #398

Merged
merged 89 commits into from
Aug 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
a0ebf26
prepare index for Function G4
Jun 1, 2023
3ee6a1f
Fix reference index, change guide index
Jun 1, 2023
d491591
Change debugging and logging to just debugging
Jun 1, 2023
4537a2b
Init overview page
Jul 17, 2023
52bdc62
Reorder index, add shell for quickstart example
Jul 18, 2023
6b2da17
Added scaffolding
Jul 18, 2023
6fbc33a
Add node js example
Jul 21, 2023
3610aad
More shell for the functions
Jul 24, 2023
3858af8
Add some request and response examples
Jul 25, 2023
71439b8
Adds recipes page
Jul 26, 2023
16267be
Fill in intro of recipes
Jul 26, 2023
9819ffb
Filled in more information from development to runtimes and deployment
Jul 26, 2023
db582b5
Add manual install command
Jul 27, 2023
4a56433
Add git instructions
Jul 30, 2023
db2286b
feat: translate json response snippets
loks0n Jul 31, 2023
b5ec443
feat: js currency convert recipe
loks0n Aug 1, 2023
5741154
added todo comments for develop page
Aug 1, 2023
29fc3c1
Fix up deployment docs
Aug 1, 2023
31c7c44
Add comments and todo tags for all pages in Functions
Aug 1, 2023
d9c2d5d
Add clarification that you need to run deploy command next to appwrit…
Aug 2, 2023
2296a8b
feat: port functions recipes
loks0n Aug 7, 2023
a6e319c
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
loks0n Aug 7, 2023
6617811
feat: more snippet translations 😊
loks0n Aug 7, 2023
1e34f71
feat: destructuring examples
loks0n Aug 7, 2023
30e2d29
feat: env vars
loks0n Aug 7, 2023
df07548
feat: discussion
loks0n Aug 8, 2023
4502515
Delete a file accidentally committed.
Aug 8, 2023
ac6deba
Add responses
Aug 9, 2023
b4c0b27
feat: function execution examples
loks0n Aug 10, 2023
ed8c6a2
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
loks0n Aug 10, 2023
aaf8168
feat: formatting improvements
loks0n Aug 10, 2023
75600e0
feat: req object
loks0n Aug 10, 2023
01d5a4c
feat: dependency table
loks0n Aug 10, 2023
f6d14bf
feat: port response helpers
loks0n Aug 10, 2023
0f2d54a
Update app/views/docs/functions-develop.phtml
Aug 10, 2023
0ea520d
Update app/views/docs/functions-develop.phtml
Aug 10, 2023
3826826
Update app/views/docs/functions-develop.phtml
Aug 10, 2023
54615e4
addresses Steven's comments
Aug 10, 2023
e78f4be
feat: logging
loks0n Aug 11, 2023
c1f4e3b
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
loks0n Aug 11, 2023
e6bbd1d
feat: functions with Appwrite API auth
loks0n Aug 11, 2023
9a76ab5
feat: appwrite with jw
loks0n Aug 11, 2023
afd026e
feat: standardise func exec examples
loks0n Aug 11, 2023
3dc7180
feat: multiple files, client sdk executions
loks0n Aug 14, 2023
02574b2
feat: voting system recipe
loks0n Aug 14, 2023
a11daf8
Add information about environment variables that now became headers
Aug 14, 2023
d3645b2
Move upgrade checklist to develop
Aug 14, 2023
1ffc8e2
Add cloud/self-hosted tags as labels in runtimes
Aug 14, 2023
ca02087
Some minor improvements
Aug 14, 2023
dbabc60
Moved a p tag
Aug 14, 2023
54097a4
fix: remove vscode settings
loks0n Aug 15, 2023
b04e153
sell functions better in overview
Aug 15, 2023
94b8c5a
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
Aug 15, 2023
f088a1e
Add headers + env vars
Aug 17, 2023
2cd56dd
Improve overview page for functions and rename recipes to examples
Aug 17, 2023
e7b9b1c
Fix style in index and add alt text to functions
Aug 17, 2023
780b5e4
Talk about JWT and trigger headers
Aug 18, 2023
b2902ed
Improve formatting and arrange items more logically
Aug 21, 2023
e4e8b0a
fix view import
Aug 23, 2023
75e79cb
fix view import + improve env var examples
Aug 23, 2023
0f51947
Add Domain name steps in deploy
Aug 23, 2023
ab0cab2
Fix some wrong links
Aug 23, 2023
4d54192
deno cache command fixed
Aug 23, 2023
86d262a
feat: better functions error handling
loks0n Aug 23, 2023
4548a4d
fix: await document create
loks0n Aug 23, 2023
3f57c8d
Update app/views/docs/functions-deploy.phtml
Aug 24, 2023
c0e4011
Add entry file and html tags got deno
Aug 24, 2023
e1681af
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
Aug 24, 2023
c6e548c
add debug and redeploy
Aug 24, 2023
8337b4e
Fix modal text
Aug 24, 2023
28cd6fe
feat: simplify function examples
loks0n Aug 24, 2023
a1c0aac
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
loks0n Aug 24, 2023
9673f04
feat: html form function example
loks0n Aug 24, 2023
8872899
Runtimes merged on one line
Aug 26, 2023
4de62dc
Merge branch 'functions-g4' of https://github.com/appwrite/docs into …
Aug 26, 2023
29f897f
Merge branch '1.4.x' into functions-g4
Aug 26, 2023
77337c1
Fix response code examples
Aug 26, 2023
7228e69
Add link to Destructuring Assignment
Aug 26, 2023
7a24d8e
ChatGPT reviewed grammar and spelling:
Aug 26, 2023
e3683ed
PR review changes
Meldiron Aug 27, 2023
67f2c43
Fix console name spelling
Meldiron Aug 27, 2023
870726e
Update app/views/docs/functions.phtml
Aug 27, 2023
a84c565
Apply suggestions from code review
Aug 27, 2023
f70b767
Address matej's review comments
Aug 27, 2023
7a307fb
Fix runtimes by showing only cloud tags beside relevant items + retur…
Aug 27, 2023
e9fb637
Improve SDK function execute code examples
Meldiron Aug 27, 2023
e22eee1
Address Eldad's comments
Aug 27, 2023
8d9be11
use enabled instead of supported in migrations
Aug 27, 2023
dd7fe4a
Merge branch '1.4.x' into functions-g4
Aug 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/views/docs/authentication-security.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,16 @@
<h2><a href="#password-history" id="password-history">Password History</a></h2>
<p>Password history prevents users from reusing recent passwords. This protects user accounts from security risks by enforcing a new password every time it's changed.</p>

<p>Password history can be enabled in the Auth service's <b>Security</b> tab on the Appwrite console. You can choose how many previous passwords to remember up to a maximum of 20 and block users from reusing them.</p>
<p>Password history can be enabled in the Auth service's <b>Security</b> tab on the Appwrite Console. You can choose how many previous passwords to remember up to a maximum of 20 and block users from reusing them.</p>

<h2><a href="#password-dictionary" id="password-dictionary">Password Dictionary</a></h2>
<p>Password dictionary protects users from using bad passwords. It compares the user's password to the <a href="https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt">10,000</a> most common passwords and throws an error if there's a match. Together with <a href="/docs/rate-limits">rate limits</a>, password dictionary will significantly reduce the chance of a malicious actor from guessing user passwords.</p>

<p>Password dictionary can be enabled in the Auth service's <b>Security</b> tab on the Appwrite console.</p>
<p>Password dictionary can be enabled in the Auth service's <b>Security</b> tab on the Appwrite Console.</p>

<h2><a href="#personal-information" id="personal-information">Personal Data</a></h2>
<p>
Encourage passwords that are hard to guess by disallowing users to pick passwords that contain personal data.
Personal data includes the user's name, email, and phone number.
</p>
<p>Disallowing personal data can be enabled in the Auth service's <b>Security</b> tab on the Appwrite Console.</p>
<p>Disallowing personal data can be enabled in the Auth service's <b>Security</b> tab on the Appwrite Console.</p>
21 changes: 17 additions & 4 deletions app/views/docs/command-line-deployment.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The Apprite CLI allows you to create and deploy databases, collections, buckets,

<h2><a href="/docs/command-line-deployment#deployFunctions" id="deployFunctions">Deploying Appwrite Functions</a></h2>

<p>The CLI also handles the creation and deployment of Appwrite Functions. You can initialize a new function using:</p>
<p>The CLI also handles the creation and deployment of Appwrite Functions. Run this command in the folder holding your <code>appwrite.json</code> file.</p>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="CLI">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite init function
Expand All @@ -36,7 +36,9 @@ The Apprite CLI allows you to create and deploy databases, collections, buckets,
✓ Success</code></pre>
</div>

<p>This command creates a new function <b>My Awesome Function</b&g 8000 t; in your current Appwrite project and also creates a template function for you to get started. You can now deploy this function using: </p>
<p>This command creates a new function <b>My Awesome Function</b> in your current Appwrite project and also creates a template function for you to get started.</p>

<p>You can now deploy this function by running this command in the folder holding your <code>appwrite.json</code> file.</p>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="CLI">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite deploy function
Expand All @@ -47,7 +49,16 @@ The Apprite CLI allows you to create and deploy databases, collections, buckets,

<h2><a href="/docs/command-line-deployment#deployCollections" id="deployCollections">Deploying Databases and Collections</a></h2>

<p>The Appwrite CLI also helps you migrate your project's databases and collections from a development server to a production server. You can deploy all the databases and collections in your <a href="/docs/command-line-deployment#appwriteJSON">appwrite.json</a> file using:</p>
<p>The Appwrite CLI also helps you deploy your project's databases and collections schema from one project to another.</p>

<p>
You can deploy all the databases and collections in your <a href="/docs/command-line-deployment#appwriteJSON">appwrite.json</a> file by running this command in the folder holding your <code>appwrite.json</code> file.
</p>

<p>
The deploy command will overwrite existing collections causing existing data to be lost.
If you already have data in your project, you will need to write your own migration script using a Server SDK instead of using the CLI.
</p>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="CLI">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite deploy collection</code></pre>
Expand All @@ -57,15 +68,17 @@ The Apprite CLI allows you to create and deploy databases, collections, buckets,

<p>The Appwrite CLI can create teams to organize users. Teams can be used to grant access permissions to a group of users. <a href="/docs/permissions#permission-roles">Learn more about permissions</a>.</p>

<p>Deploy teams by running this command in the folder holding your <code>appwrite.json</code> file. </p>
<div class="ide margin-bottom" data-lang="bash" data-lang-label="CLI">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite deploy team</code></pre>
</div>


<h2><a href="/docs/command-line-deployment#deployBucket" id="deployBucket">Deploying Storage Buckets</a></h2>

<p>The Appwrite CLI allows you to configure and deploy buckets across projects. All the bucket's settings are available through the <a href="/docs/command-line-deployment#appwriteJSON">appwrite.json</a> file.</p>

<p>Deploy storage buckets by running this command in the folder holding your <code>appwrite.json</code> file. </p>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="CLI">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite deploy bucket</code></pre>
</div>
6D47 Expand Down
2 changes: 1 addition & 1 deletion app/views/docs/custom-domains.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ $dns = [

<h2><a href="/docs/custom-domains#verifyDomain" id="verifyDomain">Confirm and Verify Your Domain</a></h2>

<p>Once you added your new CNAME record to your DNS settings, you will need to verify your new domain name from your Appwrite console. Enter your custom domains tab from your project settings, click the DNS Settings link and click on the 'Confirm and Verify" button. If everything went well, Appwrite will approve your domain and generate a new SSL certificate for it in the background.</p>
<p>Once you added your new CNAME record to your DNS settings, you will need to verify your new domain name from your Appwrite Console. Enter your custom domains tab from your project settings, click the DNS Settings link and click on the 'Confirm and Verify" button. If everything went well, Appwrite will approve your domain and generate a new SSL certificate for it in the background.</p>

<h2><a href="/docs/custom-domains#enjoySSLCert" id="enjoySSLCert">Enjoy your Free SSL Certificate</a></h2>

Expand Down
2 changes: 1 addition & 1 deletion app/views/docs/email-delivery.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,4 @@ The next possible source of error is the configuration in your .env file. Make s
<pre class="line-numbers"><code class="prism language-bash" data-prism>docker compose up -d --build --force-recreate</code></pre>
</div>

<p>Now you can head over to your Appwrite console, logout from your account and try to recover your password or send invites to other team members from your Appwrite console using your newly configured SMTP provider.</p>
<p>Now you can head over to your Appwrite Console, logout from your account and try to recover your password or send invites to other team members from your Appwrite Console using your newly configured SMTP provider.</p>
216 changes: 216 additions & 0 deletions app/views/docs/functions-deploy.phtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
<p>
Appwrite Functions are mini-applications in Appwrite with their own endpoints.
Each function can have many deployments, which can be thought of as versions of the mini-application.
</p>

<p>
Functions can be created and deployed in different ways to meet your unique development habits.
You can automatically deploy Appwrite Functions from source control, build your own deployment pipelines using the Appwrite CLI, or upload code files manually.
Here's everything you need to know to deploy your first Appwrite Function.
</p>

<h2><a href="#git" id="git">Git</a></h2>
<p>
The recommended way to manage your Appwrite Function deployments is to use a version control system, like Git.
This offers simple versioning and collaboration that will easily fit into the rest of your development workflow.
</p>

<h3>Create Function</h3>
<p>Before deploying your function with Git, create a new function attached to your Git repo.</p>
<ol class="margin-top margin-bottom-large text-size-normal">
<li>
Navigate to <b>Functions</b> from the side bar of the Appwrite Console.
</li>
<li>
Click <b>Create function</b>.
</li>
<li>
When asked to <b>Choose your source</b>, under <b>Connect Git repository</b>, select your provider.
</li>
<li>
Search for the Git repository that hold your function and click <b>connect</b>.
</li>
<li>
Select a production branch. New commits pushed to the production branch will be <b>automatically activated</b>. Commits to any other branch will still be deployed, but not be activated.
</li>
<li>
Input the root directory of the function inside the repository. If you have only one function in your repository, you can leave this empty. If you have multiple, root directory should point to the folder of your function. This should be the directory in which your custom build commands can run successfully. It also improves efficiency because only what's necessary is cloned.
</li>
<li>
If you don't want deploy comments to be made on your pull requests or commits, select <b>Silent mode</b>.
</li>
<li>
Name your function, select a runtime that matches your function, and enter entrypoint, relative to the root directory from the previous step. Entrypoint is path to the main file of your function, which exports the function to be run on every execution.
</li>
<li>
If you have build steps, like installing dependencies, input the commands into the <b>Build settings</b> heading's <b>Command</b> field.
You can combine multiple commands using <code>&&</code>, such as <code>npm install && npm build</code>.
For compiled languages you don't need to worry about installing dependencies, as that's done automatically during compilation step.
</li>
<li>
Finally, configure the execute permissions of the function. For security, only provide execute permissions to the necessary roles.
</li>
</ol>

<h3>Deploy</h3>
<ol class="margin-top margin-bottom-large text-size-normal">
<li>
Using Git, checkout the branch you configured as production branch when creating the Appwrite Function.
</li>
<li>
Create a new commit.
</li>
<li>
Push your new commit.
</li>
<li>
A new deployment will be automatically created, built and activated.
</li>
</ol>

<h2><a href="#cli" id="cli">CLI</a></h2>
<div class="notice margin-bottom-small">
<h2>CLI Setup</h2>
<p>Before you can deploy with the Appwrite CLI, make sure you've <a href="docs/command-line">installed and initialized</a> the CLI.</p>
</div>
<p>
To deploy with the Appwrite CLI, your function must be added to <code>appwrite.json</code> that tells the CLI where each function is stored.
To ensure the folder structure is setup correctly and <code>appwrite.json</code> is configured correctly, use the appwrite init function method to create a starter function, then paste in your function code.
</p>

<p>
Run the following command in the folder holding the <code>appwrite.json</code> file.
</p>
<div class="ide margin-bottom" data-lang="bash" data-lang-label="Bash">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite init function</code></pre>
</div>

<p>
Give your function a name and choose your runtime.
This will create a new starter function in the current directory and also add it to your <code>appwrite.json</code> file.
</p>

<p>
Edit the automatically generated code and add dependencies to the dependency files of your language or framework.
Then, deploy the function using the following command.
</p>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="Bash">
<pre class="line-numbers"><code class="prism language-bash" data-prism>appwrite deploy function</code></pre>
</div>

<div class="notice">
<h2>Overwrite Warning</h2>
<p>
If you made changes in the Appwrite Console that is different from your <code>appwrite.json</code>,
using the CLI deploy command will overwrite your console changes, such as execution schedule or permissions.
Update your <code>appwrite.json</code> manually before deploying to avoid overwriting changes.
</p>
</div>

<h3>Manual Deployment</h3>
<p>You can upload your functions to be deployed using the Appwrite Console. The example below shows a simple Node.js function, but the same idea applies to any other language.</p>
<div class="ide margin-bottom">
<pre class="line-numbers"><code class="prism" data-prism>.
├── package.json
└── index.js
</code></pre>
</div>

<p>First, navigate inside the folder that contains your dependency file. Package your code files into the <code>.tar.gz</code> format with this tar command:</p>

<ul class="phases clear" data-ui-phases>
<li>
<h3>Unix</h3>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="Bash">
<pre class="line-numbers"><code class="prism language-bash" data-prism>tar --exclude code.tar.gz -czf code.tar.gz .</code></pre>
</div>
</li>
<li>
<h3>CMD</h3>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="CMD">
<pre class="line-numbers"><code class="prism language-bash" data-prism>tar --exclude code.tar.gz -czf code.tar.gz .</code></pre>
</div>
</li>
<li>
<h3>PowerShell</h3>

<div class="ide margin-bottom" data-lang="bash" data-lang-label="PowerShell">
<pre class="line-numbers"><code class="prism language-bash" data-prism>tar --exclude code.tar.gz -czf code.tar.gz .</code></pre>
</div>
</li>
</ul>

<p>Next, navigate to your Appwrite Console and upload the function.</p>

<ol class="margin-top margin-bottom-large text-size-normal">
<li class="margin-bottom-small">Navigate to the function you want to deploy.</li>
<li class="margin-bottom-small">Click <i class="icon-plus"></i> <b>Create deployment</b>.</li>
<li class="margin-bottom-small">Select the <b>Manual</b> tab.</li>
<li class="margin-bottom-small">Input the entry point of your function under <b>Entrypoint</b>. For the example above, it would be <code>index.js</code>.</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's also mention that users can also specify build commands.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point

<li class="margin-bottom-small">Upload <code> code.tar.gz</code>.</li>
<li class="margin-bottom-small">Select <b>Activate deployment after build</b> to use your new deployment.</li>
<li class="margin-bottom-small">Click <b>Create</b> to deploy your function.</li>
</ol>

<h2><a href="#domains" id="domains">Domains</a></h2>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm a bit concerned here. Should this be in deploy, or execute section? 🤔
On one hand, it makes sense here as someone deploying their function to production needs this information.
On the other hand, we talk about how to execute using domain in execute page. So it might make sense there as well.

Your call, just wanted to bring in the chaos 😈

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both

<p>
Each deployed function can have its own domain.
By default, one is generated for each of your functions.
You can find the generated domain for your function like this.
</p>

<ol class="margin-top margin-bottom-large text-size-normal">
<li class="margin-bottom-small">Navigate to the Appwrite Console's <b>Functions</b> page.</li>
<li class="margin-bottom-small">Navigate to the <b>Domains</b> tab.</li>
<li class="margin-bottom-small">In the table, you'll find a link formatted similar to <code>https://64d4d22db370ae41a32e.appwrite.global</code>. This is your generated domain.</li>
</ol>

<p>
You can also add a custom domain, which allows you to build custom REST APIs using nothing but Appwrite Functions.
To do this, you need to first buy and register a domain.
After obtaining a domain, follow these steps to add the domain to Appwrite.
</p>

<ol class="margin-top margin-bottom-large text-size-normal">
<li class="margin-bottom-small">Navigate to the Appwrite Console's <b>Functions</b> page.</li>
<li class="margin-bottom-small">Navigate to the <b>Domains</b> tab.</li>
<li class="margin-bottom-small">Click on <b>Create domain</b>.</li>
<li class="margin-bottom-small">Input your domain in the <b>Domain</b> input field and click <b>Next</b>.</li>
<li class="margin-bottom-small">Copy the <b>CNAME</b> record provided to you, and add it to your domain registrar.</li>
<li class="margin-bottom-small">Click <b>Go to console</b> and wait for the domain name to be verified and certificate to generate.</li>
</ol>

<p>
DNS records can take up to 48 hours to propagate after they're added.
Please retry verification over the next 48 hours.
If the domain verification still fails and you have confirmed DNS records are added correctly, please contact support.
</p>

<h2><a href="#debugging" id="debugging">Debugging Build</a></h2>
<p>After deploying a function, you can find the status of the deployment and build logs in the Appwrite Console.</p>
<ol class="margin-top margin-bottom-large text-size-normal">
<li>In Appwrite Console, navigate to <b>Functions</b>.</li>
<li>Click to open a function you wish to inspect.</li>
<li>Under the <b>Deployments</b> tab, you'll find the status of the current active deployment and previous inactive deployments.</li>
<li>You can access build logs for the active deployment by clicking the <b>Build logs</b> button. You can click on an inactive function's three dots button to find their build logs.</li>
</ol>

<h2><a href="#redeploy" id="redeploy">Redeploy Builds</a></h2>
<p>
After updating the configuration of your Appwrite Function, you need to redeploy your function for the changes to take effect.
You can also redeploy builds to retry failed builds.
</p>
<ol class="margin-top margin-bottom-large text-size-normal">
<li>In Appwrite Console, navigate to <b>Functions</b>.</li>
<li>Click to open a function you wish to inspect.</li>
<li>Under the <b>Deployments</b> tab, you'll find the status of the current active deployment.</li>
<li>You can redeploy by clicking the triple-dots beside an execution, and hitting the <b>Redeploy</b> button.</li>
</ol>
<p>
The redeployment behavior varies depending on how the initial deployment is created.
For Git deployments, redeploy uses the same commit hash but updated function settings.
For manual and CLI deployments, redeploy uses previously updated code but updated function settings.
</p>
Loading
0