通过 IAM Identity Center 管理对多个账户的访问时,AWS 访问门户为这些账户中的每个可用角色/权限集提供可单击的链接。但是,控制台始终加载到主页。有没有办法构建一个“深层链接”URL,以便单击它的(授权)用户将:
我知道可以为给定的 PermissionSet设置中继状态,但这还不够,因为我可能希望给定的用户从不同的链接重定向到不同的位置 - 也就是说,我希望在单击的内容中对目的地进行编码URL,不在 PermissionSet 的元数据中。为每个可能的目的地创建不同的 PermissionSet 是不切实际的。
这个博客似乎准确地描述了我想要实现的目标,但它对我不起作用 - 按照说明,我:
RPID=(url-encoded string of urn:amazon:webservices)&RelayState=(url-encoded destination url)?RelayState=)附加到我的 Access Portal 提供的一键登录然而,生成的 URL 只是让我登录并将我置于主页上,而没有任何重定向。
遗憾的是,该文章的所有链接似乎都已损坏。我还找到了这个页面,并尝试使用它来生成深层链接 - 再次,不走运,我刚刚登录到主页。
我确实注意到我的登录网址与示例不同 - 它们看起来像https://<domain>/adfs/ls/idpinitiatedsignon.aspx,而我的登录网址看起来像https://<internal-string>.awsapps.com/start/#/saml/custom/AAA/BBB,其中:
AAA是 url 编码的字符串account-number (account-nickname)BBB是一些引用主AWS帐户的base64编码数据的url编码,后跟两个我无法放置的(下划线分隔的)标识符 - 一个是 form ins-[alphanumerics],另一个是 formp-[alphanumerics]这是否意味着我的 ADFS 的配置与此功能预期的不同?还有办法实现我想要的吗?
编辑:我的网络管理员通知我,我们在内部使用 Azure AD,而不是 ADFS,这可能是 URL 格式不同的原因。
amazon-web-services amazon-iam aws-sso aws-iam-identity-center
我有Python背景(虽然完全是自学成才,所以我可能有一些不良习惯或误解),而我正在努力学习Ruby以扩大我的范围.
我正在阅读一些比较,并看到许多断言"Python不能进行元编程"(或者,更少的是,"Python不能像Meta一样简单地进行元编程").所以我离开后迅速阅读了关于元编程的内容,并且给人的印象是,它基本上是在运行时编辑类/对象的方法/行为(如果我不正确,请纠正我!).
我的印象是,由于Python是动态的,这应该不是问题.但是,我运行了以下测试代码,它没有给出我预期的响应:
>>> class foo:
... def make_hello_method(self):
... def hello(obj):
... print 'hello'
... self.hello = hello
...
>>> f = foo()
>>> f.hello()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: foo instance has no attribute 'hello'
>>> f.make_hello_method()
>>> f.hello()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: hello() takes exactly 1 argument (0 given)
Run Code Online (Sandbox Code Playgroud)
我的印象是,对象的每个方法都自动将对象本身作为第一个参数传递(因此将对象方法定义为常量要求(self, [...])).怎么f没有被传递给hello()?
我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.
请注意,我不是在抱怨(我敢肯定有是一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.
TL; DR我希望将模块的依赖关系构建到其.jar中,但它们似乎不是.
我正在使用Gradle来构建一个项目.我有两个子项目,app(一个Android模块)和tests(一个Java模块),由IntelliJ创建.
由于我想使用app内容中定义的类tests,我添加了适当的依赖项.受到这个答案的启发,我有以下设置:
应用程序/的build.gradle:
...
task jarTask(type: Jar) {
baseName ="${project.archivesBaseName}"
from android.sourceSets.main.java
}
configurations {
jarConfiguration
}
artifacts {
jarConfiguration jarTask
}
Run Code Online (Sandbox Code Playgroud)
测试/的build.gradle
...
dependencies {
...
testCompile project(path: ':app', configuration: 'jarConfiguration')
}
Run Code Online (Sandbox Code Playgroud)
但是,app进口中的一个类org.json.JSONObject.由于这是由Android SDK提供的,app可以很好地找到 - 但是当我尝试运行测试时,我得到(in :tests:compileTestJava)"package org.json不存在".但是,如果我更新tests/build.gradle
...
dependencies {
...
testCompile project(path: ':app', configuration: 'jarConfiguration')
testCompile 'org.json:json:20090211'
}
Run Code Online (Sandbox Code Playgroud)
(见这里)然后测试正确运行.
这不是我所期望的 - 如果.jar没有打包它的依赖项,那么依赖于.jar的任何项目也必须明确地依赖于传递依赖 - 这不会导致依赖关系定义快速增加吗?
这个问题的纺出这一个。现在,我对那里的问题有了更好的了解,并且是一个可行的(如果不完美的话)解决方案,我正在提交一个更集中的后续措施(我仍然是StackOverflow的新手,请告诉我是否这违反了礼节,我应该对原文进行跟进)。
该页面建议“ 您使用AWS CodeBuild来构建,本地测试和打包无服务器应用程序 ”。但是,当我在中包含sam build命令时buildspec.yml,我得到以下日志输出,提示sam未在CodeBuild映像上安装:
[Container] 2018/12/31 11:41:49 Running command sam build --use-container
sh: 1: sam: not found
[Container] 2018/12/31 11:41:49 Command did not exit successfully sam build --use-container exit status 127
[Container] 2018/12/31 11:41:49 Phase complete: BUILD Success: false
[Container] 2018/12/31 11:41:49 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: sam build --use-container. Reason: exit status 127
Run Code Online (Sandbox Code Playgroud)
此外,如果我使用来安装SAM pip install aws-sam-cli,则sam build --use-container …
我刚刚开始学习Java,并遇到了一个问题.尝试运行Android应用程序时,调用方法makeResponse时会出现NullPointerException.
代码提取(本帖末尾附有完整代码):
private String makeResponse(String input){
//This doesn't work yet. I keep getting null pointer exceptions on the line beginning "int id" line, but can't tell why.
String response = "You picked "+input;
if (sw==null){
response+=" and sw is null"; //This doesn't activate
}
if (input==null){
response+=" and input is null"; //This doesn't activate
}
int id = sw.getIdFromName(input); //If this line (and the following one) are commented out, the method runs with no problem, but neither of the if …Run Code Online (Sandbox Code Playgroud) 我最近在我的 Raspberry Pi 上安装了 minidlna,一个轻量级的 UPnP 服务器。由于它缺少其他程序(例如 Mediatomb)的 Web 界面,因此我认为编写一个对我来说可能是一个有趣的项目。
我相信 minidlna 将库信息存储在名为“files.db”的单个文件中。
编辑:我被建议检查输出file files.db- 这如下:
files.db: SQLite 3.x database, user version 8
但是,我找不到可以让我与 shell 中的 .db 文件进行交互的程序。我看过以下推荐的程序:
在前四种情况下,sudo apt-get install找不到程序。
sudo apt-get install db.util 似乎安装,但在安装过程中,产生以下消息:
Processing triggers for man-db ...
Setting up gcj-4.7-base (4.7.1-1) ...
Setting up libgcj-common (1:4.6.3-7) ...
Setting up libgcj13 (4.7.1-1) ...
Setting up libgcj13-awt (4.7.1-1) ...
Setting up gcj-4.7-jre-headless (4.7.1-1) ...
Illegal instruction
ERROR: gcj-dbtool did …Run Code Online (Sandbox Code Playgroud) 在以下代码中:
private static void example() {
String inputString = "test";
switch (inputString) {
case "test":
String outputString = "The string said test";
case "not test":
String outputString = "The string did not say test";
}
/*Do stuff with ouputString*/
}
Run Code Online (Sandbox Code Playgroud)
Eclipse 突出显示Case "not test"错误后的行Duplicate local variable outputString。但是,由于它们位于switch语句的不同分支中,因此它们实际上并不冲突,因为一次只能有一个有效。
显然,在这种情况下,我可以通过将outputString声明移到switch语句之外来解决这个问题。但是,在更复杂的程序中,解决方案可能并不那么简单。
这仅仅是 Eclipse 为防止糟糕的编程技术而抛出的错误,还是实际的 Java 错误?
我对 Java 很陌生,所以如果这是一个新手问题,我很抱歉 - 我有一个关于“重复局部变量 Java”的谷歌,但到目前为止,所有出现的都是人们寻求帮助来解决问题(通常的解决方案是重命名其中一个变量),而不是讨论问题本身。
TL;DR 是否可以在不破坏所有日志记录的情况下抑制单个 Spark 日志记录消息?
我正在 EMR 上运行 Spark Streaming 作业,并获取如下日志消息:
17/08/17 21:09:00 INFO TaskSetManager: Finished task 101.0 in stage 5259.0 (TID 315581) in 17 ms on ip-172-31-37-216.ec2.internal (107/120)
17/08/17 21:09:00 INFO MapPartitionsRDD: Removing RDD 31559 from persistence list
17/08/17 21:09:00 INFO DAGScheduler: Job 2629 finished: foreachPartition at StreamingSparkJob.scala:52, took 0.080085 s
17/08/17 21:09:00 INFO DAGScheduler: ResultStage 5259 (foreachPartition at StreamingSparkJob.scala:52) finished in 0.077 s
17/08/17 21:09:00 INFO JobScheduler: Total delay: 0.178 s for time 1503004140000 ms (execution: 0.084 …
我在 Helm 图表(例如)中经常看到的一种模式是将布尔值设置为默认值true,除非提供了一些覆盖值:
feature_enabled_in_k8s_resource: {{ default true .Values.foo_feature_enabled }}
Run Code Online (Sandbox Code Playgroud)
也就是说 - “如果foo_feature_enabled设置为 Helm 输入中的任何值(通过--set、values.yaml等),则设置feature_enabled_in_k8s_resource为该值 - else(如果未设置),则设置feature_enabled_in_k8s_resource为true”
但是,我无法按照预期覆盖该值 -false在 中设置值values.yaml和/或--set foo_feature_enabled=false作为参数传递,仍然会导致模板保存值为true。
我怀疑这是因为这false是一个“虚假”值,因此default将其解析为“需要替换”。
传递一个字符串值("false"in values.yaml、 或--set-string foo_feature_enabled=false)确实出现(从helm template [...]输出中)设置为feature_enabled_in_k8s_resource-"false"但不清楚 Kubernetes 产生的实际应用程序是否会正确解释它(也就是说 - 它可能会解释一个非空字符串作为“真实”,让我们回到原来的默认行为)。即使这有效,它在某种程度上感觉很糟糕,表明我错过了“正确的”解决方案。
(据推测,实际的解决方案是 Helm …
我正在掌握Python SDK,之前从未使用过 GraphQL (但我熟悉基本概念)。我能够odata_next_link从响应中检索值,但我不确定如何使用它。我从这里注意到:
您应该在下一页结果的请求中的 @odata.nextLink 属性中包含整个 URL。根据执行查询的 API,@odata.nextLink URL 值将包含 $skiptoken 或 $skip 查询参数。URL 还包含原始请求中存在的所有其他查询参数。不要尝试提取 $skiptoken 或 $skip 值并将其用于不同的请求。
但是,我不确定如何在下一个请求中包含该 URL。目前,我的查询看起来像response = await graph_client.groups.by_group_id(group_id).transitive_members.get()- 我没有看到更改基本网址的选项。我想我可以做这样的事情:
query_params = GroupsRequestBuilder.GroupsRequestBuilderGetQueryParameters(
skip_token = parse_qs(urlparse(response.odata_next_link).query)['$skipToken'][0]
)
request_configuration = GroupsRequestBuilder.GroupsRequestBuilderGetRequestConfiguration(
query_parameters=query_params
)
response = await graph_client.[...].get(request_configuration)
Run Code Online (Sandbox Code Playgroud)
但该报告GroupsRequestBuilder.GroupsRequestBuilderGetQueryParameters.__init__() got an unexpected keyword argument 'skip_token'(如果我尝试命名参数skiptoken或,则类似skipToken)
我的目标是创建一个可以使用Java读取和写入的本地数据库.我有一些使用Python操作本地sqlite数据库的经验,并通过VB.Net与Microsoft Azure上的现有网络数据库进行交互,但是用于创建数据库的Java公式正在逃避我.
大多数源(如JDBC Docs)似乎假设您通过网络协议或localhost上托管的数据库访问数据库.我期望的实现是在文件(或文件集合)中创建和存储数据库,以便可以在本地存储和访问它,而无需网络连接(可通过"文件:"协议).
该JDBC教程看起来像一次我运行起来将是非常有用的,但目前是超出了我的范围,因为我甚至不具有现有的数据库呢.
许多 消息来源提出了H2,MySQL,Derby或Hypersonic DB等解决方案.但是,由于以下原因,我不愿意安装扩展程序(如果这是正确的术语):
出于类似的原因,安装Microsoft SQL Server效率不高.
这个答案看起来很接近我的目标; 但是,它给出了错误:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/?user=root&password=rootpassword
Run Code Online (Sandbox Code Playgroud)
并尝试"jdbc:file://targetFile.sql"给出类似的错误.
我已经看到术语"嵌入式"数据库,我认为这是"本地数据库"的一个子集(即本地数据库存储在同一系统中 - 嵌入式数据库是仅由单个应用程序使用的本地数据库) - 如果我的定义有误,请随时纠正我!