- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 HTTP 触发器函数部署到 Azure Function,但是当我尝试访问 process.env
中的条目时,它返回 undefined
。它可以在本地模拟器中运行,但在部署到 Azure 上时不能运行。
我用一个非常简单的 HTTP 函数对其进行了测试。
import { AzureFunction, Context, HttpRequest } from "@azure/functions";
const httpTrigger: AzureFunction = async function (
context: Context,
req: HttpRequest
): Promise<void> {
context.log(process.env.GCP_SERVICE_ACCOUNT_EMAIL);
context.res = {
body: process.env.GCP_SERVICE_ACCOUNT_EMAIL,
};
};
export default httpTrigger;
当本地运行时,它会输出local.settings.json
中设置的值
[2021-09-11T13:41:27.737Z] Executing 'Functions.HttpTrigger' (Reason='This function was programmatically called via the host APIs.', Id=b9a303aa-5d14-403c-b841-4851f00beb65)
[2021-09-11T13:41:27.768Z] <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d2a1b7a0a4bbb1b78db3b1b1bda7bca692bebdb1b3befca1b7a6a6bbbcb5a1fcb8a1bdbc" rel="noreferrer noopener nofollow">[email protected]</a>
[2021-09-11T13:41:27.848Z] Executed 'Functions.HttpTrigger' (Succeeded, Id=b9a303aa-5d14-403c-b841-4851f00beb65, Duration=126ms)
但是当在 Azure 上运行时,它输出未定义
(来自 Azure 门户中的“监视器”>单个函数的日志)
2021-09-11T13:26:40Z [Information] HTTP trigger function processed a request.
2021-09-11T13:26:40Z [Information] undefined
(我通过门户中的 URL 运行它,响应为 500
)
process.env
(在 Azure 上)我很好奇它会影响其他环境,所以我尝试注销整个 process.env
context.log(process.env)
如您所见,不存在任何自定义环境。 (我省略了一些值)
2021-09-11T13:26:40Z [Information] HTTP trigger function processed a request.
2021-09-11T13:26:40Z [Information] { ServiceName: 'service',
PWD: '/',
Fabric_NetworkingMode: 'Other',
Fabric_Id: '',
ASPNETCORE_URLS: 'http://localhost:9091',
AzureWebJobsScriptRoot: '/home/site/wwwroot',
Fabric_ServiceName: 'service',
CONTAINER_NAME: '',
Fabric_Epoch: '',
SUDO_UID: '0',
Fabric_NodeIPOrFQDN: '',
HOST_VERSION: '3.1.4.0',
MESH_INIT_URI: '',
DOTNET_USE_POLLING_FILE_WATCHER: 'true',
SHLVL: '0',
Fabric_ApplicationName: '',
Fabric_CodePackageName: '',
Fabric_ReplicaId: '',
SUDO_COMMAND:
'/azure-functions-host/Microsoft.Azure.WebJobs.Script.WebHost',
Location: '',
WEBSITE_HOME_STAMPNAME: '',
ASPNETCORE_VERSION: '3.0.0',
ResourceGroupName: '',
TERM: 'xterm',
languageWorkers__python__defaultRuntimeVersion: '3.6',
HOME: '/home',
LANG: 'C.UTF-8',
Fabric_ServiceDnsName: '',
LocalSitePackagesPath: '',
CodePackageName: '',
CONTAINER_IMAGE_URL: '',
SubscriptionId:
'',
SUDO_GID: '0',
WEBSITE_PLACEHOLDER_MODE: '1',
CONTAINER_ENCRYPTION_KEY: '',
ResourceName: '',
ResourceType: '',
WEBSITE_CLOUD_NAME: '',
WEBSITE_STAMP_DEPLOYMENT_ID: '',
USER: 'app',
DOTNET_RUNNING_IN_CONTAINER: 'true',
JAVA_HOME: '/usr/lib/jvm/zre-8-azure-amd64',
SUDO_USER: 'root',
SHELL: '/bin/bash',
Fabric_ReplicaName: '0',
HOSTNAME: '',
PATH: '',
CONTAINER_START_CONTEXT_SAS_URI: '',
LOGNAME: 'app',
_: '/usr/bin/setsid',
FUNCTIONS_WORKER_DIRECTORY: '/azure-functions-host/workers/node' }
<小时/>
您可以看到该条目出现在 Function App 门户的配置选项卡中
此外,在 https://[function-app-name].scm.azurewebsites.net/api/settings
中,您可以看到该 key 存在(我省略了该值,因为它很敏感)
{
"deployment_branch": "master",
"SCM_TRACE_LEVEL": "Verbose",
"SCM_COMMAND_IDLE_TIMEOUT": "60",
"SCM_LOGSTREAM_TIMEOUT": "7200",
"SCM_BUILD_ARGS": "",
"SCM_USE_LIBGIT2SHARP_REPOSITORY": "0",
"APPINSIGHTS_INSTRUMENTATIONKEY": "",
"AzureWebJobsDashboard": "",
"AzureWebJobsStorage": "",
"FUNCTIONS_EXTENSION_VERSION": "",
"GCP_SERVICE_ACCOUNT_EMAIL": "",
"GCP_SERVICE_ACCOUNT_PRIVATE_KEY": "",
"LINE_NOTIFY_TOKEN": "",
"WEBSITE_RUN_FROM_PACKAGE": "",
"AzureWebJobs.TimerTrigger.Disabled": "",
"ScmType": "",
"WEBSITE_SITE_NAME": "",
"WEBSITE_AUTH_ENABLED": "",
"WEBSITE_SLOT_NAME": "",
"SCM_RUN_FROM_PACKAGE": "",
"REMOTEDEBUGGINGVERSION": "",
"FUNCTIONS_RUNTIME_SCALE_MONITORING_ENABLED": "",
"WEBSITE_AUTH_LOGOUT_PATH": "",
"WEBSITE_AUTH_AUTO_AAD": "e"
}
<小时/>
我使用 Terraform 进行配置,如 maximivanov/deploy-azure-functions-with-terraform 所示[GitHub] 在 app_settings
中添加了合并环境变量。
variable "function_config" {
type = map(string)
}
resource "azurerm_function_app" "function_app" {
# Other arguments is the same as in the repo
app_settings = merge({
"APPINSIGHTS_INSTRUMENTATIONKEY" = azurerm_application_insights.appInsights.instrumentation_key
"WEBSITE_RUN_FROM_PACKAGE" = ""
}, var.function_config)
}
function_config = {
LINE_NOTIFY_TOKEN = ""
GCP_SERVICE_ACCOUNT_PRIVATE_KEY = ""
GCP_SERVICE_ACCOUNT_EMAIL = ""
}
您在 Portal 和 Kudu 中看到的上述所有环境值均由 Terraform 设置。
首先,我通过 VSCode 扩展创建了所有资源。但后来用上面的配置导入到Terraform状态。 (部分资源被替换)
<小时/>dist
文件夹,以确保只有新文件)process.env.KEY
和 process.env["KEY"]
访问环境我不确定我做错了什么,或者我下一步应该尝试,请指教,谢谢!
<小时/>我尝试仅使用 VSCode 将其部署到单独的资源组(资源不是由 Terraform 创建),并且它有效!这绝对是我的 Terraform 配置的问题(因此添加 terraform
标签)。因此,与此同时,我将尝试将我的 Terraform 配置与 VSCode 扩展自动创建的配置进行比较。
最佳答案
尝试修复问题近 5 个小时后。我发现这是 Function App 中缺少的配置。
FUNCTIONS_WORKER_RUNTIME
需要设置为 node
(直接从 Visual Studio Code Extension 部署资源时,这是自动完成的)
如果您使用 Terraform
resource "azurerm_function_app" "function" {
# Other arguments
app_settings = {
"FUNCTIONS_WORKER_RUNTIME" = "node"
"SOME_OTHER_SETTINGS" = "..."
}
}
如果未在 Azure 门户中进行配置
关于javascript - process.env 中的用户定义键在 JavaScript Azure Functions 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69143758/
在为 Web 应用程序用例图建模时,为用户可以拥有的每个角色创建一个角色是否更好?或拥有一个角色、用户和一个具有特权的矩阵? guest < 用户 < 版主 < 管理员 1: guest 、用户、版主
我无法使用 Elixir 连接到 Postgres: ** (Mix) The database for PhoenixChat.Repo couldn't be created: FATAL 28P
这个问题已经有答案了: Group by field name in Java (7 个回答) 已关闭 7 年前。 我必须编写一个需要 List 的方法并返回 Map> . User包含 Person
感谢您的帮助,首先我将显示代码: $dotaz = "Select * from customers JOIN contracts where customers.user_id ='".$_SESS
我只想向所有用户中的一个用户显示一个按钮。我尝试了 orderByKey() 但没有成功! 用户模型有 id 成员,我尝试使用 orderByChild("id") 但结果相同! 我什至尝试了以下技巧
我们在工作中从 MongoDB 切换到 Postgres,我正在建立一个 BDR 组。 在这一步,我正在考虑安全性并尽可能锁定。因此,我希望设置一个 replication 用户(角色)并让 BDR
export class UserListComponent implements OnInit{ users; constructor(private userService: UserS
我可以使用 Sonata User Bundle 将 FOS 包集成到 sonata Admin 包中。我的登录功能正常。现在我想添加 FOSUserBundle 中的更改密码等功能到 sonata
在 LinkedIn 中创建新应用程序时,我得到 4 个单独的代码: API key 秘钥 OAuth 用户 token OAuth 用户密码 我在 OAuth 流程中使用前两个。 的目的是什么?最后
所以..我几乎解决了所有问题。但现在我要处理另一个问题。我使用了这个连接字符串: SqlConnection con = new SqlConnection(@"Data Source=.\SQLEX
我有一组“用户”和一组“订单”。我想列出每个 user_id 的所有 order_id。 var users = { 0: { user_id: 111, us
我已经为我的Django应用创建了一个用户模型 class User(Model): """ The Authentication model. This contains the u
我被这个问题困住了,找不到解决方案。寻找一些方向。我正在用 laravel 开发一个新的项目,目前正致力于用户认证。我正在使用 Laravels 5.8 身份验证模块。 对密码恢复 View 做了一些
安装后我正在使用ansible配置几台计算机。 为此,我在机器上本地运行 ansible。安装中的“主要”用户通常具有不同的名称。我想将该用户用于诸如 become_user 之类的变量. “主要”用
我正在尝试制作一个运行 syncdb 的批处理文件来创建一个数据库文件,然后使用用户名“admin”和密码“admin”创建一个 super 用户。 到目前为止我的代码: python manage.
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我已在 Azure 数据库服务器上设置异地复制。 服务器上运行的数据库之一具有我通过 SSMS 创建的登录名和用户: https://learn.microsoft.com/en-us/azure/s
我有一个 ionic 2 应用程序,正在使用 native FB Login 来检索名称/图片并将其保存到 NativeStorage。流程是我打开WelcomePage、登录并保存数据。从那里,na
这是我的用户身份验证方法: def user_login(request): if request.method == 'POST': username = request.P
我试图获取来自特定用户的所有推文,但是当我迭代在模板中抛出推文时,我得到“User”对象不可迭代 观看次数 tweets = User.objects.get(username__iexact='us
我是一名优秀的程序员,十分优秀!